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.

[FAQ] Flash: Frequently Asked Questions

Other Parts Discussed in Thread: UNIFLASH

Question: Where can I find answers to frequently asked questions related to C2000 flash on TMS320F28M35x, TMS320F28M36x, TMS320F2837xD, TMS320F2837xS, TMS320F2807x, TMS320F28004x, TMS320F28002x, TMS320F2838x devices?

Answer: Below FAQ posts answer several questions on flash API, ECC, programming tools, ECC linker options and flash based project development.

1. [FAQ] FAQ on Flash API usage for C2000 devices: 

2. [FAQ] FAQ for Flash ECC usage in C2000 devices - Includes ECC test mode, Linker ECC options: 

3. [FAQ] : How can we improve the Flash tool performance?: 

4. [FAQ] Flash - How to modify an application from RAM configuration to Flash configuration?: 

     Note: Application note on Running an Application from Flash (spra958) is not updated for the listed devices in the question of this post.  Hence use this FAQ #4 along with this application note.  

5. [FAQ] C2000 CCS Flash plugin and UniFlash: 

6. [FAQ] TI C2000 Device Programming Tools and Services: 

7. [FAQ] Product Change Notice (PCN) 20180523001.1 and PCN 20200115000.2 for TMS320F2837x and TMS320F2807x devices:

8. Application note on serial (SCI) kernel based flash programming: Serial Flash Programming of C2000Tm Microcontrollers(sprabv4)

9. Application note on CAN kernel based flash programming: 

10. Application note on copying entire application from flash to RAM: Copying Compiler Sections from Flash to RAM on the TMS320F28xxx DSCs (spraau8)

Note: In the latest C2000 devices, the on-chip flash memory is tightly integrated to the CPU, allowing code execution directly from flash through 128-bit-wide prefetch reads and a pipeline buffer. Flash performance for sequential code is equal to execution from RAM. Factoring in discontinuities, most applications will run with an efficiency of approximately 80% relative to code executing from RAM. This flash efficiency lets designers realize a 2× improvement in performance when migrating from the previous generation of MCUs.  Hence, there is no need to copy the entire application from flash to RAM.  We recommend copying only time-critical ISRs and any device/flash configuration routines that need to execute from RAM.

11. Application note on EEPROM emulation driver for C2000 Gen2 devices: 

12. Application note on EEPROM emulation driver for C2000 Gen3 devices: 

13. TMS320F28P65x Flash plugin usage notes: 

(i) Before doing any flash operations using the flash plugin,

(a) Please select which flash banks should be mapped to which CPU (CPU1 vs CPU2) - This selection should be done in CPU1 flash plugin GUI.

(b) Please select the flash banks that the user would like the flash plugin to erase (in the CPU1 flash plugin GUI and the CPU2 flash plugin GUI) 

(c) Please configure the PLL using the Configure Clock button in CPU1 flash plugin GUI before doing any CPU2 flash plugin operations (including loading any executable to CPU2 flash).

(ii) Note that DCSM OTP is programmable by the CCS On-chip flash plugin and Uniflash.  However, USER OTPs of  Bank1 to Bank4 are not allowed for programming as of now in CCSv12.4 or CCSv12.5.  The On-chip flash plugin of CCSv12.6 (planned for release in January 2024) will allow programming of the USER OTPs of Bank1 to Bank4.

14. F28003x and F28004x Flash API usage errata:


Vamsi Gudivada

Flash SW Architect

Texas Instruments