aboutsummaryrefslogtreecommitdiff
path: root/cortex-m-rt/asm.s
diff options
context:
space:
mode:
Diffstat (limited to 'cortex-m-rt/asm.s')
-rw-r--r--cortex-m-rt/asm.s9
1 files changed, 9 insertions, 0 deletions
diff --git a/cortex-m-rt/asm.s b/cortex-m-rt/asm.s
index 1f0e74d..50a3fa5 100644
--- a/cortex-m-rt/asm.s
+++ b/cortex-m-rt/asm.s
@@ -6,5 +6,14 @@
.type HardFaultTrampoline,%function
.thumb_func
HardFaultTrampoline:
+ # depending on the stack mode in EXC_RETURN, fetch stack pointer from
+ # PSP or MSP
+ mov r0, lr
+ mov r1, #4
+ tst r0, r1
+ bne 0f
mrs r0, MSP
b HardFault
+0:
+ mrs r0, PSP
+ b HardFault