Part Number:LAUNCHXL-CC1310
Tool/software:TI-RTOS
I am embarking on writing an OTA update mechanism for Sub-Ghz Proprietary radio. My solution feels like it's getting out of hand so I wanted to see if I was complicating it or if there is a way around some of the limitations I've faced.
What I have is the flash is divided into four sections of flash:
Wireless, AppEntry, App and Upper. Upper contains the entry point from the bootloader and ccfg. Wireless contains the wireless flashing mechanism. AppEntry contains a single function which calls whatever function within the App the programmer deems the entry point for that App. This in my mind increases the stability of the interface between flashes. The location of AppEntry is less likely to move around and since I can't reflash Upper I need the same entry point for all apps. Does any of this make sense? Am I over-complicating it?
My issue is I'm not 100% how to make absolutely sure "App" is completely independent of all the other flash sections. I need to make sure not a single symbol gets stuck in Upper, Upper needs to be as small as possible and I can't fully update an App if symbols exist in Upper. I've turned off all optimization (ie, -mf) but I'm not sure how to completely isolate the app from the rest of the project. I've noticed that even though I've sectioned the wireless function to it's own section of flash and as a ramfunc it still seems to depend on Upper to function. Depending on TI-RTOS/XDC/BIOS in upper would probably be fine, we will freeze a stable revision for dependencies based on major hardware revisions but how do I make sure the rest gets put in the same place?
TIA