Hi,
well, the debugger has obviously some troubles to catch and recover this event. But if I test that using SW method only then it works as expected. Here is my minimalist code:
volatile unsigned int temp = 0;
void IVOR1_Handler(void)
{
SIU.SRCR.R = 0x80000000;
}
int main(void)
{
volatile int counter = 0;
xcptn_xmpl (); /* Configure and Enable Interrupts */
while(temp == 0){} /* "user breakpoint" */
temp = *(unsigned int*)0x3FFFFFD0; /* generate bus error */
/* Loop forever */
for(;;) {
counter++;
}
}
I used the "temp" variable as a "breakpoint" when I have to manually change the variable by debugger to continue (I don't want to rely on debugger and normal breakpoints). Then I read an unimplemented area to generate bus error. IVOR1 then just resets the device. I do not step the code, I just run it after manual modification of the "temp". When I stop it, it hangs in the "while" loop again and flags in SIU show that the device was reset by software reset.
So, this is not a problem of the chip, it's about debugger.
My recommendation is to find a way how to debug this event without debugger.
Regards,
Lukas