Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop 797836452 -> e80d022ea


Fix startup assembly code for nRF51dk split.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/e80d022e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/e80d022e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/e80d022e

Branch: refs/heads/develop
Commit: e80d022ea20b90ac5fe5004b93dc259d7f3fa2c5
Parents: 7978364
Author: Christopher Collins <[email protected]>
Authored: Wed Jan 11 01:16:02 2017 -0800
Committer: Christopher Collins <[email protected]>
Committed: Wed Jan 11 01:16:02 2017 -0800

----------------------------------------------------------------------
 .../arch/cortex_m0/gcc_startup_nrf51_split.s    | 19 ++++++++++---------
 .../arch/cortex_m0/gcc_startup_nrf51_split.s    | 20 ++++++++++----------
 .../arch/cortex_m0/gcc_startup_nrf51_split.s    | 20 ++++++++++----------
 3 files changed, 30 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e80d022e/hw/bsp/nrf51-blenano/src/arch/cortex_m0/gcc_startup_nrf51_split.s
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51-blenano/src/arch/cortex_m0/gcc_startup_nrf51_split.s 
b/hw/bsp/nrf51-blenano/src/arch/cortex_m0/gcc_startup_nrf51_split.s
index e3c634e..f9bc00b 100755
--- a/hw/bsp/nrf51-blenano/src/arch/cortex_m0/gcc_startup_nrf51_split.s
+++ b/hw/bsp/nrf51-blenano/src/arch/cortex_m0/gcc_startup_nrf51_split.s
@@ -88,15 +88,6 @@ __isr_vector_split:
 Reset_Handler_split:
     .fnstart
 
-    /* Clear BSS */
-    mov     r0, #0
-    ldr     r2, =__bss_start__
-    ldr     r3, =__bss_end__
-.bss_zero_loop:
-    cmp     r2, r3
-    itt     lt
-    strlt   r0, [r2], #4
-    blt    .bss_zero_loop
 
 /* Make sure ALL RAM banks are powered on */
     MOVS    R1, #NRF_POWER_RAMONx_RAMxON_ONMODE_Msk
@@ -111,6 +102,16 @@ Reset_Handler_split:
     ORRS    R2, R1
     STR     R2, [R0]
 
+    /* Clear BSS */
+    subs    r0, r0
+    ldr     r2, =__bss_start__
+    ldr     r3, =__bss_end__
+.bss_zero_loop:
+    cmp     r2, r3
+    bhs     .data_copy_loop
+    stmia   r2!, {r0}
+    b    .bss_zero_loop
+
 /*     Loop to copy data from read only memory to RAM. The ranges
  *      of copy from/to are specified by following symbols evaluated in
  *      linker script.

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e80d022e/hw/bsp/nrf51dk-16kbram/src/arch/cortex_m0/gcc_startup_nrf51_split.s
----------------------------------------------------------------------
diff --git 
a/hw/bsp/nrf51dk-16kbram/src/arch/cortex_m0/gcc_startup_nrf51_split.s 
b/hw/bsp/nrf51dk-16kbram/src/arch/cortex_m0/gcc_startup_nrf51_split.s
index 7b2d3d5..763a448 100755
--- a/hw/bsp/nrf51dk-16kbram/src/arch/cortex_m0/gcc_startup_nrf51_split.s
+++ b/hw/bsp/nrf51dk-16kbram/src/arch/cortex_m0/gcc_startup_nrf51_split.s
@@ -88,16 +88,6 @@ __isr_vector_split:
 Reset_Handler_split:
     .fnstart
 
-    /* Clear BSS */
-    mov     r0, #0
-    ldr     r2, =__bss_start__
-    ldr     r3, =__bss_end__
-.bss_zero_loop:
-    cmp     r2, r3
-    itt     lt
-    strlt   r0, [r2], #4
-    blt    .bss_zero_loop
-
 /* Make sure ALL RAM banks are powered on */
     MOVS    R1, #NRF_POWER_RAMONx_RAMxON_ONMODE_Msk
 
@@ -111,6 +101,16 @@ Reset_Handler_split:
     ORRS    R2, R1
     STR     R2, [R0]
 
+    /* Clear BSS */
+    subs    r0, r0
+    ldr     r2, =__bss_start__
+    ldr     r3, =__bss_end__
+.bss_zero_loop:
+    cmp     r2, r3
+    bhs     .data_copy_loop
+    stmia   r2!, {r0}
+    b    .bss_zero_loop
+
 /*     Loop to copy data from read only memory to RAM. The ranges
  *      of copy from/to are specified by following symbols evaluated in
  *      linker script.

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/e80d022e/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51_split.s
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51_split.s 
b/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51_split.s
index e3c634e..7c9a7b3 100755
--- a/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51_split.s
+++ b/hw/bsp/nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51_split.s
@@ -88,16 +88,6 @@ __isr_vector_split:
 Reset_Handler_split:
     .fnstart
 
-    /* Clear BSS */
-    mov     r0, #0
-    ldr     r2, =__bss_start__
-    ldr     r3, =__bss_end__
-.bss_zero_loop:
-    cmp     r2, r3
-    itt     lt
-    strlt   r0, [r2], #4
-    blt    .bss_zero_loop
-
 /* Make sure ALL RAM banks are powered on */
     MOVS    R1, #NRF_POWER_RAMONx_RAMxON_ONMODE_Msk
 
@@ -111,6 +101,16 @@ Reset_Handler_split:
     ORRS    R2, R1
     STR     R2, [R0]
 
+    /* Clear BSS */
+    subs    r0, r0
+    ldr     r2, =__bss_start__
+    ldr     r3, =__bss_end__
+.bss_zero_loop:
+    cmp     r2, r3
+    bhs     .data_copy_loop
+    stmia   r2!, {r0}
+    b    .bss_zero_loop
+
 /*     Loop to copy data from read only memory to RAM. The ranges
  *      of copy from/to are specified by following symbols evaluated in
  *      linker script.

Reply via email to