This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Abort or prefetch irq after 128 interrupts?!?

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;
}

Parents Reply Children
  • 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).