Hi All,
I am implementing a software upgrade mechanism (burning a new image into a flash memory area).
The problem: I don't know how to change the load region address at runtime.
Flash contains booter and application Additionally I allocated an area for new sw application on the same flash. After burning the new sw into the allocated area on the flash, I want to run the new sw instead of the old one.
Booter already knows how to jump to the new code in the flash. The problem is that new and old code are both compiled with the same scatter loading region mapping, so when i run the new code from the new address it still uses the "old" scatter loading region, i.e. it loads my old code.
Is there a way of setting the LR address to be relative and not absolute.
Of course i can compile the new SW with new scatter mapping, but this doesn't help me, because i don't know if it will run as a "new" or "old" image.
Thanks in advance
FYI: mergebin is something proprietary. merge bin is a tool which combines bootloader and application and combines them into a single binary executable. Gopala
What is typically done is an update of the internal flash region that is dedicating to hosting the latest firmware. There is no reason to jump to 2 different locations; keep the alternate image aside, and program it upon need. In other words: you complicate the issue at hard tremendously.