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 some questions of arm interrupt

Note: This was originally posted on 20th June 2008 at http://forums.arm.com

I try to understand arm interrupt,there are some questions I don't know,
  1.   Why the nested interrupt has to switch out of irq mode to svc mode?  I think  it only pushes the r14_irq into the irq stack.
   2.    The basic difference between a reentrant interrupt handler and a nested interrupt han-dler is that the interrupts are reenabled early on in the reentrant interrupt handler, which can reduce interrupt latency.
    I can't understand that ?

   thanks!
Parents
  • Note: This was originally posted on 24th June 2008 at http://forums.arm.com

    If I recall correctly, a nested interrupt handler allows a higher-priority interrupt to interrupt it. For example, you might want a timer interrupt to have higher priority than a UART interrupt, because what you are doing in the timer requires hard real-time guarantees on latency. In this model, an interrupt cannot interrupt the handler for itself.

    In a re-entrant interrupt routine, a second interrupt of the same type can interrupt processing of the first one. This is rarer, because if the interrupt is that important, you probably need to service the first one anyway. Re-entrant code is more difficult to write and debug, since it will often require access to the same data structures as the interrupted interrupt handler. It also allows unbounded stack growth if the interrupts come in too fast to handle.
Reply
  • Note: This was originally posted on 24th June 2008 at http://forums.arm.com

    If I recall correctly, a nested interrupt handler allows a higher-priority interrupt to interrupt it. For example, you might want a timer interrupt to have higher priority than a UART interrupt, because what you are doing in the timer requires hard real-time guarantees on latency. In this model, an interrupt cannot interrupt the handler for itself.

    In a re-entrant interrupt routine, a second interrupt of the same type can interrupt processing of the first one. This is rarer, because if the interrupt is that important, you probably need to service the first one anyway. Re-entrant code is more difficult to write and debug, since it will often require access to the same data structures as the interrupted interrupt handler. It also allows unbounded stack growth if the interrupts come in too fast to handle.
Children
No data