Bootloader Code Listing (V4.0)
;;###########################################################################
;; $TI Release:$
;; $Release Date:$
;;###########################################################################
.def _InitBoot
.ref _SelectBootMode
.sect ".Flash" ; Flash API checks this for
.word 0xFFFE ; silicon compatability
.sect ".Version"
.word 0x0004 ; 280x Boot ROM Version 4
.word 0x0406 ; Month/Year: (4/06 = April 2006)
.sect ".Checksum"; 64-bit Checksum
.long 0x7F1F1DE5 ; least significant 32-bits
.long 0x000003B3 ; 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) Initalizes the stack pointer
; 2) Sets the device for C28x operating mode
; 3) Calls the main boot functions
; 4) Calls an exit routine
;-----------------------------------------------
_InitBoot:
; Initalize the stack pointer.
__stack: .usect ".stack",0
MOV SP, #__stack ; Initalize the stack pointer
; Initalize 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
CLRC OVM
; Set PM shift of 0
SPM 0
; Decide which boot mode to use
LCR _SelectBootMode
; Cleanup and exit. At this point the EntryAddr
; is located in the ACC register
BF _ExitBoot,UNC
88 Bootloader Code Overview SPRU722C – November 2004 – Revised October 2006
Submit Documentation Feedback