大家好。
我正在 F280045上运行代码。
我正在使用 XDS110调试探针。
通常、当我运行一个映射到闪存的代码时、此代码被闪存到器件中 、在我从调试器断开并上电后、此代码正在运行、执行我编程的最后一个代码。
出于某种原因、我在调试器中运行的代码在 重新上电后不会运行。
也许它与链接器 cmd 的定义有关。
我将附加链接器文件。
内存
{
第0页:
/* begin 用于"boot to SARAM"引导加载程序模式*/
begin:origin = 0x080000、length = 0x000002
RAMM0:origin = 0x0000F6、length = 0x00030A
RAMLS0:origin = 0x008000、length = 0x000800
RAMLS1:origin = 0x008800、length = 0x000800
RAMLS2:origin = 0x009000、length = 0x000800
RAMLS3:origin = 0x009800、length = 0x000800
RAMLS4:origin = 0x00A000、length = 0x000800
复位:origin = 0x3FFFC0、length = 0x000002
/*闪存扇区:当 RAM 填满时、可以将闪存用作程序存储器*/
/*组0 */
FLASH_BANK0_SEC0:origin = 0x080002、length = 0x000FFE /*片上闪存*/
FLASH_BANK0_SEC1:origin = 0x081000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_sec2:origin = 0x082000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC3:origin = 0x083000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC4:origin = 0x084000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC5:origin = 0x085000,length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC6:origin = 0x086000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_sec7:origin = 0x087000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC8:origin = 0x088000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC9:origin = 0x089000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC10:origin = 0x08A000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC11:origin = 0x08B000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC12:origin = 0x08C000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC13:origin = 0x08D000、length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC14:origin = 0x08E000,length = 0x001000 /*片上闪存*/
FLASH_BANK0_SEC15:origin = 0x08F000、length = 0x001000 /*片上闪存*/
/*组1 */
FLASH_BANK1_SEC0:origin = 0x090000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC1:origin = 0x091000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC2:origin = 0x092000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC3:origin = 0x093000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC4:origin = 0x094000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC5:origin = 0x095000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC6:origin = 0x096000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC7:origin = 0x097000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC8:origin = 0x098000、length = 0x004000 /*片上闪存*/
// FLASH_BANK1_SEC9:origin = 0x099000,length = 0x001000 /*片上闪存*/
// FLASH_BANK1_SEC10:origin = 0x09A000,length = 0x001000 /*片上闪存*/
// FLASH_BANK1_SEC11:origin = 0x09B000,length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC12:origin = 0x09C000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC13:origin = 0x09D000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC14:origin = 0x09E000、length = 0x001000 /*片上闪存*/
FLASH_BANK1_SEC15:origin = 0x09F000、length = 0x001000 /*片上闪存*/
第1页:
BOOT_RSVD:origin = 0x000002、length = 0x0000F1 /* Part of M0、boot ROM 将此用于堆栈*/
RAMM1:origin = 0x000400,length = 0x0003F8 /*片上 RAM 块 M1 */
RAMLS5 : origin = 0x00A800 , length = 0x000800
RAMLS6:origin = 0x00B000、length = 0x000800
RAMLS7:origin = 0x00B800、length = 0x000800
RAMGS0:origin = 0x00C000、length = 0x002000
RAMGS1:origin = 0x00E000、length = 0x002000
RAMGS2:origin = 0x010000、length = 0x002000
RAMGS3:origin = 0x012000、length = 0x002000
}
部分
{
codestart :> begin, page = 0, align (4)
.text:>> FLASH_BANK0_sec2 | FLASH_BANK0_SEC3 | FLASH_BANK0_SEC5 | FLASH_BANK0_SEC6 | FLASH_BANK0_sec7 | FLASH_BANK0_SEC8、page = 0、align (4)
.cinit:> FLASH_BANK0_SEC1、page = 0、align (4)
.switch:> FLASH_BANK0_SEC1、PAGE = 0、ALIGN (4)
.reset:>RESET、PAGE = 0、TYPE = DSECT /*未使用、*/
.stack:> RAMM1、page = 1
#if defined (__TI_EABI __)
.init_array:> FLASH_BANK0_SEC1、page = 0、align (4)
.bss:> RAMLS5、page = 1
.bss:output:> RAMLS3、page = 0
.bss:CIO:> RAMLS0、PAGE = 0
.data :> RAMLS5 , page = 1
.sysmem:> RAMLS5、page = 1
/*初始化段进入闪存*/
.const:> FLASH_BANK0_SEC4、PAGE = 0、ALIGN (4)
#else
.pinit:> FLASH_BANK0_SEC1、page = 0、align (4)
.ebss:> RAMLS5、page = 1
.esysmem :> RAMLS5 ,页面= 1
.cio:> RAMLS0、PAGE = 0
econst:>FLASH_BANK0_SEC4、PAGE = 0、ALIGN (4)
#endif
ramgs0:> RAMGS0,页面= 1
ramgs1:> RAMGS1、page = 1
gyro_log :> RAMGS0 ,页面= 1
gyro_data :> RAMGS0 ,页面= 1
ENC_DATA:>RAMGS1、PAGE = 1
GLOBAL_DATA:> RAMGS1、PAGE = 1
SPIB_DATA:> RAMGS1、页面= 1
long_BUF:> RAMGS2、页面= 1
LONG_BUF_CONT:> RAMGS3、PAGE = 1
#if defined (__TI_EABI __)
.TI.ramfunc:load = FLASH_BANK0_SEC1、
RUN = RAMLS0、
Load_start (RamfuncsLoadStart)、
Load_Size (RamfuncsLoadSize)、
Load_End (RamfuncsLoadEnd)、
RUN_START (RamfuncsRunStart)、
RUN_SIZE (RamfuncsRunSize)、
RUN_END (RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
#else
.TI.ramfunc:load = FLASH_BANK0_SEC1、
RUN = RAMLS0、
Load_start (_RamfuncsLoadStart)、
Load_Size (_RamfuncsLoadSize)、
Load_End (_RamfuncsLoadEnd)、
RUN_START (_RamfuncsRunStart)、
RUN_SIZE (_RamfuncsRunSize)、
RUN_END (_RamfuncsRunEnd)、
PAGE = 0、ALIGN (4)
#endif
DataBufferSection :> RAMM1, page = 1, align(4)
}
/*
//========================================
//文件结尾。
//========================================
*/
