SPRUJH3 April   2025 TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1 , TMS320F280021 , TMS320F280023 , TMS320F280023C , TMS320F280025 , TMS320F280025C , TMS320F280034 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037C , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039C , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041C , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049C , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377S , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379S , TMS320F28384D , TMS320F28384S , TMS320F28386D , TMS320F28386S , TMS320F28388D , TMS320F28388S , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Configuring the Boot Mode
    1. 2.1 Standalone Boot
      1. 2.1.1 Boot Mode Select Pins (BMSP)
      2. 2.1.2 Boot Definition Table (BOOTDEF)
      3. 2.1.3 Boot ROM OTP Configuration Registers
      4. 2.1.4 CPU2 Boot Flow
    2. 2.2 Emulation Boot
  6. 3Programming the Flash
    1. 3.1 Flash API
    2. 3.2 Flash Kernels
  7. 4Bootloading Code to Flash
    1. 4.1 C2000 Hex Utility
    2. 4.2 Common Boot Modes
      1. 4.2.1 Boot to Flash
      2. 4.2.2 SCI Boot
      3. 4.2.3 CAN Boot
      4. 4.2.4 CAN-FD Boot
      5. 4.2.5 USB Boot
  8. 5FAQ
    1. 5.1 Selecting the BMSP GPIOs with a Software-based Implementation
    2. 5.2 Running a Flash Kernel from the Flash Instead of the RAM
    3. 5.3 No Symbols Defined When Debugging Boot ROM
    4. 5.4 Writing Values in the OTP Using the On-Chip Flash Tool
    5. 5.5 Writing Values in the OTP Using the Flash API Plugin
  9. 6Summary
  10. 7References

Writing Values in the OTP Using the Flash API Plugin

Note:

Although this section is based on F280015x devices, the same flow can be applied to any C2000 device that supports custom BMSPs and boot mode tables.

Device specific information can be found in the Boot ROM chapter of the device's Technical Reference Manual (TRM).

The custom boot configurations in Section 5.5 can also be written into DCSM OTP using the compiler’s RETAIN and DATA_SECTION pragmas outlined in [31]. The steps below follow the example in Example 2: Two Boot Modes Select Pins.

  1. Open any of the C2000Ware examples in CCS and add the following code snippet above the main function (it can be anywhere in the file just outside the functions). These lines program the BOOTPIN-CONFIG and BOOTDEF-LOW registers,device respectively.
    #pragma RETAIN(otp_z1_data_1) 
    #pragma DATA_SECTION(otp_z1_data_1,"dcsm_zsel_z1"); 
    const long otp_z1_data_1 = 0x5AFF582A; 
    
    #pragma RETAIN(otp_z1_data_2)
    #pragma DATA_SECTION(otp_z1_data_2,"dcsm_zsel_z1_2"); 
    const long otp_z1_data_2 = 0xFF41226A;
    
  2. In the linker command file for the project, add the following lines defining the DCSM OTP BOOTPIN-CONFIG and BOOTDEF-LOW memory map locations as defined in the Boot ROM Configuration Registers section of the device-specific TRM. The addresses below are for the DCSM user OTP boot configuration registers on F280015x devices.
    MEMORY { 
       PAGE 0:
          DCSM_ZSEL_Z1_P0: origin = 0x078008, length = 0x000002 // Z1-OTP-BOOTPIN-CONFIG
          DCSM_ZSEL_Z1_P1: origin = 0x07800C, length = 0x000002 // Z1-OTP-BOOTDEF-LOW
    }  
    SECTIONS { 
       dcsm_zsel_z1_1 : > DCSM_ZSEL_Z1_P0, PAGE = 0 
       dcsm_zsel_z1_2 : > DCSM_ZSEL_Z1_P1, PAGE = 0 
    }
    
  3. Rebuild the example and load to the target by JTAG in CCS. The program loader and Flash API plugin in CCS handles the writing of these values into OTP locations. These values have to be selected and written carefully as the OTP locations cannot be reprogrammed.