From 82804fe1155f137077bddb655b46e5488a41632f Mon Sep 17 00:00:00 2001 From: Benjamin Walsh Date: Wed, 23 Nov 2016 16:15:52 -0500 Subject: 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 --- arch/arm/core/cortex_m/reset.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm/core/cortex_m/reset.S b/arch/arm/core/cortex_m/reset.S index 564d0a2c1..e80d7f5f4 100644 --- a/arch/arm/core/cortex_m/reset.S +++ b/arch/arm/core/cortex_m/reset.S @@ -81,7 +81,7 @@ SECTION_SUBSEC_FUNC(TEXT,_reset_section,__start) #ifdef CONFIG_INIT_STACKS ldr r0, =_interrupt_stack - mov r1, #0xaa + ldr r1, =0xaa ldr r2, =CONFIG_ISR_STACK_SIZE bl memset #endif @@ -91,7 +91,8 @@ SECTION_SUBSEC_FUNC(TEXT,_reset_section,__start) * gets set to _interrupt_stack during nanoInit(). */ ldr r0, =_interrupt_stack - adds r0, r0, CONFIG_ISR_STACK_SIZE + ldr r1, =CONFIG_ISR_STACK_SIZE + adds r0, r0, r1 msr PSP, r0 movs.n r0, #2 /* switch to using PSP (bit1 of CONTROL reg) */ msr CONTROL, r0 -- cgit v1.2.3