10-03-2019 02:43 AM
I've got a bit of an odd issue.
I've built a basic dual core microblaze design in EDK.
I can program, debug each core with out issue.
I've run through the SDK examples for the IP blocks in use (TmrCtr, GPIO, UART, and SPI) all in interrupt mode, all work.
However, I am now integrating all of these into one project, and everything works without issue except the SPI module.
When I call the line
XIntc_Connect(&INTC, XPAR_INTC_0_SPI_3_VEC_ID, (XInterruptHandler)XSpi_InterruptHandler, (void *)&SPI);
The program compile without errors or warnings as expected, however when I debug the program I get the following error message:
Which isn't particularly useful.
I've found if I change the parameter (XInterruptHandler)XSpi_InterruptHandler to anything else it debugs without issue again.
There are no user enabled breakpoints either.
Has anyone come across this before?
10-03-2019 06:12 AM
It seems to be an issue with the SPI interrupt that is not allowing the debugger to interact properly with the target. I would suggest you to check configuring EDK to stop at program entry point when you configure properly the interrupt and place the breakpoint in that function. This way you can confirm that the issue is just present when the INTC is configured to drive the interrupt signal to the core. If so, then the issue seems to be more related to the design rather than the debugger itself.
10-03-2019 06:36 AM
Interrupts and debug are a bit incompatible, aren't they?
I particulary don't fancy stepping whenever interrupts are on the way. At the end of the day, your code will run freely at full speed. There are tricks for knowing whats going on in real time, printing things out, logging data, etc.
10-03-2019 06:46 AM