Hi Will, The issue is not visible during build time but on a platform startup.
I believe that Michal's patch solves this issue so let's apply this patch using git am or accept pull request he has prepared. Best regards, Lukasz On Nov 7, 2016 4:12 PM, "will sanfilippo" <[email protected]> wrote: > Hey all: > > Sorry about this. I think my build found the startup file somewhere but > what is in develop doesnt. We will address this today. > > Thanks, and sorry. > > Will > > > On Nov 7, 2016, at 6:13 AM, Michał Narajowski < > [email protected]> wrote: > > > > Also sent a pull request. > > > > 2016-11-07 14:15 GMT+01:00 Michał Narajowski < > [email protected]> > > : > > > >> With this patch it is possible to start nrf52dk board. > >> Regression observed after patch: > >> 290c683 MYNEWT-475: BSP Cleanup > >> --- > >> .../src/arch/cortex_m4/gcc_startup_nrf52.s | 289 > >> +++++++++++++++++++++ > >> .../src/arch/cortex_m4/gcc_startup_nrf52_split.s | 150 +++++++++++ > >> hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52.s | 289 > >> --------------------- > >> .../nordic/nrf52xxx/src/gcc_startup_nrf52_split.s | 150 ----------- > >> 4 files changed, 439 insertions(+), 439 deletions(-) > >> create mode 100755 hw/mcu/nordic/nrf52xxx/src/ > arch/cortex_m4/gcc_startup_ > >> nrf52.s > >> create mode 100755 hw/mcu/nordic/nrf52xxx/src/ > arch/cortex_m4/gcc_startup_ > >> nrf52_split.s > >> delete mode 100755 hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52.s > >> delete mode 100755 hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52_split.s > >> > >> diff --git a/hw/mcu/nordic/nrf52xxx/src/arch/cortex_m4/gcc_startup_ > nrf52.s > >> b/hw/mcu/nordic/nrf52xxx/src/arch/cortex_m4/gcc_startup_nrf52.s > >> new file mode 100755 > >> index 0000000..fb804fd > >> --- /dev/null > >> +++ b/hw/mcu/nordic/nrf52xxx/src/arch/cortex_m4/gcc_startup_nrf52.s > >> @@ -0,0 +1,289 @@ > >> +/* > >> +Copyright (c) 2015, Nordic Semiconductor ASA > >> +All rights reserved. > >> + > >> +Redistribution and use in source and binary forms, with or without > >> +modification, are permitted provided that the following conditions are > >> met: > >> + > >> +* Redistributions of source code must retain the above copyright > notice, > >> this > >> + list of conditions and the following disclaimer. > >> + > >> +* Redistributions in binary form must reproduce the above copyright > >> notice, > >> + this list of conditions and the following disclaimer in the > >> documentation > >> + and/or other materials provided with the distribution. > >> + > >> +* Neither the name of Nordic Semiconductor ASA nor the names of its > >> + contributors may be used to endorse or promote products derived from > >> + this software without specific prior written permission. > >> + > >> +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > >> IS" > >> +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > >> +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > >> PURPOSE ARE > >> +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > >> LIABLE > >> +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > >> +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE > GOODS OR > >> +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > HOWEVER > >> +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > >> LIABILITY, > >> +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE > >> USE > >> +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > >> +*/ > >> + > >> +/* > >> +NOTE: Template files (including this one) are application specific and > >> therefore > >> +expected to be copied into the application project folder prior to its > >> use! > >> +*/ > >> + > >> + .syntax unified > >> + .arch armv7-m > >> + > >> + .section .stack > >> + .align 3 > >> + .equ Stack_Size, 432 > >> + .globl __StackTop > >> + .globl __StackLimit > >> +__StackLimit: > >> + .space Stack_Size > >> + .size __StackLimit, . - __StackLimit > >> +__StackTop: > >> + .size __StackTop, . - __StackTop > >> + > >> + .section .heap > >> + .align 3 > >> +#ifdef __HEAP_SIZE > >> + .equ Heap_Size, __HEAP_SIZE > >> +#else > >> + .equ Heap_Size, 0 > >> +#endif > >> + .globl __HeapBase > >> + .globl __HeapLimit > >> +__HeapBase: > >> + .if Heap_Size > >> + .space Heap_Size > >> + .endif > >> + .size __HeapBase, . - __HeapBase > >> +__HeapLimit: > >> + .size __HeapLimit, . - __HeapLimit > >> + > >> + .section .isr_vector > >> + .align 2 > >> + .globl __isr_vector > >> +__isr_vector: > >> + .long __StackTop /* Top of Stack */ > >> + .long Reset_Handler /* Reset Handler */ > >> + .long NMI_Handler /* NMI Handler */ > >> + .long HardFault_Handler /* Hard Fault Handler */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long SVC_Handler /* SVCall Handler */ > >> + .long 0 /* Reserved */ > >> + .long 0 /* Reserved */ > >> + .long PendSV_Handler /* PendSV Handler */ > >> + .long SysTick_Handler /* SysTick Handler */ > >> + > >> + /* External Interrupts */ > >> + .long POWER_CLOCK_IRQHandler > >> + .long RADIO_IRQHandler > >> + .long UARTE0_UART0_IRQHandler > >> + .long SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler > >> + .long SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler > >> + .long NFCT_IRQHandler > >> + .long GPIOTE_IRQHandler > >> + .long SAADC_IRQHandler > >> + .long TIMER0_IRQHandler > >> + .long TIMER1_IRQHandler > >> + .long TIMER2_IRQHandler > >> + .long RTC0_IRQHandler > >> + .long TEMP_IRQHandler > >> + .long RNG_IRQHandler > >> + .long ECB_IRQHandler > >> + .long CCM_AAR_IRQHandler > >> + .long WDT_IRQHandler > >> + .long RTC1_IRQHandler > >> + .long QDEC_IRQHandler > >> + .long COMP_LPCOMP_IRQHandler > >> + .long SWI0_EGU0_IRQHandler > >> + .long SWI1_EGU1_IRQHandler > >> + .long SWI2_EGU2_IRQHandler > >> + .long SWI3_EGU3_IRQHandler > >> + .long SWI4_EGU4_IRQHandler > >> + .long SWI5_EGU5_IRQHandler > >> + .long TIMER3_IRQHandler > >> + .long TIMER4_IRQHandler > >> + .long PWM0_IRQHandler > >> + .long PDM_IRQHandler > >> + .long 0 /*Reserved */ > >> + .long 0 /*Reserved */ > >> + .long MWU_IRQHandler > >> + .long PWM1_IRQHandler > >> + .long PWM2_IRQHandler > >> + .long SPIM2_SPIS2_SPI2_IRQHandler > >> + .long RTC2_IRQHandler > >> + .long I2S_IRQHandler > >> + > >> + .size __isr_vector, . - __isr_vector > >> + > >> +/* Reset Handler */ > >> + > >> + .text > >> + .thumb > >> + .thumb_func > >> + .align 1 > >> + .globl Reset_Handler > >> + .type Reset_Handler, %function > >> +Reset_Handler: > >> + .fnstart > >> + > >> +/* 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. > >> + * __etext: End of code section, i.e., begin of data sections to > >> copy from. > >> + * __data_start__/__data_end__: RAM address range that data > should be > >> + * copied to. Both must be aligned to 4 bytes boundary. */ > >> + > >> + ldr r1, =__etext > >> + ldr r2, =__data_start__ > >> + ldr r3, =__data_end__ > >> + > >> + subs r3, r2 > >> + ble .LC0 > >> + > >> +.LC1: > >> + subs r3, 4 > >> + ldr r0, [r1,r3] > >> + str r0, [r2,r3] > >> + bgt .LC1 > >> + > >> +.LC0: > >> + > >> + LDR R0, =__HeapBase > >> + LDR R1, =__HeapLimit > >> + BL _sbrkInit > >> + > >> + LDR R0, =SystemInit > >> + BLX R0 > >> + > >> + LDR R0, =_start > >> + BX R0 > >> + > >> + .pool > >> + .cantunwind > >> + .fnend > >> + .size Reset_Handler,.-Reset_Handler > >> + > >> + .section ".text" > >> + > >> + > >> +/* Dummy Exception Handlers (infinite loops which can be modified) */ > >> + > >> + .weak NMI_Handler > >> + .type NMI_Handler, %function > >> +NMI_Handler: > >> + B . > >> + .size NMI_Handler, . - NMI_Handler > >> + > >> + > >> + .weak HardFault_Handler > >> + .type HardFault_Handler, %function > >> +HardFault_Handler: > >> + B . > >> + .size HardFault_Handler, . - HardFault_Handler > >> + > >> + > >> + .weak MemoryManagement_Handler > >> + .type MemoryManagement_Handler, %function > >> +MemoryManagement_Handler: > >> + B . > >> + .size MemoryManagement_Handler, . - MemoryManagement_Handler > >> + > >> + > >> + .weak BusFault_Handler > >> + .type BusFault_Handler, %function > >> +BusFault_Handler: > >> + B . > >> + .size BusFault_Handler, . - BusFault_Handler > >> + > >> + > >> + .weak UsageFault_Handler > >> + .type UsageFault_Handler, %function > >> +UsageFault_Handler: > >> + B . > >> + .size UsageFault_Handler, . - UsageFault_Handler > >> + > >> + > >> + .weak SVC_Handler > >> + .type SVC_Handler, %function > >> +SVC_Handler: > >> + B . > >> + .size SVC_Handler, . - SVC_Handler > >> + > >> + > >> + .weak PendSV_Handler > >> + .type PendSV_Handler, %function > >> +PendSV_Handler: > >> + B . > >> + .size PendSV_Handler, . - PendSV_Handler > >> + > >> + > >> + .weak SysTick_Handler > >> + .type SysTick_Handler, %function > >> +SysTick_Handler: > >> + B . > >> + .size SysTick_Handler, . - SysTick_Handler > >> + > >> + > >> +/* IRQ Handlers */ > >> + > >> + .globl Default_Handler > >> + .type Default_Handler, %function > >> +Default_Handler: > >> + B . > >> + .size Default_Handler, . - Default_Handler > >> + > >> + .macro IRQ handler > >> + .weak \handler > >> + .set \handler, Default_Handler > >> + .endm > >> + > >> + IRQ POWER_CLOCK_IRQHandler > >> + IRQ RADIO_IRQHandler > >> + IRQ UARTE0_UART0_IRQHandler > >> + IRQ SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler > >> + IRQ SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler > >> + IRQ NFCT_IRQHandler > >> + IRQ GPIOTE_IRQHandler > >> + IRQ SAADC_IRQHandler > >> + IRQ TIMER0_IRQHandler > >> + IRQ TIMER1_IRQHandler > >> + IRQ TIMER2_IRQHandler > >> + IRQ RTC0_IRQHandler > >> + IRQ TEMP_IRQHandler > >> + IRQ RNG_IRQHandler > >> + IRQ ECB_IRQHandler > >> + IRQ CCM_AAR_IRQHandler > >> + IRQ WDT_IRQHandler > >> + IRQ RTC1_IRQHandler > >> + IRQ QDEC_IRQHandler > >> + IRQ COMP_LPCOMP_IRQHandler > >> + IRQ SWI0_EGU0_IRQHandler > >> + IRQ SWI1_EGU1_IRQHandler > >> + IRQ SWI2_EGU2_IRQHandler > >> + IRQ SWI3_EGU3_IRQHandler > >> + IRQ SWI4_EGU4_IRQHandler > >> + IRQ SWI5_EGU5_IRQHandler > >> + IRQ TIMER3_IRQHandler > >> + IRQ TIMER4_IRQHandler > >> + IRQ PWM0_IRQHandler > >> + IRQ PDM_IRQHandler > >> + IRQ MWU_IRQHandler > >> + IRQ PWM1_IRQHandler > >> + IRQ PWM2_IRQHandler > >> + IRQ SPIM2_SPIS2_SPI2_IRQHandler > >> + IRQ RTC2_IRQHandler > >> + IRQ I2S_IRQHandler > >> + > >> + .end > >> diff --git a/hw/mcu/nordic/nrf52xxx/src/arch/cortex_m4/gcc_startup_ > nrf52_split.s > >> b/hw/mcu/nordic/nrf52xxx/src/arch/cortex_m4/gcc_startup_nrf52_split.s > >> new file mode 100755 > >> index 0000000..7426848 > >> --- /dev/null > >> +++ b/hw/mcu/nordic/nrf52xxx/src/arch/cortex_m4/gcc_startup_ > nrf52_split.s > >> @@ -0,0 +1,150 @@ > >> +/* > >> +Copyright (c) 2015, Nordic Semiconductor ASA > >> +All rights reserved. > >> + > >> +Redistribution and use in source and binary forms, with or without > >> +modification, are permitted provided that the following conditions are > >> met: > >> + > >> +* Redistributions of source code must retain the above copyright > notice, > >> this > >> + list of conditions and the following disclaimer. > >> + > >> +* Redistributions in binary form must reproduce the above copyright > >> notice, > >> + this list of conditions and the following disclaimer in the > >> documentation > >> + and/or other materials provided with the distribution. > >> + > >> +* Neither the name of Nordic Semiconductor ASA nor the names of its > >> + contributors may be used to endorse or promote products derived from > >> + this software without specific prior written permission. > >> + > >> +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > >> IS" > >> +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > >> +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > >> PURPOSE ARE > >> +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > >> LIABLE > >> +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > >> +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE > GOODS OR > >> +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > HOWEVER > >> +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > >> LIABILITY, > >> +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE > >> USE > >> +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > >> +*/ > >> + > >> +/* > >> +NOTE: Template files (including this one) are application specific and > >> therefore > >> +expected to be copied into the application project folder prior to its > >> use! > >> +*/ > >> + > >> + .syntax unified > >> + .arch armv7-m > >> + .section .stack > >> + .align 3 > >> + .equ Stack_Size, 432 > >> + .globl __StackTop > >> + .globl __StackLimit > >> +__StackLimit: > >> + .space Stack_Size > >> + .size __StackLimit, . - __StackLimit > >> +__StackTop: > >> + .size __StackTop, . - __StackTop > >> + > >> + .section .heap > >> + .align 3 > >> +#ifdef __HEAP_SIZE > >> + .equ Heap_Size, __HEAP_SIZE > >> +#else > >> + .equ Heap_Size, 0 > >> +#endif > >> + .globl __HeapBase > >> + .globl __HeapLimit > >> +__HeapBase: > >> + .if Heap_Size > >> + .space Heap_Size > >> + .endif > >> + .size __HeapBase, . - __HeapBase > >> +__HeapLimit: > >> + .size __HeapLimit, . - __HeapLimit > >> + > >> + .section .isr_vector_split > >> + .align 2 > >> + .globl __isr_vector_split > >> +__isr_vector_split: > >> + .long __StackTop /* Top of Stack */ > >> + .long Reset_Handler_split /* Reset Handler */ > >> + > >> + .size __isr_vector_split, . - __isr_vector_split > >> + > >> +/* Reset Handler */ > >> + > >> + .text > >> + .thumb > >> + .thumb_func > >> + .align 1 > >> + .globl Reset_Handler_split > >> + .type Reset_Handler_split, %function > >> +Reset_Handler_split: > >> + .fnstart > >> + > >> + > >> +/* 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. > >> + * __etext: End of code section, i.e., begin of data sections to > >> copy from. > >> + * __data_start__/__data_end__: RAM address range that data > should be > >> + * copied to. Both must be aligned to 4 bytes boundary. */ > >> + > >> + ldr r1, =__etext > >> + ldr r2, =__data_start__ > >> + ldr r3, =__data_end__ > >> + > >> + subs r3, r2 > >> + ble .LC0 > >> + > >> +.LC1: > >> + subs r3, 4 > >> + ldr r0, [r1,r3] > >> + str r0, [r2,r3] > >> + bgt .LC1 > >> + > >> +.LC0: > >> + ldr r1, =__etext_loader > >> + ldr r2, =__data_start___loader > >> + ldr r3, =__data_end___loader > >> + > >> + subs r3, r2 > >> + ble .LC2 > >> + > >> +.LC3: > >> + subs r3, 4 > >> + ldr r0, [r1,r3] > >> + str r0, [r2,r3] > >> + bgt .LC3 > >> +.LC2: > >> + > >> + subs r0, r0 > >> + ldr r2, =__bss_start___loader > >> + ldr r3, =__bss_end___loader > >> + > >> + subs r3, r2 > >> + ble .LC4 > >> + > >> +.LC5: > >> + subs r3, 4 > >> + str r0, [r2,r3] > >> + bgt .LC5 > >> +.LC4: > >> + > >> + LDR R0, =__HeapBase > >> + LDR R1, =__HeapLimit > >> + BL _sbrkInit > >> + > >> + LDR R0, =SystemInit > >> + BLX R0 > >> + LDR R0, =_start > >> + BX R0 > >> + > >> + .pool > >> + .cantunwind > >> + .fnend > >> + .size Reset_Handler_split,.-Reset_Handler_split > >> + > >> + .section ".text" > >> + .end > >> diff --git a/hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52.s > >> b/hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52.s > >> deleted file mode 100755 > >> index fb804fd..0000000 > >> --- a/hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52.s > >> +++ /dev/null > >> @@ -1,289 +0,0 @@ > >> -/* > >> -Copyright (c) 2015, Nordic Semiconductor ASA > >> -All rights reserved. > >> - > >> -Redistribution and use in source and binary forms, with or without > >> -modification, are permitted provided that the following conditions are > >> met: > >> - > >> -* Redistributions of source code must retain the above copyright > notice, > >> this > >> - list of conditions and the following disclaimer. > >> - > >> -* Redistributions in binary form must reproduce the above copyright > >> notice, > >> - this list of conditions and the following disclaimer in the > >> documentation > >> - and/or other materials provided with the distribution. > >> - > >> -* Neither the name of Nordic Semiconductor ASA nor the names of its > >> - contributors may be used to endorse or promote products derived from > >> - this software without specific prior written permission. > >> - > >> -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > >> IS" > >> -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > >> -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > >> PURPOSE ARE > >> -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > >> LIABLE > >> -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > >> -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE > GOODS OR > >> -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > HOWEVER > >> -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > >> LIABILITY, > >> -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE > >> USE > >> -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > >> -*/ > >> - > >> -/* > >> -NOTE: Template files (including this one) are application specific and > >> therefore > >> -expected to be copied into the application project folder prior to its > >> use! > >> -*/ > >> - > >> - .syntax unified > >> - .arch armv7-m > >> - > >> - .section .stack > >> - .align 3 > >> - .equ Stack_Size, 432 > >> - .globl __StackTop > >> - .globl __StackLimit > >> -__StackLimit: > >> - .space Stack_Size > >> - .size __StackLimit, . - __StackLimit > >> -__StackTop: > >> - .size __StackTop, . - __StackTop > >> - > >> - .section .heap > >> - .align 3 > >> -#ifdef __HEAP_SIZE > >> - .equ Heap_Size, __HEAP_SIZE > >> -#else > >> - .equ Heap_Size, 0 > >> -#endif > >> - .globl __HeapBase > >> - .globl __HeapLimit > >> -__HeapBase: > >> - .if Heap_Size > >> - .space Heap_Size > >> - .endif > >> - .size __HeapBase, . - __HeapBase > >> -__HeapLimit: > >> - .size __HeapLimit, . - __HeapLimit > >> - > >> - .section .isr_vector > >> - .align 2 > >> - .globl __isr_vector > >> -__isr_vector: > >> - .long __StackTop /* Top of Stack */ > >> - .long Reset_Handler /* Reset Handler */ > >> - .long NMI_Handler /* NMI Handler */ > >> - .long HardFault_Handler /* Hard Fault Handler */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long SVC_Handler /* SVCall Handler */ > >> - .long 0 /* Reserved */ > >> - .long 0 /* Reserved */ > >> - .long PendSV_Handler /* PendSV Handler */ > >> - .long SysTick_Handler /* SysTick Handler */ > >> - > >> - /* External Interrupts */ > >> - .long POWER_CLOCK_IRQHandler > >> - .long RADIO_IRQHandler > >> - .long UARTE0_UART0_IRQHandler > >> - .long SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler > >> - .long SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler > >> - .long NFCT_IRQHandler > >> - .long GPIOTE_IRQHandler > >> - .long SAADC_IRQHandler > >> - .long TIMER0_IRQHandler > >> - .long TIMER1_IRQHandler > >> - .long TIMER2_IRQHandler > >> - .long RTC0_IRQHandler > >> - .long TEMP_IRQHandler > >> - .long RNG_IRQHandler > >> - .long ECB_IRQHandler > >> - .long CCM_AAR_IRQHandler > >> - .long WDT_IRQHandler > >> - .long RTC1_IRQHandler > >> - .long QDEC_IRQHandler > >> - .long COMP_LPCOMP_IRQHandler > >> - .long SWI0_EGU0_IRQHandler > >> - .long SWI1_EGU1_IRQHandler > >> - .long SWI2_EGU2_IRQHandler > >> - .long SWI3_EGU3_IRQHandler > >> - .long SWI4_EGU4_IRQHandler > >> - .long SWI5_EGU5_IRQHandler > >> - .long TIMER3_IRQHandler > >> - .long TIMER4_IRQHandler > >> - .long PWM0_IRQHandler > >> - .long PDM_IRQHandler > >> - .long 0 /*Reserved */ > >> - .long 0 /*Reserved */ > >> - .long MWU_IRQHandler > >> - .long PWM1_IRQHandler > >> - .long PWM2_IRQHandler > >> - .long SPIM2_SPIS2_SPI2_IRQHandler > >> - .long RTC2_IRQHandler > >> - .long I2S_IRQHandler > >> - > >> - .size __isr_vector, . - __isr_vector > >> - > >> -/* Reset Handler */ > >> - > >> - .text > >> - .thumb > >> - .thumb_func > >> - .align 1 > >> - .globl Reset_Handler > >> - .type Reset_Handler, %function > >> -Reset_Handler: > >> - .fnstart > >> - > >> -/* 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. > >> - * __etext: End of code section, i.e., begin of data sections to > >> copy from. > >> - * __data_start__/__data_end__: RAM address range that data > should be > >> - * copied to. Both must be aligned to 4 bytes boundary. */ > >> - > >> - ldr r1, =__etext > >> - ldr r2, =__data_start__ > >> - ldr r3, =__data_end__ > >> - > >> - subs r3, r2 > >> - ble .LC0 > >> - > >> -.LC1: > >> - subs r3, 4 > >> - ldr r0, [r1,r3] > >> - str r0, [r2,r3] > >> - bgt .LC1 > >> - > >> -.LC0: > >> - > >> - LDR R0, =__HeapBase > >> - LDR R1, =__HeapLimit > >> - BL _sbrkInit > >> - > >> - LDR R0, =SystemInit > >> - BLX R0 > >> - > >> - LDR R0, =_start > >> - BX R0 > >> - > >> - .pool > >> - .cantunwind > >> - .fnend > >> - .size Reset_Handler,.-Reset_Handler > >> - > >> - .section ".text" > >> - > >> - > >> -/* Dummy Exception Handlers (infinite loops which can be modified) */ > >> - > >> - .weak NMI_Handler > >> - .type NMI_Handler, %function > >> -NMI_Handler: > >> - B . > >> - .size NMI_Handler, . - NMI_Handler > >> - > >> - > >> - .weak HardFault_Handler > >> - .type HardFault_Handler, %function > >> -HardFault_Handler: > >> - B . > >> - .size HardFault_Handler, . - HardFault_Handler > >> - > >> - > >> - .weak MemoryManagement_Handler > >> - .type MemoryManagement_Handler, %function > >> -MemoryManagement_Handler: > >> - B . > >> - .size MemoryManagement_Handler, . - MemoryManagement_Handler > >> - > >> - > >> - .weak BusFault_Handler > >> - .type BusFault_Handler, %function > >> -BusFault_Handler: > >> - B . > >> - .size BusFault_Handler, . - BusFault_Handler > >> - > >> - > >> - .weak UsageFault_Handler > >> - .type UsageFault_Handler, %function > >> -UsageFault_Handler: > >> - B . > >> - .size UsageFault_Handler, . - UsageFault_Handler > >> - > >> - > >> - .weak SVC_Handler > >> - .type SVC_Handler, %function > >> -SVC_Handler: > >> - B . > >> - .size SVC_Handler, . - SVC_Handler > >> - > >> - > >> - .weak PendSV_Handler > >> - .type PendSV_Handler, %function > >> -PendSV_Handler: > >> - B . > >> - .size PendSV_Handler, . - PendSV_Handler > >> - > >> - > >> - .weak SysTick_Handler > >> - .type SysTick_Handler, %function > >> -SysTick_Handler: > >> - B . > >> - .size SysTick_Handler, . - SysTick_Handler > >> - > >> - > >> -/* IRQ Handlers */ > >> - > >> - .globl Default_Handler > >> - .type Default_Handler, %function > >> -Default_Handler: > >> - B . > >> - .size Default_Handler, . - Default_Handler > >> - > >> - .macro IRQ handler > >> - .weak \handler > >> - .set \handler, Default_Handler > >> - .endm > >> - > >> - IRQ POWER_CLOCK_IRQHandler > >> - IRQ RADIO_IRQHandler > >> - IRQ UARTE0_UART0_IRQHandler > >> - IRQ SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler > >> - IRQ SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler > >> - IRQ NFCT_IRQHandler > >> - IRQ GPIOTE_IRQHandler > >> - IRQ SAADC_IRQHandler > >> - IRQ TIMER0_IRQHandler > >> - IRQ TIMER1_IRQHandler > >> - IRQ TIMER2_IRQHandler > >> - IRQ RTC0_IRQHandler > >> - IRQ TEMP_IRQHandler > >> - IRQ RNG_IRQHandler > >> - IRQ ECB_IRQHandler > >> - IRQ CCM_AAR_IRQHandler > >> - IRQ WDT_IRQHandler > >> - IRQ RTC1_IRQHandler > >> - IRQ QDEC_IRQHandler > >> - IRQ COMP_LPCOMP_IRQHandler > >> - IRQ SWI0_EGU0_IRQHandler > >> - IRQ SWI1_EGU1_IRQHandler > >> - IRQ SWI2_EGU2_IRQHandler > >> - IRQ SWI3_EGU3_IRQHandler > >> - IRQ SWI4_EGU4_IRQHandler > >> - IRQ SWI5_EGU5_IRQHandler > >> - IRQ TIMER3_IRQHandler > >> - IRQ TIMER4_IRQHandler > >> - IRQ PWM0_IRQHandler > >> - IRQ PDM_IRQHandler > >> - IRQ MWU_IRQHandler > >> - IRQ PWM1_IRQHandler > >> - IRQ PWM2_IRQHandler > >> - IRQ SPIM2_SPIS2_SPI2_IRQHandler > >> - IRQ RTC2_IRQHandler > >> - IRQ I2S_IRQHandler > >> - > >> - .end > >> diff --git a/hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52_split.s > >> b/hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52_split.s > >> deleted file mode 100755 > >> index 7426848..0000000 > >> --- a/hw/mcu/nordic/nrf52xxx/src/gcc_startup_nrf52_split.s > >> +++ /dev/null > >> @@ -1,150 +0,0 @@ > >> -/* > >> -Copyright (c) 2015, Nordic Semiconductor ASA > >> -All rights reserved. > >> - > >> -Redistribution and use in source and binary forms, with or without > >> -modification, are permitted provided that the following conditions are > >> met: > >> - > >> -* Redistributions of source code must retain the above copyright > notice, > >> this > >> - list of conditions and the following disclaimer. > >> - > >> -* Redistributions in binary form must reproduce the above copyright > >> notice, > >> - this list of conditions and the following disclaimer in the > >> documentation > >> - and/or other materials provided with the distribution. > >> - > >> -* Neither the name of Nordic Semiconductor ASA nor the names of its > >> - contributors may be used to endorse or promote products derived from > >> - this software without specific prior written permission. > >> - > >> -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > >> IS" > >> -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > >> -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > >> PURPOSE ARE > >> -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE > >> LIABLE > >> -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > >> -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE > GOODS OR > >> -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > HOWEVER > >> -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > >> LIABILITY, > >> -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF > THE > >> USE > >> -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > >> -*/ > >> - > >> -/* > >> -NOTE: Template files (including this one) are application specific and > >> therefore > >> -expected to be copied into the application project folder prior to its > >> use! > >> -*/ > >> - > >> - .syntax unified > >> - .arch armv7-m > >> - .section .stack > >> - .align 3 > >> - .equ Stack_Size, 432 > >> - .globl __StackTop > >> - .globl __StackLimit > >> -__StackLimit: > >> - .space Stack_Size > >> - .size __StackLimit, . - __StackLimit > >> -__StackTop: > >> - .size __StackTop, . - __StackTop > >> - > >> - .section .heap > >> - .align 3 > >> -#ifdef __HEAP_SIZE > >> - .equ Heap_Size, __HEAP_SIZE > >> -#else > >> - .equ Heap_Size, 0 > >> -#endif > >> - .globl __HeapBase > >> - .globl __HeapLimit > >> -__HeapBase: > >> - .if Heap_Size > >> - .space Heap_Size > >> - .endif > >> - .size __HeapBase, . - __HeapBase > >> -__HeapLimit: > >> - .size __HeapLimit, . - __HeapLimit > >> - > >> - .section .isr_vector_split > >> - .align 2 > >> - .globl __isr_vector_split > >> -__isr_vector_split: > >> - .long __StackTop /* Top of Stack */ > >> - .long Reset_Handler_split /* Reset Handler */ > >> - > >> - .size __isr_vector_split, . - __isr_vector_split > >> - > >> -/* Reset Handler */ > >> - > >> - .text > >> - .thumb > >> - .thumb_func > >> - .align 1 > >> - .globl Reset_Handler_split > >> - .type Reset_Handler_split, %function > >> -Reset_Handler_split: > >> - .fnstart > >> - > >> - > >> -/* 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. > >> - * __etext: End of code section, i.e., begin of data sections to > >> copy from. > >> - * __data_start__/__data_end__: RAM address range that data > should be > >> - * copied to. Both must be aligned to 4 bytes boundary. */ > >> - > >> - ldr r1, =__etext > >> - ldr r2, =__data_start__ > >> - ldr r3, =__data_end__ > >> - > >> - subs r3, r2 > >> - ble .LC0 > >> - > >> -.LC1: > >> - subs r3, 4 > >> - ldr r0, [r1,r3] > >> - str r0, [r2,r3] > >> - bgt .LC1 > >> - > >> -.LC0: > >> - ldr r1, =__etext_loader > >> - ldr r2, =__data_start___loader > >> - ldr r3, =__data_end___loader > >> - > >> - subs r3, r2 > >> - ble .LC2 > >> - > >> -.LC3: > >> - subs r3, 4 > >> - ldr r0, [r1,r3] > >> - str r0, [r2,r3] > >> - bgt .LC3 > >> -.LC2: > >> - > >> - subs r0, r0 > >> - ldr r2, =__bss_start___loader > >> - ldr r3, =__bss_end___loader > >> - > >> - subs r3, r2 > >> - ble .LC4 > >> - > >> -.LC5: > >> - subs r3, 4 > >> - str r0, [r2,r3] > >> - bgt .LC5 > >> -.LC4: > >> - > >> - LDR R0, =__HeapBase > >> - LDR R1, =__HeapLimit > >> - BL _sbrkInit > >> - > >> - LDR R0, =SystemInit > >> - BLX R0 > >> - LDR R0, =_start > >> - BX R0 > >> - > >> - .pool > >> - .cantunwind > >> - .fnend > >> - .size Reset_Handler_split,.-Reset_Handler_split > >> - > >> - .section ".text" > >> - .end > >> -- > >> 2.7.4 > >> > >> > >
