Hi Jack,
Using the STR912FA44. I have a program where I use external interrupts, it happens that once I get 128 interrupts my system blocks once I get an preftetch abort exception OR an Undefined instruction exception. After reading about it I thought that had to deal with spurious interrupts but I have added the default handler in order to work around with no success. Do you have a clue about what is causing this strange behaviour?
Thanks.
This are my handlers:
void Undefined_Handler(void) { while(1) { } } void Prefetch_Handler(void) { while(1) { } } void WIU_IRQHandler(void) { vu32 a=0; a= VIC1->VAR; if (WIU_GetITStatus(WIU_Line9)==SET) { ExtInt1Handler(2); } WIU_ClearITPendingBit(WIU_Line9); /*write any value to VIC1 VAR*/ VIC1->VAR = 0xFF; VIC0->VAR = 0xFF; }
How do I check/solve that?
How do I check/solve that?<p>
Check whether there's a valid interrupt stack pointer (be aware that the register set changes when the processor enters IRQ or FIQ mode, so setting up a stack pointer for user or supervisor mode isn't enough), and if these are any irregularities in stack handling (e.g. IRQ/FIQ stack pointer seems to "grow" in one direction or similar).