diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/lpc17xx/startup.s | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/arm/lpc17xx/startup.s b/arch/arm/lpc17xx/startup.s index ecab24e..6ad4127 100644 --- a/arch/arm/lpc17xx/startup.s +++ b/arch/arm/lpc17xx/startup.s @@ -128,16 +128,18 @@ __cs3_interrupt_vector_cortex_m: .type __cs3_reset_cortex_m, %function __cs3_reset_cortex_m: .fnstart + LDR R0, =__rom_data_begin LDR R1, =__rom_data_end LDR R2, =__ram_data_begin - B rom_to_ram_copy_check -rom_to_ram_copy_loop: - LDR R3, [R0], #4 - STR R3, [R2], #4 -rom_to_ram_copy_check: - CMP R1, R0 - BCC rom_to_ram_copy_loop + + MOV R3, R0 + SUBS R4, R1, R0 + MOV R1, R3 + MOV R0, R2 + MOV R2, R4 + BL memcpy + LDR R0, =SystemInit BLX R0 LDR R0,=_start |