diff --git a/cpu/cortexm_common/vectors_cortexm.c b/cpu/cortexm_common/vectors_cortexm.c index 6b90b2d56db1e5d0b32a6133c3e1a934b4de87e3..ef19ccd8e58a3dbb2a482b56c466cfa2b7ed35b4 100644 --- a/cpu/cortexm_common/vectors_cortexm.c +++ b/cpu/cortexm_common/vectors_cortexm.c @@ -134,7 +134,8 @@ void hard_fault_default(void) "mrs r0, psp \n" /* r0 = psp */ " out: \n" /* } */ "mov r1, #0 \n" /* corrupted = false */ - "cmp r0, sp \n" /* If msp is active stack- */ + "mov r2, sp \n" /* Cmp with SP is deprecated */ + "cmp r0, r2 \n" /* If msp is active stack- */ "bne hardfault \n" /* pointer, check if valid so */ "cmp r0, %[eram] \n" /* so calling c-func works . */ "bge fix_msp \n" /* if(r0 == msp) { */ @@ -150,7 +151,7 @@ void hard_fault_default(void) : [sram] "r" (&_sram), [eram] "r" (&_eram), [estack] "r" (&_estack) - : "r0","r1" + : "r0","r1","r2" ); }