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 > >
