Repository: incubator-mynewt-core Updated Branches: refs/heads/develop af9ffab13 -> 39eecc841
Zero BSS in Reset_Handler_split This commit piggybacks on fded8a353024770f591b39bb4508bb9fafc99352. That commit zeros BSS for non-split images. This commit zeroes BSS for split images. 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/39eecc84 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/39eecc84 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/39eecc84 Branch: refs/heads/develop Commit: 39eecc84141da9ec1b71b5a064f83ae996cf5e3f Parents: af9ffab Author: Christopher Collins <[email protected]> Authored: Tue Jan 10 17:17:20 2017 -0800 Committer: Christopher Collins <[email protected]> Committed: Tue Jan 10 17:17:20 2017 -0800 ---------------------------------------------------------------------- .../src/arch/cortex_m4/gcc_startup_nrf52_split.s | 10 ++++++++++ .../src/arch/cortex_m4/gcc_startup_nrf52_split.s | 10 ++++++++++ .../src/arch/cortex_m0/gcc_startup_nrf51_split.s | 10 ++++++++++ .../src/arch/cortex_m0/gcc_startup_nrf51_split.s | 10 ++++++++++ .../nrf51dk/src/arch/cortex_m0/gcc_startup_nrf51_split.s | 10 ++++++++++ .../src/arch/cortex_m4/gcc_startup_nrf52_split.s | 10 ++++++++++ .../nrf52dk/src/arch/cortex_m4/gcc_startup_nrf52_split.s | 10 ++++++++++ .../rb-nano2/src/arch/cortex_m4/gcc_startup_nrf52_split.s | 10 ++++++++++ 8 files changed, 80 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/hw/bsp/arduino_primo_nrf52/src/arch/cortex_m4/gcc_startup_nrf52_split.s ---------------------------------------------------------------------- diff --git a/hw/bsp/arduino_primo_nrf52/src/arch/cortex_m4/gcc_startup_nrf52_split.s b/hw/bsp/arduino_primo_nrf52/src/arch/cortex_m4/gcc_startup_nrf52_split.s index 5ed4bc6..51899e3 100755 --- a/hw/bsp/arduino_primo_nrf52/src/arch/cortex_m4/gcc_startup_nrf52_split.s +++ b/hw/bsp/arduino_primo_nrf52/src/arch/cortex_m4/gcc_startup_nrf52_split.s @@ -83,6 +83,16 @@ __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 + /* Loop to copy data from read only memory to RAM. The ranges * of copy from/to are specified by following symbols evaluated in http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/hw/bsp/bmd300eval/src/arch/cortex_m4/gcc_startup_nrf52_split.s ---------------------------------------------------------------------- diff --git a/hw/bsp/bmd300eval/src/arch/cortex_m4/gcc_startup_nrf52_split.s b/hw/bsp/bmd300eval/src/arch/cortex_m4/gcc_startup_nrf52_split.s index 5ed4bc6..51899e3 100755 --- a/hw/bsp/bmd300eval/src/arch/cortex_m4/gcc_startup_nrf52_split.s +++ b/hw/bsp/bmd300eval/src/arch/cortex_m4/gcc_startup_nrf52_split.s @@ -83,6 +83,16 @@ __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 + /* Loop to copy data from read only memory to RAM. The ranges * of copy from/to are specified by following symbols evaluated in http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/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 1cbe305..e3c634e 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,6 +88,16 @@ __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 http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/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 06ce64d..7b2d3d5 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,6 +88,16 @@ __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 http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/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 1cbe305..e3c634e 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,6 +88,16 @@ __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 http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/hw/bsp/nrf52840pdk/src/arch/cortex_m4/gcc_startup_nrf52_split.s ---------------------------------------------------------------------- diff --git a/hw/bsp/nrf52840pdk/src/arch/cortex_m4/gcc_startup_nrf52_split.s b/hw/bsp/nrf52840pdk/src/arch/cortex_m4/gcc_startup_nrf52_split.s index 2afbfca..c9b7784 100755 --- a/hw/bsp/nrf52840pdk/src/arch/cortex_m4/gcc_startup_nrf52_split.s +++ b/hw/bsp/nrf52840pdk/src/arch/cortex_m4/gcc_startup_nrf52_split.s @@ -84,6 +84,16 @@ __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 + /* Loop to copy data from read only memory to RAM. The ranges * of copy from/to are specified by following symbols evaluated in http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/hw/bsp/nrf52dk/src/arch/cortex_m4/gcc_startup_nrf52_split.s ---------------------------------------------------------------------- diff --git a/hw/bsp/nrf52dk/src/arch/cortex_m4/gcc_startup_nrf52_split.s b/hw/bsp/nrf52dk/src/arch/cortex_m4/gcc_startup_nrf52_split.s index 5ed4bc6..51899e3 100755 --- a/hw/bsp/nrf52dk/src/arch/cortex_m4/gcc_startup_nrf52_split.s +++ b/hw/bsp/nrf52dk/src/arch/cortex_m4/gcc_startup_nrf52_split.s @@ -83,6 +83,16 @@ __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 + /* Loop to copy data from read only memory to RAM. The ranges * of copy from/to are specified by following symbols evaluated in http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/39eecc84/hw/bsp/rb-nano2/src/arch/cortex_m4/gcc_startup_nrf52_split.s ---------------------------------------------------------------------- diff --git a/hw/bsp/rb-nano2/src/arch/cortex_m4/gcc_startup_nrf52_split.s b/hw/bsp/rb-nano2/src/arch/cortex_m4/gcc_startup_nrf52_split.s index 5ed4bc6..51899e3 100755 --- a/hw/bsp/rb-nano2/src/arch/cortex_m4/gcc_startup_nrf52_split.s +++ b/hw/bsp/rb-nano2/src/arch/cortex_m4/gcc_startup_nrf52_split.s @@ -83,6 +83,16 @@ __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 + /* Loop to copy data from read only memory to RAM. The ranges * of copy from/to are specified by following symbols evaluated in
