diff options
author | Benjamin Walsh <benjamin.walsh@windriver.com> | 2016-11-23 16:15:52 -0500 |
---|---|---|
committer | Anas Nashif <nashif@linux.intel.com> | 2016-11-24 02:33:59 +0000 |
commit | 82804fe1155f137077bddb655b46e5488a41632f (patch) | |
tree | 643e30ec4fd5684099c7747794287678e6100e47 | |
parent | 672dc9cc89a0b550af1d4810f9d6925e45df8a32 (diff) |
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 <benjamin.walsh@windriver.com>
-rw-r--r-- | arch/arm/core/cortex_m/reset.S | 5 |
1 files 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 |