1.section .stack, "aw" 2.stack_size = 0x200 3.stack_space: .space .stack_size 4 5.section .heap, "aw" 6.heap_size = 0x200 7.heap_space: .space .heap_size 8 9.section .vectors, "a" 10.global __Vectors 11.global __Vectors_End 12.global __Vectors_Size 13 14.type __Vectors, %function 15__Vectors: 16 .word .stack_space + .stack_size // Stack Pointer 17 .word Reset_Handler // Reset 18 .word NMI_Handler // NMI 19 .word HardFault_Handler // Hard Fault 20 .word 0 // Reserved 21 .word 0 // Reserved 22 .word 0 // Reserved 23 .word 0 // Reserved 24 .word 0 // Reserved 25 .word 0 // Reserved 26 .word 0 // Reserved 27 .word SVC_Handler // SVCall 28 .word 0 // Reserved 29 .word 0 // Reserved 30 .word PendSV_Handler // PendSV 31 .word SysTick_Handler // SysTick 32 33 // 中断处理函数 34 .word IRQ000_Handler 35 .word IRQ001_Handler 36 .word IRQ002_Handler 37 .word IRQ003_Handler 38 .word IRQ004_Handler 39 .word IRQ005_Handler 40 .word IRQ006_Handler 41 .word IRQ007_Handler 42 .word IRQ008_Handler 43 .word IRQ009_Handler 44 .word IRQ010_Handler 45 .word IRQ011_Handler 46 .word IRQ012_Handler 47 .word IRQ013_Handler 48 .word IRQ014_Handler 49 .word IRQ015_Handler 50 .word IRQ016_Handler 51 .word IRQ017_Handler 52 .word IRQ018_Handler 53 .word IRQ019_Handler 54 .word IRQ020_Handler 55 .word IRQ021_Handler 56 .word IRQ022_Handler 57 .word IRQ023_Handler 58 .word IRQ024_Handler 59 .word IRQ025_Handler 60 .word IRQ026_Handler 61 .word IRQ027_Handler 62 .word IRQ028_Handler 63 .word IRQ029_Handler 64 .word IRQ030_Handler 65 .word IRQ031_Handler 66 67.global __Vectors_End 68__Vectors_End: 69.global __Vectors_Size 70__Vectors_Size = __Vectors_End - __Vectors 71 72.section .text 73.global Reset_Handler 74.type Reset_Handler, %function 75Reset_Handler: 76 // 重置处理 77 ldr r0, =0xE000ED08 78 ldr r1, =.stack_space 79 str r1, [r0] // 设置堆栈指针 80 81 bl SystemInit // 调用系统初始化 82 bl entry // 调用主函数 83 b . // 无限循环 84 85// 异常处理程序 86.type NMI_Handler, %function 87NMI_Handler: 88 b . 89 90.type HardFault_Handler, %function 91HardFault_Handler: 92 b . 93 94.type SVC_Handler, %function 95SVC_Handler: 96 b . 97 98.type PendSV_Handler, %function 99PendSV_Handler: 100 b . 101 102.type SysTick_Handler, %function 103SysTick_Handler: 104 b . 105 106.type Default_Handler, %function 107Default_Handler: 108 b . 109 110// 中断处理函数的默认实现 111.weak IRQ000_Handler 112.thumb_set IRQ000_Handler, Default_Handler 113 114.weak IRQ001_Handler 115.thumb_set IRQ001_Handler, Default_Handler 116 117.weak IRQ002_Handler 118.thumb_set IRQ002_Handler, Default_Handler 119 120.weak IRQ003_Handler 121.thumb_set IRQ003_Handler, Default_Handler 122 123.weak IRQ004_Handler 124.thumb_set IRQ004_Handler, Default_Handler 125 126.weak IRQ005_Handler 127.thumb_set IRQ005_Handler, Default_Handler 128 129.weak IRQ006_Handler 130.thumb_set IRQ006_Handler, Default_Handler 131 132.weak IRQ007_Handler 133.thumb_set IRQ007_Handler, Default_Handler 134 135.weak IRQ008_Handler 136.thumb_set IRQ008_Handler, Default_Handler 137 138.weak IRQ009_Handler 139.thumb_set IRQ009_Handler, Default_Handler 140 141.weak IRQ010_Handler 142.thumb_set IRQ010_Handler, Default_Handler 143 144.weak IRQ011_Handler 145.thumb_set IRQ011_Handler, Default_Handler 146 147.weak IRQ012_Handler 148.thumb_set IRQ012_Handler, Default_Handler 149 150.weak IRQ013_Handler 151.thumb_set IRQ013_Handler, Default_Handler 152 153.weak IRQ014_Handler 154.thumb_set IRQ014_Handler, Default_Handler 155 156.weak IRQ015_Handler 157.thumb_set IRQ015_Handler, Default_Handler 158 159.weak IRQ016_Handler 160.thumb_set IRQ016_Handler, Default_Handler 161 162.weak IRQ017_Handler 163.thumb_set IRQ017_Handler, Default_Handler 164 165.weak IRQ018_Handler 166.thumb_set IRQ018_Handler, Default_Handler 167 168.weak IRQ019_Handler 169.thumb_set IRQ019_Handler, Default_Handler 170 171.weak IRQ020_Handler 172.thumb_set IRQ020_Handler, Default_Handler 173 174.weak IRQ021_Handler 175.thumb_set IRQ021_Handler, Default_Handler 176 177.weak IRQ022_Handler 178.thumb_set IRQ022_Handler, Default_Handler 179 180.weak IRQ023_Handler 181.thumb_set IRQ023_Handler, Default_Handler 182 183.weak IRQ024_Handler 184.thumb_set IRQ024_Handler, Default_Handler 185 186.weak IRQ025_Handler 187.thumb_set IRQ025_Handler, Default_Handler 188 189.weak IRQ026_Handler 190.thumb_set IRQ026_Handler, Default_Handler 191 192.weak IRQ027_Handler 193.thumb_set IRQ027_Handler, Default_Handler 194 195.weak IRQ028_Handler 196.thumb_set IRQ028_Handler, Default_Handler 197 198.weak IRQ029_Handler 199.thumb_set IRQ029_Handler, Default_Handler 200 201.weak IRQ030_Handler 202.thumb_set IRQ030_Handler, Default_Handler 203 204.weak IRQ031_Handler 205.thumb_set IRQ031_Handler, Default_Handler 206 207.end 208