[87] CPU: Unexpected wake from System ON Idle when using FPU

This anomaly applies to IC Rev. Engineering C, build codes QFAA-BB0, CHAA-BA0, CIAA-BA0.

It was inherited from the previous IC revision Engineering B.

Symptoms

The CPU is unexpectedly awoken from System ON Idle.

Conditions

The FPU has been used.

Consequences

The CPU is awoken from System ON Idle.

Workaround

The FPU can generate pending interrupts just like other peripherals, but unlike other peripherals there are no INTENSET, INTENCLR registers for enabling or disabling interrupts at the peripheral level. In order to prevent unexpected wake-up from System ON Idle, add this code before entering sleep:
#if (__FPU_USED == 1)
 _set_FPSCR(_get_FPSCR() & ~(0x0000009F)); 
 (void) __get_FPSCR();
 NVIC_ClearPendingIRQ(FPU_IRQn);
#endif
 __WFE();

Documentation feedback | Developer Zone | Subscribe | Updated 2017-04-21