Embedded processors often need to be programmed in situations where JTAG cannot be used to program the target device. In these cases, the engineer needs to rely on peripheral programming designs. C2000™ devices aid in this endeavor through the inclusion of several program loading utilities in ROM. These utilities are useful, but only solve half of the programming problem because the utilities only allow loading application code into RAM. This application note builds on these ROM loaders by using a flash kernel. A flash kernel is loaded to RAM using a ROM loader and is then executed and used to program the on-chip Flash memory of the target device with the end application. A key consideration of using a flash kernel on the F29H85x is the addition of the Hardware Security Module (HSM). This document details one possible implementation for C2000 devices and provides PC utilities to evaluate the design.
C2000™ and Code Composer Studio™ are trademarks of Texas Instruments.
Microsoft Visual Studio® and Windows® are registered trademarks of Microsoft Corporation.
Linux® is a registered trademark of Linus Torvalds.
All trademarks are the property of their respective owners.
Before programming a device, understanding how the non-volatile memory of C2000 devices works is necessary. Flash is a non-volatile memory that allows users to easily erase and re-program. Erase operations set all the bits in a sector to '1' while programming operations selectively set bits to '0'.
Flash operations on all C2000 devices are performed using the CPU. Algorithms are loaded into RAM and executed by the CPU to perform any flash operation. For example, erasing or programming the flash of a C2000 device with Code Composer Studio™ entails loading flash algorithms into RAM and letting the processor execute them. There are no special JTAG commands that are used. All flash operations are performed using the flash application programming interface (API). Because all flash operations are done using the CPU, there are many possibilities for device programming. Irrespective of how the kernels and application are brought into the device, flash is programmed using the CPU.