Part Number: TM4C123GH6PM
Hello,
I'm trying to import the flash bootloader into my application project. I've located a very helpful example project with the help of a TI forum support engineer (Charles). I'm trying to figure out how to tell the tool (CCS compiler/linker - I think mainly the linker?) where to place the flash bootloader vs the application project. I've been looking at the project settings for the boot_serial example for the TM4C123GXL board project and see the bl_link_ccs.cmd has an "init_load" for LOAD_START and a "init_run" for RUN_START.
To bring the boot_serial source code / boot loader into my application what exactly do I need to configure so that the bootloader is placed at 0x00000000 and my application is placed at 0x00002800? A comparison of the .cmd files shows that the boot_serial *.cmd file has two separate groups where my *.cmd file does not.
Below are the two .cmd files - one from boot_serial example and one from my application project:
boot_serial exmaple
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)
}
Current application project
#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;
I'm also wondering if I need to edit the .cmd file or do I need to use the project properties (right click on project in CCS and select properties) to set this information?
Thanks


















