Skip to content

Commit 82804fe

Browse files
benwrsAnas Nashif
authored andcommitted
arm: fix early boot on Cortex-M0 with init stack
The assembler was passed immediate values that are too large for the limited Cortex-M0 thumb assembly. Load values in registers instead of using immediate values. Change-Id: Ib5541c92dea03e0efb1b88ab91eeb408d151a71b Signed-off-by: Benjamin Walsh <[email protected]>
1 parent 672dc9c commit 82804fe

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

arch/arm/core/cortex_m/reset.S

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ SECTION_SUBSEC_FUNC(TEXT,_reset_section,__start)
8181

8282
#ifdef CONFIG_INIT_STACKS
8383
ldr r0, =_interrupt_stack
84-
mov r1, #0xaa
84+
ldr r1, =0xaa
8585
ldr r2, =CONFIG_ISR_STACK_SIZE
8686
bl memset
8787
#endif
@@ -91,7 +91,8 @@ SECTION_SUBSEC_FUNC(TEXT,_reset_section,__start)
9191
* gets set to _interrupt_stack during nanoInit().
9292
*/
9393
ldr r0, =_interrupt_stack
94-
adds r0, r0, CONFIG_ISR_STACK_SIZE
94+
ldr r1, =CONFIG_ISR_STACK_SIZE
95+
adds r0, r0, r1
9596
msr PSP, r0
9697
movs.n r0, #2 /* switch to using PSP (bit1 of CONTROL reg) */
9798
msr CONTROL, r0

0 commit comments

Comments
 (0)