summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared/start/start.S
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-04-16 07:50:21 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-04-21 07:04:53 +0200
commit2a24f99d113fe54920e8533ad5fb6cd1da1335c1 (patch)
treecf4f45f75d57f53e991ba0b507e37fd50c315f42 /bsps/arm/shared/start/start.S
parentFix calloc() behaviour in case of overflow (diff)
downloadrtems-2a24f99d113fe54920e8533ad5fb6cd1da1335c1.tar.bz2
bsps/arm: Set MSP in ARMv7-M start code
Set the Main Stack Pointer (MSP) to the ISR stack area end just in case we run using the Process Stack Pointer (PSP). This helps if applications are started by a boot loader.
Diffstat (limited to 'bsps/arm/shared/start/start.S')
-rw-r--r--bsps/arm/shared/start/start.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/bsps/arm/shared/start/start.S b/bsps/arm/shared/start/start.S
index 50bf1d4841..bd623178ed 100644
--- a/bsps/arm/shared/start/start.S
+++ b/bsps/arm/shared/start/start.S
@@ -553,6 +553,14 @@ _start:
#endif
ldr sp, =_ISR_Stack_area_end
+
+ /*
+ * Set the Main Stack Pointer (MSP) to the ISR stack area end just in
+ * case we run using the Process Stack Pointer (PSP).
+ */
+ mov r0, sp
+ msr msp, r0
+
ldr lr, =bsp_start_hook_0_done + 1
b bsp_start_hook_0