TI's C6000 series DSP, implementation of flashboot[Copy link]
This post was last edited by Jacktang on 2018-6-11 22:33 The so-called flashboot is to burn the user's main program into the flash chip, and then power on to realize the automatic loading and startup process of the main program. This article does not discuss the burning of the program to the flash. It is mainly to be familiar with some parameters of the flash chip, the burning rules, and the allocation of the storage start address. It can be realized by writing a simple C program, and it is necessary to make necessary modifications to the cmd file. A detailed introduction to the cmd file will be posted later. First, let's understand several methods of flash burning. Generally speaking, there are two types. 1. Burn with built-in software. 2. Use the emulator and write your own program. This article mainly describes the latter method, that is, writing a burning program to realize the burning of the main program. Introduce your own development platform. A development board, a USB emulator, a PC, and the software is CCS2.2. To implement flashboot, you must understand the system startup process. For the C6000 series, after powering on, the system will automatically load the data of the first 1K space of the flash and copy it to the address space starting from 0x0 of the memory, and start running the program from 0x0. Therefore, if our main program is larger than 1K, then a secondary boot is required to load it. This article discusses secondary booting. To implement secondary booting, you must add a secondary loader, which must be smaller than 1K and is used to load user programs. It is generally implemented in assembly language. The source code will not be discussed here, and you can refer to the program of Hezhongda. It mainly implements several functions: load the cinit segment and text segment of the user main program respectively, and jump to the entry address of the user main program to start execution after completion. It should be noted that the user main program and the secondary loading program are compiled as a whole project, and the cmd file controls the memory space occupied by the two programs. Then, the mixed compiled program is written into the flash through the burning program, and the flash self-starting process can be realized.