1;/**************************************************************************//** 2; * @file startup_ARMCM0.s 3; * @brief CMSIS Cortex-M0 Core Device Startup File 4; * for CM0 Device Series 5; * @version V1.04 6; * @date 14. January 2011 7; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------ 8; * 9; ******************************************************************************/ 10 11 12; <h> Stack Configuration 13; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> 14; </h> 15 16Stack_Size EQU 0x00000400 17 18 AREA STACK, NOINIT, READWRITE, ALIGN=3 19Stack_Mem SPACE Stack_Size 20__initial_sp 21 22 23; <h> Heap Configuration 24; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> 25; </h> 26 27Heap_Size EQU 0x00000000 28 29 AREA HEAP, NOINIT, READWRITE, ALIGN=3 30__heap_base 31Heap_Mem SPACE Heap_Size 32__heap_limit 33 34 35 PRESERVE8 36 THUMB 37 38 39; Vector Table Mapped to Address 0 at Reset 40 41 AREA RESET, DATA, READONLY 42 EXPORT __Vectors 43 EXPORT __Vectors_End 44 EXPORT __Vectors_Size 45 46__Vectors DCD __initial_sp ; Top of Stack 47 DCD Reset_Handler ; Reset Handler 48 DCD NMI_Handler ; NMI Handler 49 DCD HardFault_Handler ; Hard Fault Handler 50 DCD 0 ; Reserved 51 DCD 0 ; Reserved 52 DCD 0 ; Reserved 53 DCD 0 ; Reserved 54 DCD 0 ; Reserved 55 DCD 0 ; Reserved 56 DCD 0 ; Reserved 57 DCD SVC_Handler ; SVCall Handler 58 DCD 0 ; Reserved 59 DCD 0 ; Reserved 60 DCD PendSV_Handler ; PendSV Handler 61 DCD SysTick_Handler ; SysTick Handler 62 63 ; External Interrupts 64 DCD DEF_IRQHandler ; 0: Default 65__Vectors_End 66 67__Vectors_Size EQU __Vectors_End - __Vectors 68 69 AREA |.text|, CODE, READONLY 70 71 72; Reset Handler 73 74Reset_Handler PROC 75 EXPORT Reset_Handler [WEAK] 76 IMPORT SystemInit 77 IMPORT __main 78 LDR R0, =SystemInit 79 BLX R0 80 LDR R0, =__main 81 BX R0 82 ENDP 83 84 85; Dummy Exception Handlers (infinite loops which can be modified) 86 87NMI_Handler PROC 88 EXPORT NMI_Handler [WEAK] 89 B . 90 ENDP 91HardFault_Handler\ 92 PROC 93 EXPORT HardFault_Handler [WEAK] 94 B . 95 ENDP 96SVC_Handler PROC 97 EXPORT SVC_Handler [WEAK] 98 B . 99 ENDP 100PendSV_Handler PROC 101 EXPORT PendSV_Handler [WEAK] 102 B . 103 ENDP 104SysTick_Handler PROC 105 EXPORT SysTick_Handler [WEAK] 106 B . 107 ENDP 108 109Default_Handler PROC 110 EXPORT DEF_IRQHandler [WEAK] 111DEF_IRQHandler 112 B . 113 ENDP 114 115 116 ALIGN 117 118 119; User Initial Stack & Heap 120 121 IF :DEF:__MICROLIB 122 123 EXPORT __initial_sp 124 EXPORT __heap_base 125 EXPORT __heap_limit 126 127 ELSE 128 129 IMPORT __use_two_region_memory 130 EXPORT __user_initial_stackheap 131__user_initial_stackheap 132 133 LDR R0, = Heap_Mem 134 LDR R1, =(Stack_Mem + Stack_Size) 135 LDR R2, = (Heap_Mem + Heap_Size) 136 LDR R3, = Stack_Mem 137 BX LR 138 139 ALIGN 140 141 ENDIF 142 143 144 END 145