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.
