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

Nested interrupts

Hi,

I'm trying to get an idea of the best (only?) way to implement interrupt nesting (i.e. a lower priority ISR being interrupted by a higher priority one). I'm using only the VIC IRQ of an STR91 device (i.e no FIQ). Using UV3 & RealView. Having reviewed what I've read here, it seems that I need to:

1) Upon ISR entry, save the current context
2) Enter supervisor mode in order to...
3) ...re-enable interrupts (allowing pre-emption)
4) Process ISR
5) Revert to user mode
6) Restore context
7) Leave ISR

Q1. Is the only way to enter supervisor mode via an SWI?
Q2.Would all my ISR's requiring pre-emption (not all would) have to be encased in an asm wrapper?
Q3. Are there some 'intrinsics' that can be used for this purpose? (I'm having difficulty finding a definitive list of them)
Q4. Is my understanding correct?

Any clarification/recommendations on this would be appreciated.

Thanks

Dave