Hi,
I want to migrate my existing project from TI 20.2.7 LTS to TI ARM Clang V2.1.3 LTS and encountered the following problem:
I build the hexfile and run it on the target but when I reboot the device the bootloader is called. I`m using the default TivaWare Bootlader 2.2.0295.
I`ve already found the origin of the problem but I don`t know how to fix it.
The bootloader expects the application at address 0x4000 and checks for a int vector table.
// See if the first location is 0xfffffffff or something that does not
// look like a stack pointer, or if the second location is 0xffffffff or
// something that does not look like a reset vector.
//
pui32App = (uint32_t *)APP_START_ADDRESS;
if((pui32App[0] == 0xffffffff) ||
((pui32App[0] & 0xfff00000) != 0x20000000) ||
(pui32App[1] == 0xffffffff) ||
((pui32App[1] & 0xfff00001) != 0x00000001))
{
return(1);
}
I´ve looked into the linker map from the TI Clang compiler and it puts the text section at 0x4000 the old compiler puts the intvecs at the address. check out attached linker files and linker cmds.
How can I modifiy my linker script for the Clang compiler so that it puts the intvecs at 0x4000?
Thanks!
Best regards
Steffen