Tool/software: TI C/C++ Compiler
I have developed a bootloader for remote software updates (Hercules LS1114).
Everything is working OK except my bootloader code segment is changing when I make changes to my main code segments (I use a crc check). Ie the bootloader code is not independent of my main code.
In the bootloader segment I include
flashAPI :
{
Flash.obj (.text)
crc16.obj (.text)
Fapi_UserDefinedFunctions.obj (.text)
--library= F021_API_CortexR4_BE.lib
}
all code/libraries associated with the bootloader so there are no intentional references outside the bootloader code segment.
I’m assuming the included F021 flash library has some global variables defined or references to the C Library which is causing the code in the bootloader to change when I add new code to the main code segments.
The intention is not to update the bootloader during firmware updates and I have some smarts to protect the update process if something goes wrong during the flash update, ie I first download the new firmware into a separate flash area and verify before transferring the new code to my main code space area.
How do I get around this issue ? Any suggestions most welcome.
Rob