This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C129DNCPDT: TM4C129DNCPDT Dual Application Firmware Update Strategy Using UART and Alternate Flash Regions

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

    • .bin linked for secondary region
    • Flash to secondary slot
    • Bootloader jumps to secondary app

    Second firmware

    • New .bin arrives 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 .cfg memory 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.

       
       
    Screenshot from 2026-05-07 20-04-16.png