This paper show expertise in the advanced DSP software development subject of auto programming.
Paragraph 5.1.3.1. in the SDS document requires that new versions for the DSP software be programmed from a user interface, that we will call the VI hereafter, without resorting to an emulator or any other special hardware resource.
To comply with this requirement, a program, that we will call the loader hereafter, must be programmed into the DSP flash sectors G and H. The main program, that will be called the main app hereafter, will be programmed into sectors A, B, C and D.
The main app exposes commands to support the transfer and verification of the new version’s flash memory image. The main app will also make sure that the mentioned image is different that the current flash memory content, since there is no point in erasing and reprogramming with exactly the same code.
The main app will create a buffer with the new flash memory image for sectors A to D that it received from the VI, the address and size of the said buffer as well as the flash start address are stored in a fix physical area of the DSP’s internal RAM (so that it remains independent of the external memory mapping design, namely the six words after address 0x3f9ffa).
Once all the above is accomplished the control is far branched to location 0x3E0000, which is the entry point to the loader program. When all the sectors are programmed and verified, the DSP is internally reset and the new version goes in control. There’s no need to do a power cycle.
Self programming is supported by main app version 3.0 and above
The loader can not be flashed through the VI. You must use an emulator like the XDS510-USB. We also recommend the use of the flash programmer plug-in for TI’s Code Composer.
Once you have installed the mentioned plug-in (that can be down loaded from TI’s Web site), you may call it by selecting the menu item F28xx On-Chip Flash Programmer under the Tools menu. The tool shows a GUI in which you should unselect all sectors but G and H. Make sure you set 30 MHz, the PLLCR value to 8 and browse to the location were you stored the Flash281x.out file.
Command 0xF3 creates a file with a memory image of sectors A, B, C and D. The image has 49152 (0xC000) words; for this image file we used the same format and .dat extension the Code Composer uses for I/O data files. Is a simple text format: