The context is:
- FreeRTOS port
- Going into power-down mode with PM_EnterLowPower(<some amount of time>) using a low-power timer.
- IRQHandlers use setFromISR() and portYIELD_FROM_ISR()
- a high-priority task is waiting for the event bits set from ISR, xEventGroupWaitBits()
- some interrupts are routed through the WUU so that they are available in powerdown mode, including some external pins (seem to work fine) and some internal modules (VBAT, LPTMR, TDET, SPC) that seem to work fine, with the exception of SPC being slow/unresponsive.
- The SPC interrupt is disabled in the IRQHandler and re-enabled after being processed in the high-priority task that is waiting for event bits to be set. This waiting task also calls PM_EnterLowPower() again after processing event bits.
The "problem" is that the SPC interrupt doesn't respond like the others. When it does wake up the processor, it goes back to sleep and doesn't trigger again. When it goes off in active mode, it does keep firing (PM_EnterLowPower() can't put the processor back into powerdown mode).