diff options
Diffstat (limited to 'ports/ARMCM3')
-rw-r--r-- | ports/ARMCM3/chcore.c | 6 | ||||
-rw-r--r-- | ports/ARMCM3/crt0.s | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/ports/ARMCM3/chcore.c b/ports/ARMCM3/chcore.c index ea33f62eb..d691cee20 100644 --- a/ports/ARMCM3/chcore.c +++ b/ports/ARMCM3/chcore.c @@ -95,10 +95,10 @@ void chSysIRQExitI(void) { asm volatile ("mrs r0, PSP \n\t" \
"ldr r1, =retaddr \n\t" \
- "ldr r2, [r0, #18] \n\t" \
+ "ldr r2, [r0, #24] \n\t" \
"str r2, [r1] \n\t" \
"ldr r1, =threadswitch \n\t" \
- "str r1, [r0, #18] ");
+ "str r1, [r0, #24] ");
return; /* Note, returns *without* re-enabling interrupts.*/
}
}
@@ -106,7 +106,7 @@ void chSysIRQExitI(void) { }
/*
- * This code is execute in thread mode when exiting from an ISR routine that
+ * This code is executed in thread mode when exiting from an ISR routine that
* requires rescheduling.
*/
__attribute__((naked, weak))
diff --git a/ports/ARMCM3/crt0.s b/ports/ARMCM3/crt0.s index 8be43d6a3..75be93753 100644 --- a/ports/ARMCM3/crt0.s +++ b/ports/ARMCM3/crt0.s @@ -33,6 +33,8 @@ /*
* Reset handler.
*/
+.thumb
+.thumb_func
.global ResetHandler
ResetHandler:
/*
|