summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/lpc17xx/startup.s16
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