aboutsummaryrefslogtreecommitdiffstats
path: root/ports/ARMCM3
diff options
context:
space:
mode:
Diffstat (limited to 'ports/ARMCM3')
-rw-r--r--ports/ARMCM3/chcore.c6
-rw-r--r--ports/ARMCM3/crt0.s2
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:
/*