Part Number: TM4C129DNCPDT
Hi,
I am working on a firmware update mechanism for TM4C129DNCPDT and would like guidance on the best approach for dual-image firmware management.
Current Requirement
We receive application .bin files through UART and want to support safe firmware upgrades with rollback capability.
- Keep the currently running firmware safe
- Download new firmware to an alternate flash region
- Boot the new firmware after validation
- If the new firmware fails, continue using the previous firmware
- Always maintain one valid working firmware image.
-
First firmware
.binlinked for secondary region- Flash to secondary slot
- Bootloader jumps to secondary app
Second firmware
- New
.binarrives through UART - Flash to primary slot
- Bootloader jumps to primary app
Third firmware
- Flash again to secondary slot
- Bootloader jumps to secondary app
So firmware execution alternates between the two regions ("zig-zag" switching).
-
Currently the application binary is generated using:
- fixed linker script address
- fixed
.cfgmemory address - Linked at 0x00080000
But sometimes we want to flash the same binary into: 0x00010000 , we are generating the .bin file using ccs studio. in zig zag flashing we are fixing all the applications in one address but some time we want to flash to the primary adress and boot loader should start from there.
