I am looking to see if loading a TIRTOS application at address other than 0 can be done.
Previously under stellarisware I was able to move the vectors for the SysBios application by doing the following in the cmd file:
// The starting address of the application. Normally the interrupt vectors
// must be located at the beginning of the application.
#define APP_BASE 0x00004000
#define RAM_BASE 0x20000000
--retain=g_pfnVectors
MEMORY
{
// This is where our application can start
FLASH_BT(RX) : origin = 0x00000000, length = 0x00004000
FLASH (RX) : origin = 0x00004000, length = 0x000FC000
SRAM (RWX) : origin = 0x20000000, length = 0x00040000
}
/* Section allocation in memory */
SECTIONS
{
// Vectors are at start of FLASH after bootloader
.resetVecs: > APP_BASE
.text : > FLASH
.const : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.init_array : > FLASH
.vecs : > RAM_BASE
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM
}
__STACK_TOP = __stack + __STACK_SIZE;
However I have now found with TiRTOS this doesn't work anymore.
The linker still puts the vector table at 0 even though I have asked it to move it to 0x00004000.
I wind up with only the vector table in my reserved bootloader block and all the rest of my code where I want it to be. I would like to install a custom bootloader which needs to run our protocol and also display a boot message on an LCD during loading of new code. So I need to know how to tell the TiRTOS application it is not the only one and it needs to load its vectors at an alternate address.
I am using tirtos_1_21_00_09 and CCSV5.5.0.00077, processor is TMS4C129ENCPDT