主题中讨论的其他器件:TM4C123
工具/软件:TI-RTOS
大家好、我对 ARM、TI-RTOS 和引导加载程序比较陌生。 但是、我让所有这些都在我设计的另一个 TM4C123板上工作。 现在、我正在尝试让基于闪存的引导加载程序在 TM4C1294上工作、但遇到了问题。 似乎可以下载我的代码、但在下载完成后、我的引导加载程序已在闪存开始时被擦除。 我一直在努力解决这个问题、但现在还不幸运。 我的应用基于 TI-RTOS、我已将其构建调整为位于0x1000、并从调试器加载并运行在此位置。 但是、如前所述、无论 为调试器设置的擦除选项如何、执行此操作时都会擦除引导加载程序。 现在、我正在尝试在刷写引导加载程序代码后通过引导加载程序加载我的应用程序。 我的应用程序的 cmd 文件如下所示:
#define APP_Leng 0x000FF000
#define RAM_Leng 0x00040000
{
闪存(RX):origin = app_BASE,length = app_leng
SRAM (rwx):origin = RAM_base,length = RAM_Leng
}
{
.text : > FLASH
#ifdef __TI_Compiler_version
#if __TI_Compiler_version >=15009000
.TI.ramfunc:{} load=flash,run=SRAM,table (BINIT)
#endif
#endif
.const : > FLASH
.cinit : >闪存
.pinit : > FLASH
init_array:> FLASH
.bss : > SRAM
.sysmem :> SRAM
.stack : > SRAM
}
{
闪存(RX):origin = 0x00000000,length = 0x00001000
SRAM (rwx):origin = 0x20000000,length = 0x00040000
}
{
组
{
.intvecs
.text
.const
.data
} load = FLASH、run = 0x20000000、load_start (init_load)、run_start (init_run)、size (init_size)
{
.bss
堆栈
}run = SRAM、run_start (bss_run)、run_end (bss_end)、size (bss_size)、run_end (__stack_top)
Program.sectMap[".resetVecs"].loadAddress = 0x00001000;