In July 23, 2014, I finally solved the problem that had plagued me for two months. It was very difficult, so I made a record for future reference.
Problem description: I used the tms320c6713 video, which is connected through the EMIF bus. This flash is divided into two parts: bootlooder and application code, and real-time data collection. I need to increase the data size by four times, but I still store it on the original flash Address. When a lot of data is collected, the data will overwrite the address other than flash. (At that time, I knew that the memory may overflow. For some reason, I did not pay attention to it for the moment and I was taken to the upper computer group to test the upper computer.) once the large data was collected, the program died, after the device is powered on again, the program is not running. I use a simulator to connect to the board and cannot connect to the board.
At that time, the analysis may have modified some important things. Some important information was found on datasheet after expert guidance:
So I modified the hardware (for example, the specific operation) and changed the EMIF Boot Mode to emulation boot. Then the simulator can be connected, so that I can erase all the Flash files, after changing emulation Boot Mode Back To EMIF Boot Mode, the film and magic were revived.
Cause analysis: the wild pointer modifies the code section in flash. When the code is loaded by flash, the verification is incorrect or there are other reasons. As a result, the film cannot exit in the loading status, once the code is loaded, the corresponding JTAG interface cannot be started. Of course, the program cannot run normally.
All of the above are personal guesses. If there is anything wrong, please point it out and correct it.
Boot Mode of c6713