123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- .syntax unified
- .arch armv7e-m
- #ifdef __STARTUP_CONFIG
- #include "startup_config.h"
- #ifndef __STARTUP_CONFIG_STACK_ALIGNEMENT
- #define __STARTUP_CONFIG_STACK_ALIGNEMENT 3
- #endif
- #endif
- .section .stack
- #if defined(__STARTUP_CONFIG)
- .align __STARTUP_CONFIG_STACK_ALIGNEMENT
- .equ Stack_Size, __STARTUP_CONFIG_STACK_SIZE
- #elif defined(__STACK_SIZE)
- .align 3
- .equ Stack_Size, __STACK_SIZE
- #else
- .align 3
- .equ Stack_Size, 2048
- #endif
- .globl __StackTop
- .globl __StackLimit
- __StackLimit:
- .space Stack_Size
- .size __StackLimit, . - __StackLimit
- __StackTop:
- .size __StackTop, . - __StackTop
- .section .heap
- .align 3
- #if defined(__STARTUP_CONFIG)
- .equ Heap_Size, __STARTUP_CONFIG_HEAP_SIZE
- #elif defined(__HEAP_SIZE)
- .equ Heap_Size, __HEAP_SIZE
- #else
- .equ Heap_Size, 2048
- #endif
- .globl __HeapBase
- .globl __HeapLimit
- __HeapBase:
- .if Heap_Size
- .space Heap_Size
- .endif
- .size __HeapBase, . - __HeapBase
- __HeapLimit:
- .size __HeapLimit, . - __HeapLimit
- .section .isr_vector, "ax"
- .align 2
- .globl __isr_vector
- __isr_vector:
- .long __StackTop
- .long Reset_Handler
- .long NMI_Handler
- .long HardFault_Handler
- .long MemoryManagement_Handler
- .long BusFault_Handler
- .long UsageFault_Handler
- .long 0
- .long 0
- .long 0
- .long 0
- .long SVC_Handler
- .long DebugMon_Handler
- .long 0
- .long PendSV_Handler
- .long SysTick_Handler
-
- .long POWER_CLOCK_IRQHandler
- .long RADIO_IRQHandler
- .long UARTE0_UART0_IRQHandler
- .long TWIM0_TWIS0_TWI0_SPIM1_SPIS1_SPI1_IRQHandler
- .long SPIM0_SPIS0_SPI0_IRQHandler
- .long 0
- .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_IRQHandler
- .long SWI0_EGU0_IRQHandler
- .long SWI1_EGU1_IRQHandler
- .long SWI2_IRQHandler
- .long SWI3_IRQHandler
- .long SWI4_IRQHandler
- .long SWI5_IRQHandler
- .long 0
- .long 0
- .long PWM0_IRQHandler
- .long PDM_IRQHandler
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .size __isr_vector, . - __isr_vector
- .text
- .thumb
- .thumb_func
- .align 1
- .globl Reset_Handler
- .type Reset_Handler, %function
- Reset_Handler:
- #ifndef __STARTUP_SKIP_ETEXT
- ldr r1, =__etext
- ldr r2, =__data_start__
- ldr r3, =__bss_start__
- subs r3, r3, r2
- ble .L_loop1_done
- .L_loop1:
- subs r3, r3, #4
- ldr r0, [r1,r3]
- str r0, [r2,r3]
- bgt .L_loop1
- .L_loop1_done:
- #endif
- #ifdef __STARTUP_CLEAR_BSS
- ldr r1, =__bss_start__
- ldr r2, =__bss_end__
- movs r0, 0
- subs r2, r2, r1
- ble .L_loop3_done
- .L_loop3:
- subs r2, r2, #4
- str r0, [r1, r2]
- bgt .L_loop3
- .L_loop3_done:
- #endif
- bl SystemInit
- #ifndef __START
- #define __START _start
- #endif
- bl __START
- .pool
- .size Reset_Handler,.-Reset_Handler
- .section ".text"
- .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 DebugMon_Handler
- .type DebugMon_Handler, %function
- DebugMon_Handler:
- b .
- .size DebugMon_Handler, . - DebugMon_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
- .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 TWIM0_TWIS0_TWI0_SPIM1_SPIS1_SPI1_IRQHandler
- IRQ SPIM0_SPIS0_SPI0_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_IRQHandler
- IRQ SWI0_EGU0_IRQHandler
- IRQ SWI1_EGU1_IRQHandler
- IRQ SWI2_IRQHandler
- IRQ SWI3_IRQHandler
- IRQ SWI4_IRQHandler
- IRQ SWI5_IRQHandler
- IRQ PWM0_IRQHandler
- IRQ PDM_IRQHandler
- .end
|