Hello, I encountered a problem when using the TMS570LC4357 chip:
The background of our project is that the TMS570LC4357 is connected to the FPGA through the EMIF bus, and the FPGA is connected to an external SRAM. The TMS570LC4357 operates the SRAM through the EMIF bus for reading and writing. Now it is successful to operate the read and write functions of SRAM through TMS570LC4357.
Now I want to realize the function of jumping from the on-chip FLASH of TMS570LC4357 to running in SRAM, but the prefetch interrupt error always occurs. After turning off the MPU, an undef interrupt error occurs again.
Our specific operating procedures are as follows:
I wrote a lighting function to make the LED light flash. The function is called FLASHTORAM. Then compile the entire project, generate a hex file, and use the Memory browser tool to find the entire content of the FLASHTORAM function in the hex file. Then write this content into SRAM through the CS2 chip select of EMIF. The written address is 0x6000 0000. Finally, use the function pointer to point to 0x6000 0000. You want the program to jump to this address and run to achieve lighting in the SRAM. Function.
The jump function is:
void jumptoaddress(uint32 address)
{
uint32 TransferAddress = 0;
TransferAddress = address;
((void(*) (void))TransferAddress) ();
}
But every time when running to a jump, a prefetch interruption error will occur. By looking at the cp15_instruction_fault_addrss register, we found that the error address is 0x6000 0000. What should I do at this time and troubleshoot the problem?