123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- ;//###########################################################################
- ;//
- ;// FILE: F2837xD_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 F2837xD 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: F2837xD Support Library v3.05.00.00 $
- ;// $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
- ;// $Copyright:
- ;// Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
- ;//
- ;// Redistribution and use in source and binary forms, with or without
- ;// modification, are permitted provided that the following conditions
- ;// are met:
- ;//
- ;// Redistributions of source code must retain the above copyright
- ;// notice, this list of conditions and the following disclaimer.
- ;//
- ;// Redistributions in binary form must reproduce the above copyright
- ;// notice, this list of conditions and the following disclaimer in the
- ;// documentation and/or other materials provided with the
- ;// distribution.
- ;//
- ;// Neither the name of Texas Instruments Incorporated nor the names of
- ;// its contributors may be used to endorse or promote products derived
- ;// from this software without specific prior written permission.
- ;//
- ;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- ;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- ;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- ;// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- ;// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- ;// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- ;// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- ;// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- ;// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- ;// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- ;// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ;// $
- ;//###########################################################################
- ***********************************************************************
- WD_DISABLE .set 0 ;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.
- ;//
|