SPRACN1 May   2019 TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1 , TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1

 

  1.   C2000 Software Controlled Firmware Update Process
    1.     Trademarks
    2. 1 Introduction
    3. 2 Configuring Custom Boot Mode
      1. 2.1 Custom Boot Pin Selection
      2. 2.2 Custom Boot Mode Definition
      3. 2.3 Writing the Values to User OTP
    4. 3 Hardware Modifications
    5. 4 Software Modifications
      1. 4.1 Application Software Modifications
      2. 4.2 Flash Kernel Modifications
      3. 4.3 Firmware Update Process
    6. 5 Flowchart
    7. 6 Summary
    8. 7 References

Writing the Values to User OTP

The custom boot configurations (derived in above sections) can be updated in user OTP by following these steps:

  1. Download and install C2000Ware.
  2. Pick any of the C2000Ware examples and add the following code snippet above the main function (it can be anywhere in the file just outside the functions).
  3. #pragma RETAIN(otp_z1_data_1) #pragma DATA_SECTION(otp_z1_data_1,"dcsm_zsel_z1"); const long otp_z1_data_1 = 0x5AFFFF0F; #pragma RETAIN(otp_z1_data_2) #pragma DATA_SECTION(otp_z1_data_2,"dcsm_zsel_z1_2"); const long otp_z1_data_2 = 0xFFFF0103;
  4. In the linker command file (28004x_generic_ram_lnk.cmd), add the following lines.
  5. MEMORY { PAGE 0: DCSM_ZSEL_Z1_P0: origin = 0x07800C, length = 0x000002 DCSM_ZSEL_Z1_P1: origin = 0x07801C, length = 0x000002 } SECTIONS { dcsm_zsel_z1_1 : > DCSM_ZSEL_Z1_P0, PAGE = 0 dcsm_zsel_z1_2 : > DCSM_ZSEL_Z1_P1, PAGE = 0 }
  6. Re-compile the example and load to the target via JTAG using Code Composer Studio™ (CCS). The loader and flash API plugin in CCS will take care of writing these values to OTP location.

NOTE

These values have to be selected and written carefully as the OTP locations cannot be re-written.