ARM Cortex-M Erratum 838869 Handled Inconsistently in Ports
Real-Time Event Frameworks based on active objects & state machines
Brought to you by:
quantum-leaps
The ARM Cortex-M Erratum 838869, "Store immediate overlapping exception return operation might vector to incorrect interrupt" talks about possibility of a mismatch between the interrupt acknowledged by the interrupt controller and the vector fetched by the processor.
The universal workaround for this erratum it to issue the DSB (Data Synchronization Barrier) instruction after all writes to registers, but before exiting every interrupt. Currently, QP/C and QP/C++ don't include the workaround and they should.
See also the discussion thread "ARM errata 838869".
--MMS
Anonymous
Fixed in QP/C/C++ 6.9.3.
--MMS