I'm having trouble with a Nios processor that stops responding after an unpredictable time. It appears to be the result of liberally using interrupt enable/disable statements. These statements are in place to protect shared variables. However, I have some concerns:
- The register window (CWP) manager can generate an exception that won't be serviced if interrupts are disabled. It seems unlikely because there aren't many different interrupts to service - so not much save/restore.
- The Nios documentation doesn't provide guidelines for acceptable use of interrupt code (ISR written in C). For instance, can I make subroutine calls (stack is available)?
Compiled debug code is too large for my system memory so I am kind of stuck for debugging information.
I'd be glad to hear from anyone who has had similar problems or knows about the low-level behavior of Nios.
Thanks Matt