03-29-2021 02:56 AM
I have an Artix 7 based system that has Microblaze running on it.
The microblaze processes a bunch of static images every now and then. I have noticed that out of the blue the program counter jumps to 0x10 which happens to be interrupt vector table address. A couple of seconds later Vitis shows that processor is in reset state.
I have 512MB of DDR3 RAM connected with data cache enabled just before I call the image processing function and disable it right after. The program flow is something like this.
case process_img: enable_dcache(); read_static_data_from_SPI_flash(); process_static_img(); //Store it on a fixed location of DDR disable_dcache(); break;
This flow executes periodically and logically it doesn't seem to have any flaw for the processor to stall. Could someone help me figure out what could be causing the system to stall? Where should I be looking at?
03-31-2021 03:47 AM - edited 03-31-2021 03:53 AM
Sounds like an exception is getting triggered? can you do a rrd in XSCT when this occurs and read the ESR (Exception Status Register)
You can cross reference this against the MB user guide. table 2-12:
04-01-2021 03:02 AM
I was able to capture the register status when exception occurred but it leads to dead end. The value of ESR is 0x8. The reference document shows no such exception code. Please check the screenshot captured when exception occurred.