87 lines
3.1 KiB
NASM
87 lines
3.1 KiB
NASM
;// TI File $Revision: /main/1 $
|
|
;// Checkin $Date: August 18, 2006 13:45:55 $
|
|
;//###########################################################################
|
|
;//
|
|
;// FILE: DSP2833x_CodeStartBranch.asm
|
|
;//
|
|
;// TITLE: Branch for redirecting code execution after boot.
|
|
;//
|
|
;// For these examples, code_start is the first code that is executed after
|
|
;// exiting the boot ROM code.
|
|
;//
|
|
;// The codestart section in the linker cmd file is used to physically place
|
|
;// this code at the correct memory location. This section should be placed
|
|
;// at the location the BOOT ROM will re-direct the code to. For example,
|
|
;// for boot to FLASH this code will be located at 0x3f7ff6.
|
|
;//
|
|
;// In addition, the example DSP2833x projects are setup such that the codegen
|
|
;// entry point is also set to the code_start label. This is done by linker
|
|
;// option -e in the project build options. When the debugger loads the code,
|
|
;// it will automatically set the PC to the "entry point" address indicated by
|
|
;// the -e linker option. In this case the debugger is simply assigning the PC,
|
|
;// it is not the same as a full reset of the device.
|
|
;//
|
|
;// The compiler may warn that the entry point for the project is other then
|
|
;// _c_init00. _c_init00 is the C environment setup and is run before
|
|
;// main() is entered. The code_start code will re-direct the execution
|
|
;// to _c_init00 and thus there is no worry and this warning can be ignored.
|
|
;//
|
|
;//###########################################################################
|
|
;// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
|
;// $Release Date: August 1, 2008 $
|
|
;//###########################################################################
|
|
|
|
|
|
***********************************************************************
|
|
|
|
WD_DISABLE .set 1 ;set to 1 to disable WD, else set to 0
|
|
|
|
.ref _c_int00
|
|
.global code_start
|
|
|
|
***********************************************************************
|
|
* Function: codestart section
|
|
*
|
|
* Description: Branch to code starting point
|
|
***********************************************************************
|
|
|
|
.sect "codestart"
|
|
|
|
code_start:
|
|
.if WD_DISABLE == 1
|
|
LB wd_disable ;Branch to watchdog disable code
|
|
.else
|
|
LB _c_int00 ;Branch to start of boot.asm in RTS library
|
|
.endif
|
|
|
|
;end codestart section
|
|
|
|
|
|
***********************************************************************
|
|
* Function: wd_disable
|
|
*
|
|
* Description: Disables the watchdog timer
|
|
***********************************************************************
|
|
.if WD_DISABLE == 1
|
|
|
|
.text
|
|
wd_disable:
|
|
SETC OBJMODE ;Set OBJMODE for 28x object code
|
|
EALLOW ;Enable EALLOW protected register access
|
|
MOVZ DP, #7029h>>6 ;Set data page for WDCR register
|
|
MOV @7029h, #0068h ;Set WDDIS bit in WDCR to disable WD
|
|
EDIS ;Disable EALLOW protected register access
|
|
LB _c_int00 ;Branch to start of boot.asm in RTS library
|
|
|
|
.endif
|
|
|
|
;end wd_disable
|
|
|
|
|
|
|
|
.end
|
|
|
|
;//===========================================================================
|
|
;// End of file.
|
|
;//===========================================================================
|