I have many questions about assumptions from SM rev. 4. Let's start with NVIC section:
[SM_100], implementation hint: "A possible way to detect spurious interrupts is to check corresponding interrupt status in the interrupt status register (polling) of the related peripheral before executing the Interrupt Service Routine (ISR) service code"
For me it's not clear if I have to monitor the pending status of the NVIC or of interrupt flags set in the peripheral register.
If a I am going to poll for the interrupt flags in a peripheral register, I must also keep track of:
global interrupt enable\disable bit status (cpsid/cpsie)
and Interrupt enabled in NVIC (peripheral)
Furthermore, shall I monitor periodically the critical interrupts in polling (e.g while loop and if irq present execute callback) or just poll the irq registers of the peripheral in the callback provided in VTOR before executing some code?
And what's the difference between the implementation hint of [SM_098]?