I am trying to adjust my firmware to make room for a bootloader. As soon as I set the linker to to start the flash range at 0x2800 I get multiple overlapping range sections. If I set APP_BASE to 0 it compiles fine. I was trying to follow the boot serial example from tiva example.
#define APP_BASE 0x00002800
#define FLASH_SIZE 0x00040000
#define RAM_BASE 0x20000000
#define CODE_HEADER_BASE 0x0003FFA0
#define CODE_HEADER_SIZE (FLASH_SIZE - CODE_HEADER_BASE)
#define APP_LENGTH (CODE_HEADER_BASE - APP_BASE)
/* System memory map */
MEMORY
{
/* Application stored in and executes from internal flash */
//FLASH (RX) : origin = APP_BASE, length = 0x00040000
FLASH (RX) : origin = APP_BASE, length = APP_LENGTH
CODE_HDR (RX) : origin = CODE_HEADER_BASE, length = CODE_HEADER_SIZE
/* Application uses internal RAM for data */
SRAM (RWX) : origin = 0x20000000, length = 0x00008000
}
It seems to give an error in liker.cmd for an autogenerated file that looks like its trying to put the interrupt vectors out of the app memory range. Is there something special I need to do for bootloader app when its using sysbios?
/*
* symbolic aliases for static instance objects
*/
xdc_runtime_Startup__EXECFXN__C = 1;
xdc_runtime_Startup__RESETFXN__C = 1;
TSK_idle = ti_sysbios_knl_Task_Object__table__V + 800;
SECTIONS
{
.bootVecs: type = DSECT
.vecs: load > 0x0, type = DSECT
.resetVecs: load > 0x0
xdc.meta: type = COPY
}