1 2 .syntax unified 3 .cpu cortex-m4 4 .fpu softvfp 5 .thumb 6 7.global g_pfnVectors 8.global Default_Handler 9 10/* start address for the initialization values of the .data section. 11defined in linker script */ 12.word _sidata 13/* start address for the .data section. defined in linker script */ 14.word _sdata 15/* end address for the .data section. defined in linker script */ 16.word _edata 17/* start address for the .bss section. defined in linker script */ 18.word _sbss 19/* end address for the .bss section. defined in linker script */ 20.word _ebss 21/* stack used for SystemInit_ExtMemCtl; always internal RAM used */ 22 23/** 24 * @brief This is the code that gets called when the processor first 25 * starts execution following a reset event. Only the absolutely 26 * necessary set is performed, after which the application 27 * supplied main() routine is called. 28 * @param None 29 * @retval : None 30*/ 31 32 .section .text.Reset_Handler 33 .weak Reset_Handler 34 .type Reset_Handler, %function 35Reset_Handler: 36 ldr sp, =_estack /* set stack pointer */ 37 38/* Copy the data segment initializers from flash to SRAM */ 39 movs r1, #0 40 b LoopCopyDataInit 41 42CopyDataInit: 43 ldr r3, =_sidata 44 ldr r3, [r3, r1] 45 str r3, [r0, r1] 46 adds r1, r1, #4 47 48LoopCopyDataInit: 49 ldr r0, =_sdata 50 ldr r3, =_edata 51 adds r2, r0, r1 52 cmp r2, r3 53 bcc CopyDataInit 54 ldr r2, =_sbss 55 b LoopFillZerobss 56/* Zero fill the bss segment. */ 57FillZerobss: 58 movs r3, #0 59 str r3, [r2], #4 60 61LoopFillZerobss: 62 ldr r3, = _ebss 63 cmp r2, r3 64 bcc FillZerobss 65/* Call the application's entry point.*/ 66 bl entry 67 bx lr 68.size Reset_Handler, .-Reset_Handler 69 70/** 71 * @brief This is the code that gets called when the processor receives an 72 * unexpected interrupt. This simply enters an infinite loop, preserving 73 * the system state for examination by a debugger. 74 * @param None 75 * @retval None 76*/ 77 .section .text.Default_Handler,"ax",%progbits 78Default_Handler: 79Infinite_Loop: 80 b Infinite_Loop 81 .size Default_Handler, .-Default_Handler 82/****************************************************************************** 83* 84* The minimal vector table for a Cortex M3. Note that the proper constructs 85* must be placed on this to ensure that it ends up at physical address 86* 0x0000.0000. 87* 88*******************************************************************************/ 89 .section .isr_vector,"a",%progbits 90 .type g_pfnVectors, %object 91 .size g_pfnVectors, .-g_pfnVectors 92 93g_pfnVectors: 94 .word _estack 95 .word Reset_Handler 96 .word NMI_Handler 97 .word HardFault_Handler 98 .word MemManage_Handler 99 .word BusFault_Handler 100 .word UsageFault_Handler 101 .word 0 102 .word 0 103 .word 0 104 .word 0 105 .word SVC_Handler 106 .word DebugMon_Handler 107 .word 0 108 .word PendSV_Handler 109 .word SysTick_Handler 110 111 /* External Interrupts */ 112 .word GPIOA0_Handler 113 .word GPIOA1_Handler 114 .word GPIOA2_Handler 115 .word GPIOA3_Handler 116 .word GPIOA4_Handler 117 .word GPIOA5_Handler 118 .word GPIOA6_Handler 119 .word GPIOA7_Handler 120 .word GPIOB0_Handler 121 .word GPIOB1_Handler 122 .word GPIOB2_Handler 123 .word GPIOB3_Handler 124 .word GPIOB4_Handler 125 .word GPIOB5_Handler 126 .word GPIOB6_Handler 127 .word GPIOB7_Handler 128 .word GPIOC0_Handler 129 .word GPIOC1_Handler 130 .word GPIOC2_Handler 131 .word GPIOC3_Handler 132 .word GPIOC4_Handler 133 .word GPIOC5_Handler 134 .word GPIOC6_Handler 135 .word GPIOC7_Handler 136 .word GPIOM0_Handler 137 .word GPIOM1_Handler 138 .word GPIOM2_Handler 139 .word GPIOM3_Handler 140 .word GPIOM4_Handler 141 .word GPIOM5_Handler 142 .word GPIOM6_Handler 143 .word GPIOM7_Handler 144 .word DMA_Handler 145 .word LCD_Handler 146 .word NORFLC_Handler 147 .word CAN_Handler 148 .word PULSE_Handler 149 .word WDT_Handler 150 .word PWM_Handler 151 .word UART0_Handler 152 .word UART1_Handler 153 .word UART2_Handler 154 .word UART3_Handler 155 .word 0 156 .word I2C0_Handler 157 .word I2C1_Handler 158 .word SPI0_Handler 159 .word ADC0_Handler 160 .word RTC_Handler 161 .word ANAC_Handler 162 .word SDIO_Handler 163 .word GPIOA_Handler 164 .word GPIOB_Handler 165 .word GPIOC_Handler 166 .word GPIOM_Handler 167 .word GPION_Handler 168 .word GPIOP_Handler 169 .word ADC1_Handler 170 .word FPU_Handler 171 .word SPI1_Handler 172 .word TIMR0_Handler 173 .word TIMR1_Handler 174 .word TIMR2_Handler 175 .word TIMR3_Handler 176 .word TIMR4_Handler 177 .word TIMR5_Handler 178/******************************************************************************* 179* 180* Provide weak aliases for each Exception handler to the Default_Handler. 181* As they are weak aliases, any function with the same name will override 182* this definition. 183* 184*******************************************************************************/ 185 .weak NMI_Handler 186 .thumb_set NMI_Handler,Default_Handler 187 188 .weak HardFault_Handler 189 .thumb_set HardFault_Handler,Default_Handler 190 191 .weak MemManage_Handler 192 .thumb_set MemManage_Handler,Default_Handler 193 194 .weak BusFault_Handler 195 .thumb_set BusFault_Handler,Default_Handler 196 197 .weak UsageFault_Handler 198 .thumb_set UsageFault_Handler,Default_Handler 199 200 .weak SVC_Handler 201 .thumb_set SVC_Handler,Default_Handler 202 203 .weak DebugMon_Handler 204 .thumb_set DebugMon_Handler,Default_Handler 205 206 .weak PendSV_Handler 207 .thumb_set PendSV_Handler,Default_Handler 208 209 .weak SysTick_Handler 210 .thumb_set SysTick_Handler,Default_Handler 211 212 .weak GPIOA0_Handler 213 .thumb_set GPIOA0_Handler,Default_Handler 214 215 .weak GPIOA1_Handler 216 .thumb_set GPIOA1_Handler,Default_Handler 217 218 .weak GPIOA2_Handler 219 .thumb_set GPIOA2_Handler,Default_Handler 220 221 .weak GPIOA3_Handler 222 .thumb_set GPIOA3_Handler,Default_Handler 223 224 .weak GPIOA4_Handler 225 .thumb_set GPIOA4_Handler,Default_Handler 226 227 .weak GPIOA5_Handler 228 .thumb_set GPIOA5_Handler,Default_Handler 229 230 .weak GPIOA6_Handler 231 .thumb_set GPIOA6_Handler,Default_Handler 232 233 .weak GPIOA7_Handler 234 .thumb_set GPIOA7_Handler,Default_Handler 235 236 .weak GPIOB0_Handler 237 .thumb_set GPIOB0_Handler,Default_Handler 238 239 .weak GPIOB1_Handler 240 .thumb_set GPIOB1_Handler,Default_Handler 241 242 .weak GPIOB2_Handler 243 .thumb_set GPIOB2_Handler,Default_Handler 244 245 .weak GPIOB3_Handler 246 .thumb_set GPIOB3_Handler,Default_Handler 247 248 .weak GPIOB4_Handler 249 .thumb_set GPIOB4_Handler,Default_Handler 250 251 .weak GPIOB5_Handler 252 .thumb_set GPIOB5_Handler,Default_Handler 253 254 .weak GPIOB6_Handler 255 .thumb_set GPIOB6_Handler,Default_Handler 256 257 .weak GPIOB7_Handler 258 .thumb_set GPIOB7_Handler,Default_Handler 259 260 .weak GPIOC0_Handler 261 .thumb_set GPIOC0_Handler,Default_Handler 262 263 .weak GPIOC1_Handler 264 .thumb_set GPIOC1_Handler,Default_Handler 265 266 .weak GPIOC2_Handler 267 .thumb_set GPIOC2_Handler,Default_Handler 268 269 .weak GPIOC3_Handler 270 .thumb_set GPIOC3_Handler,Default_Handler 271 272 .weak GPIOC4_Handler 273 .thumb_set GPIOC4_Handler,Default_Handler 274 275 .weak GPIOC5_Handler 276 .thumb_set GPIOC5_Handler,Default_Handler 277 278 .weak GPIOC6_Handler 279 .thumb_set GPIOC6_Handler,Default_Handler 280 281 .weak GPIOC7_Handler 282 .thumb_set GPIOC7_Handler,Default_Handler 283 284 .weak GPIOM0_Handler 285 .thumb_set GPIOM0_Handler,Default_Handler 286 287 .weak GPIOM1_Handler 288 .thumb_set GPIOM1_Handler,Default_Handler 289 290 .weak GPIOM2_Handler 291 .thumb_set GPIOM2_Handler,Default_Handler 292 293 .weak GPIOM3_Handler 294 .thumb_set GPIOM3_Handler,Default_Handler 295 296 .weak GPIOM4_Handler 297 .thumb_set GPIOM4_Handler,Default_Handler 298 299 .weak GPIOM5_Handler 300 .thumb_set GPIOM5_Handler,Default_Handler 301 302 .weak GPIOM6_Handler 303 .thumb_set GPIOM6_Handler,Default_Handler 304 305 .weak GPIOM7_Handler 306 .thumb_set GPIOM7_Handler,Default_Handler 307 308 .weak DMA_Handler 309 .thumb_set DMA_Handler,Default_Handler 310 311 .weak LCD_Handler 312 .thumb_set LCD_Handler,Default_Handler 313 314 .weak NORFLC_Handler 315 .thumb_set NORFLC_Handler,Default_Handler 316 317 .weak CAN_Handler 318 .thumb_set CAN_Handler,Default_Handler 319 320 .weak PULSE_Handler 321 .thumb_set PULSE_Handler,Default_Handler 322 323 .weak WDT_Handler 324 .thumb_set WDT_Handler,Default_Handler 325 326 .weak PWM_Handler 327 .thumb_set PWM_Handler,Default_Handler 328 329 .weak UART0_Handler 330 .thumb_set UART0_Handler,Default_Handler 331 332 .weak UART1_Handler 333 .thumb_set UART1_Handler,Default_Handler 334 335 .weak UART2_Handler 336 .thumb_set UART2_Handler,Default_Handler 337 338 .weak UART3_Handler 339 .thumb_set UART3_Handler,Default_Handler 340 341 .weak I2C0_Handler 342 .thumb_set I2C0_Handler,Default_Handler 343 344 .weak I2C1_Handler 345 .thumb_set I2C1_Handler,Default_Handler 346 347 .weak SPI0_Handler 348 .thumb_set SPI0_Handler,Default_Handler 349 350 .weak ADC0_Handler 351 .thumb_set ADC0_Handler,Default_Handler 352 353 .weak RTC_Handler 354 .thumb_set RTC_Handler,Default_Handler 355 356 .weak ANAC_Handler 357 .thumb_set ANAC_Handler,Default_Handler 358 359 .weak SDIO_Handler 360 .thumb_set SDIO_Handler,Default_Handler 361 362 .weak GPIOA_Handler 363 .thumb_set GPIOA_Handler,Default_Handler 364 365 .weak GPIOB_Handler 366 .thumb_set GPIOB_Handler,Default_Handler 367 368 .weak GPIOC_Handler 369 .thumb_set GPIOC_Handler,Default_Handler 370 371 .weak GPIOM_Handler 372 .thumb_set GPIOM_Handler,Default_Handler 373 374 .weak GPION_Handler 375 .thumb_set GPION_Handler,Default_Handler 376 377 .weak GPIOP_Handler 378 .thumb_set GPIOP_Handler,Default_Handler 379 380 .weak ADC1_Handler 381 .thumb_set ADC1_Handler,Default_Handler 382 383 .weak FPU_Handler 384 .thumb_set FPU_Handler,Default_Handler 385 386 .weak SPI1_Handler 387 .thumb_set SPI1_Handler,Default_Handler 388 389 .weak TIMR0_Handler 390 .thumb_set TIMR0_Handler,Default_Handler 391 392 .weak TIMR1_Handler 393 .thumb_set TIMR1_Handler,Default_Handler 394 395 .weak TIMR2_Handler 396 .thumb_set TIMR2_Handler,Default_Handler 397 398 .weak TIMR3_Handler 399 .thumb_set TIMR3_Handler,Default_Handler 400 401 .weak TIMR4_Handler 402 .thumb_set TIMR4_Handler,Default_Handler 403 404 .weak TIMR5_Handler 405 .thumb_set TIMR5_Handler,Default_Handler 406 407