www.ti.com
Bootloader Code Listing (V3.0)
;; TI File $Revision: /main/6 $
;; Checkin $Date: April 21, 2005
16:00:01 $
;;###########################################################################
;;
;; FILE:
Init_Boot.asm
;;
;; TITLE:
280x Boot Rom Initialization and Exit routines.
;;
;; Functions:
;;
;;
_InitBoot
;;
_ExitBoot
;;
;; Notes:
;;
;;###########################################################################
;; $TI Release:$
;; $Release Date:$
;;###########################################################################
.def _InitBoot
.ref _SelectBootMode
.sect ".Flash"
; Flash API checks this for
.word 0xFFFE
; silicon compatibility
.sect ".Version"
.word 0x0003
; 280x Boot ROM Version 3
.word 0x0405
; Month/Year: (4/05 = April 2005)
.sect ".Checksum"; 64-bit Checksum
.long 0x6A78A069 ; least significant 32-bits
.long 0x000003B5 ; most significant 32-bits
.sect ".InitBoot"
;-----------------------------------------------
; _InitBoot
;-----------------------------------------------
;-----------------------------------------------
; This function performs the initial boot routine
; for the boot ROM.
;
; This module performs the following actions:
;
;
1) Initializes the stack pointer
;
2) Sets the device for C28x operating mode
;
3) Calls the main boot functions
;
4) Calls an exit routine
;-----------------------------------------------
_InitBoot:
; Initialize the stack pointer.
__stack:
.usect ".stack",0
MOV SP, #__stack ; Initialize the stack pointer
; Initialize the device for running in C28x mode.
C28OBJ
; Select C28x object mode
C28ADDR
; Select C27x/C28x addressing
C28MAP
; Set blocks M0/M1 for C28x mode
CLRC PAGE0
; Always use stack addressing mode
MOVW DP,#0
; Initialize DP to point to the low 64 K
SPRU722C – November 2004 – Revised October 2006
Bootloader Code Overview
59