主题中讨论的其他器件:EK-TM4C1294XL、 EK-TM4C123GXL、 UNIFLASH
您好!
我正在尝试将闪存引导加载程序导入到我的应用项目中。 在 TI 论坛支持工程师(Charles)的帮助下、我找到了一个非常有用的示例项目。 我正在尝试弄清楚如何告诉该工具(CCS 编译器/连接器-我认为主要是连接器?) 在何处放置闪存引导加载程序与应用程序项目。 我一直在看 TM4C123GXL 板级工程的 boot_serial 示例的工程设置、发现 bl_link_ccs.cmd 在 load_start 中为"init_load"、在 run_start 中为"init_run"。
要将 boot_serial 源代码/ boot loader 引入我的应用程序、我需要具体做些配置、以便引导加载程序放置在0x00000000、而我的应用程序放置在0x00002800上? 对.cmd 文件的比较显示 boot_serial *。cmd 文件具有两个单独的组、而我的*。cmd 文件不具有这两个单独的组。
下面是两个.cmd 文件-一个来自 boot_serial 示例、一个来自我的应用程序工程:
BOOT_SERIAL 示例
MEMORY
{
FLASH (RX) : origin = 0x00000000, length = 0x00010000
SRAM (RWX) : origin = 0x20000000, length = 0x00010000
}
/* Section allocation in memory */
SECTIONS
{
GROUP
{
.intvecs
.text
.const
.data
} load = FLASH, run = 0x20000000, LOAD_START(init_load), RUN_START(init_run), SIZE(init_size)
GROUP
{
.bss
.stack
} run = SRAM, RUN_START(bss_run), RUN_END(bss_end), SIZE(bss_size), RUN_END(__STACK_TOP)
}
当前应用项目
#define APP_BASE 0x00000000
#define RAM_BASE 0x20000000
/* System memory map */
MEMORY
{
/* Application stored in and executes from internal flash */
FLASH (RX) : origin = APP_BASE, length = 0x00040000
/* Application uses internal RAM for data */
SRAM (RWX) : origin = 0x20000000, length = 0x00008000
}
/* Section allocation in memory */
SECTIONS
{
.intvecs: > APP_BASE
.text : > FLASH
.const : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.init_array : > FLASH
.vtable : > RAM_BASE
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT)
#endif
#endif
}
__STACK_TOP = __stack + 1024;
我还想知道我是否需要编辑.cmd 文件、或者我是否需要使用项目属性(在 CCS 中右键单击项目并选择属性)来设置此信息?
谢谢














