Yes Lukasz, I know it does not appear when you build only when you try to run it.
We will merge the pull request and all should be good. Will > On Nov 7, 2016, at 7:43 AM, Łukasz Rymanowski <[email protected]> > wrote: > > 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 >>>> >>>> >> >>
