altos/lpc, altos/stm: ARM requires ISB after switching stack pointers
[fw/altos] / src / stm / ao_arch_funcs.h
index 9bb2d7cd5d830c158bd0dbbeb01ec3a39b63d64c..4bcc102324a5cb63fe49d518e684d4ffc072dcd6 100644 (file)
@@ -354,6 +354,7 @@ static inline void ao_arch_start_scheduler(void) {
        asm("mrs %0,control" : "=&r" (control));
        control |= (1 << 1);
        asm("msr control,%0" : : "r" (control));
+       asm("isb");
 }
 #endif