SPRUIU9C August   2020  – October 2025 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1

 

  1.   1
  2.   Live Firmware Update Without Device Reset on C2000 MCUs
  3.   Trademarks
  4. 1Introduction
  5. 2Key Innovations
  6. 3Building Blocks for LFU
  7. 4Details of Proposed Solution
    1. 4.1 Flash Bank Organization
    2. 4.2 LFU Concepts and Factors Impacting Performance
    3. 4.3 Hardware Support for LFU
      1. 4.3.1 Multiple Flash Banks
      2. 4.3.2 Interrupt Vector Table Swap
      3. 4.3.3 RAM Block Swap
      4. 4.3.4 Hardware Register Flags
    4. 4.4 LFU Compiler Support
    5. 4.5 Application LFU Flow
  8. 5Results and Conclusion
  9. 6Example Implementations
  10. 7Revision History

Building Blocks for LFU

The LFU design consists of several building blocks:

  • A desktop Host application that issues an LFU command
  • An LFU bootloader on the target device’s Flash to communicate with the Host and implement LFU
  • A communication peripheral connecting the host to the target (for example, SCI or CAN)
  • An LFU-ready application to be downloaded and activated
  • Compiler with LFU support
  • The target MCU with LFU related hardware support, such as Flash memory with multiple physically separate Flash banks, and so forth. Dual or more Flash banks allow application firmware resident on one Flash bank to execute, while the other Flash bank is being updated.