1 .syntax unified 2 .cpu cortex-m33 3 .fpu softvfp 4 .thumb 5 6.global g_pfnVectors 7.global Default_Handler 8.extern FPU_Enable 9/* start address for the initialization values of the .data section. 10defined in linker script */ 11.word _sidata 12/* start address for the .data section. defined in linker script */ 13.word _sdata 14/* end address for the .data section. defined in linker script */ 15.word _edata 16/* start address for the .bss section. defined in linker script */ 17.word _sbss 18/* end address for the .bss section. defined in linker script */ 19.word _ebss 20/* stack used for SystemInit_ExtMemCtl; always internal RAM used */ 21 22/** 23 * @brief This is the code that gets called when the processor first 24 * starts execution following a reset event. Only the absolutely 25 * necessary set is performed, after which the application 26 * supplied main() routine is called. 27 * @param None 28 * @retval : None 29*/ 30 31 .section .text.Reset_Handler 32 .weak Reset_Handler 33 .type Reset_Handler, %function 34Reset_Handler: 35 ldr sp, =_estack /* set stack pointer */ 36 37/* Call the clock system initialization function.*/ 38 bl FPU_Enable 39 40/* Copy the data segment initializers from flash to SRAM */ 41 ldr r0, =_sdata 42 ldr r1, =_edata 43 ldr r2, =_sidata 44 movs r3, #0 45 b LoopCopyDataInit 46 47CopyDataInit: 48 ldr r4, [r2, r3] 49 str r4, [r0, r3] 50 adds r3, r3, #4 51 52LoopCopyDataInit: 53 adds r4, r0, r3 54 cmp r4, r1 55 bcc CopyDataInit 56/* Zero fill the bss segment. */ 57 ldr r2, =_sbss 58 ldr r4, =_ebss 59 movs r3, #0 60 b LoopFillZerobss 61 62FillZerobss: 63 str r3, [r2] 64 adds r2, r2, #4 65 66LoopFillZerobss: 67 cmp r2, r4 68 bcc FillZerobss 69 70/* Call static constructors */ 71 bl __libc_init_array 72/* Call the application's entry point.*/ 73 bl entry 74 bx lr 75.size Reset_Handler, .-Reset_Handler 76 77/** 78 * @brief This is the code that gets called when the processor receives an 79 * unexpected interrupt. This simply enters an infinite loop, preserving 80 * the system state for examination by a debugger. 81 * @param None 82 * @retval None 83*/ 84 .section .text.Default_Handler,"ax",%progbits 85Default_Handler: 86Infinite_Loop: 87 b Infinite_Loop 88 .size Default_Handler, .-Default_Handler 89/****************************************************************************** 90* 91* The minimal vector table for a Cortex M. Note that the proper constructs 92* must be placed on this to ensure that it ends up at physical address 93* 0x0000.0000. 94* 95*******************************************************************************/ 96 .section .isr_vector,"a",%progbits 97 .type g_pfnVectors, %object 98 .size g_pfnVectors, .-g_pfnVectors 99 100 101g_pfnVectors: 102 .word _estack 103 .word Reset_Handler 104 105 .word NMI_Handler 106 .word HardFault_Handler 107 .word MemManage_Handler 108 .word BusFault_Handler 109 .word UsageFault_Handler 110 .word 0 111 .word 0 112 .word 0 113 .word 0 114 .word SVC_Handler 115 .word DebugMon_Handler 116 .word 0 117 .word PendSV_Handler 118 .word SysTick_Handler 119 120 /* External Interrupts */ 121 .word UART0_Handler 122 .word UART1_Handler 123 .word TIMR0_Handler 124 .word TIMR1_Handler 125 .word DMA_Handler 126 .word SPI0_Handler 127 .word PWM0_Handler 128 .word WDT_Handler 129 .word UART2_Handler 130 .word PWM1_Handler 131 .word ADC0_Handler 132 .word BTIMR0_Handler 133 .word HALL0_Handler 134 .word PWM2_Handler 135 .word PWMBRK_Handler 136 .word I2C0_Handler 137 .word CAN0_Handler 138 .word SPI1_Handler 139 .word RTC_Handler 140 .word PWM3_Handler 141 .word TIMR2_Handler 142 .word UART3_Handler 143 .word TIMR3_Handler 144 .word ADC1_Handler 145 .word BOD_Handler 146 .word CORDIC_Handler 147 .word BTIMR1_Handler 148 .word PWM4_Handler 149 .word HALL3_Handler 150 .word BTIMR2_Handler 151 .word I2C1_Handler 152 .word BTIMR3_Handler 153 .word ACMP_Handler 154 .word XTALSTOP_Handler 155 .word FSPI_Handler 156 .word GPIOA_Handler 157 .word GPIOB_Handler 158 .word GPIOC_Handler 159 .word GPIOD_Handler 160 .word GPIOM_Handler 161 .word GPION_Handler 162 .word GPIOA0_Handler 163 .word GPIOA1_Handler 164 .word GPIOA5_Handler 165 .word GPIOA6_Handler 166 .word GPIOA10_Handler 167 .word GPIOA11_Handler 168 .word GPIOA12_Handler 169 .word GPIOA13_Handler 170 .word GPIOB0_Handler 171 .word GPIOB1_Handler 172 .word GPIOB2_Handler 173 .word GPIOC0_Handler 174 .word GPIOC1_Handler 175 .word GPIOC2_Handler 176 .word GPIOC3_Handler 177 .word GPIOC4_Handler 178 .word GPIOD3_Handler 179 .word GPIOD4_Handler 180 .word GPIOD5_Handler 181 .word GPIOD6_Handler 182 .word GPIOD7_Handler 183 .word GPIOD8_Handler 184 .word GPIOC9_Handler 185 .word GPIOC10_Handler 186 .word GPIOC11_Handler 187 .word GPIOC12_Handler 188 .word GPIOM0_Handler 189 .word GPIOM1_Handler 190 .word GPIOM2_Handler 191 .word GPIOM3_Handler 192 .word GPIOM4_Handler 193 .word DIV_Handler 194 .word LCD_Handler 195 .word GPIOE_Handler 196 .word JPEG_Handler 197 .word SDIO_Handler 198 .word USB_Handler 199 .word CAN1_Handler 200 .word TIMR4_Handler 201 .word BTIMR4_Handler 202 .word BTIMR5_Handler 203 .word BTIMR6_Handler 204 .word BTIMR7_Handler 205 .word BTIMR8_Handler 206 .word BTIMR9_Handler 207 .word BTIMR10_Handler 208 .word BTIMR11_Handler 209 .word DMA2D_Handler 210 .word QEI_Handler 211 212/******************************************************************************* 213* 214* Provide weak aliases for each Exception handler to the Default_Handler. 215* As they are weak aliases, any function with the same name will override 216* this definition. 217* 218*******************************************************************************/ 219 .weak NMI_Handler 220 .thumb_set NMI_Handler,Default_Handler 221 222 .weak HardFault_Handler 223 .thumb_set HardFault_Handler,Default_Handler 224 225 .weak MemManage_Handler 226 .thumb_set MemManage_Handler,Default_Handler 227 228 .weak BusFault_Handler 229 .thumb_set BusFault_Handler,Default_Handler 230 231 .weak UsageFault_Handler 232 .thumb_set UsageFault_Handler,Default_Handler 233 234 .weak SVC_Handler 235 .thumb_set SVC_Handler,Default_Handler 236 237 .weak DebugMon_Handler 238 .thumb_set DebugMon_Handler,Default_Handler 239 240 .weak PendSV_Handler 241 .thumb_set PendSV_Handler,Default_Handler 242 243 .weak SysTick_Handler 244 .thumb_set SysTick_Handler,Default_Handler 245 246 .weak UART0_Handler 247 .thumb_set UART0_Handler,Default_Handler 248 249 .weak UART1_Handler 250 .thumb_set UART1_Handler,Default_Handler 251 252 .weak TIMR0_Handler 253 .thumb_set TIMR0_Handler,Default_Handler 254 255 .weak TIMR1_Handler 256 .thumb_set TIMR1_Handler,Default_Handler 257 258 .weak DMA_Handler 259 .thumb_set DMA_Handler,Default_Handler 260 261 .weak SPI0_Handler 262 .thumb_set SPI0_Handler,Default_Handler 263 264 .weak PWM0_Handler 265 .thumb_set PWM0_Handler,Default_Handler 266 267 .weak WDT_Handler 268 .thumb_set WDT_Handler,Default_Handler 269 270 .weak UART2_Handler 271 .thumb_set UART2_Handler,Default_Handler 272 273 .weak PWM1_Handler 274 .thumb_set PWM1_Handler,Default_Handler 275 276 .weak ADC0_Handler 277 .thumb_set ADC0_Handler,Default_Handler 278 279 .weak BTIMR0_Handler 280 .thumb_set BTIMR0_Handler,Default_Handler 281 282 .weak HALL0_Handler 283 .thumb_set HALL0_Handler,Default_Handler 284 285 .weak PWM2_Handler 286 .thumb_set PWM2_Handler,Default_Handler 287 288 .weak PWMBRK_Handler 289 .thumb_set PWMBRK_Handler,Default_Handler 290 291 .weak I2C0_Handler 292 .thumb_set I2C0_Handler,Default_Handler 293 294 .weak CAN0_Handler 295 .thumb_set CAN0_Handler,Default_Handler 296 297 .weak SPI1_Handler 298 .thumb_set SPI1_Handler,Default_Handler 299 300 .weak RTC_Handler 301 .thumb_set RTC_Handler,Default_Handler 302 303 .weak PWM3_Handler 304 .thumb_set PWM3_Handler,Default_Handler 305 306 .weak TIMR2_Handler 307 .thumb_set TIMR2_Handler,Default_Handler 308 309 .weak UART3_Handler 310 .thumb_set UART3_Handler,Default_Handler 311 312 .weak TIMR3_Handler 313 .thumb_set TIMR3_Handler,Default_Handler 314 315 .weak ADC1_Handler 316 .thumb_set ADC1_Handler,Default_Handler 317 318 .weak BOD_Handler 319 .thumb_set BOD_Handler,Default_Handler 320 321 .weak CORDIC_Handler 322 .thumb_set CORDIC_Handler,Default_Handler 323 324 .weak BTIMR1_Handler 325 .thumb_set BTIMR1_Handler,Default_Handler 326 327 .weak PWM4_Handler 328 .thumb_set PWM4_Handler,Default_Handler 329 330 .weak HALL3_Handler 331 .thumb_set HALL3_Handler,Default_Handler 332 333 .weak BTIMR2_Handler 334 .thumb_set BTIMR2_Handler,Default_Handler 335 336 .weak I2C1_Handler 337 .thumb_set I2C1_Handler,Default_Handler 338 339 .weak BTIMR3_Handler 340 .thumb_set BTIMR3_Handler,Default_Handler 341 342 .weak ACMP_Handler 343 .thumb_set ACMP_Handler,Default_Handler 344 345 .weak XTALSTOP_Handler 346 .thumb_set XTALSTOP_Handler,Default_Handler 347 348 .weak FSPI_Handler 349 .thumb_set FSPI_Handler,Default_Handler 350 351 .weak GPIOA_Handler 352 .thumb_set GPIOA_Handler,Default_Handler 353 354 .weak GPIOB_Handler 355 .thumb_set GPIOB_Handler,Default_Handler 356 357 .weak GPIOC_Handler 358 .thumb_set GPIOC_Handler,Default_Handler 359 360 .weak GPIOD_Handler 361 .thumb_set GPIOD_Handler,Default_Handler 362 363 .weak GPIOM_Handler 364 .thumb_set GPIOM_Handler,Default_Handler 365 366 .weak GPION_Handler 367 .thumb_set GPION_Handler,Default_Handler 368 369 .weak GPIOA0_Handler 370 .thumb_set GPIOA0_Handler,Default_Handler 371 372 .weak GPIOA1_Handler 373 .thumb_set GPIOA1_Handler,Default_Handler 374 375 .weak GPIOA5_Handler 376 .thumb_set GPIOA5_Handler,Default_Handler 377 378 .weak GPIOA6_Handler 379 .thumb_set GPIOA6_Handler,Default_Handler 380 381 .weak GPIOA10_Handler 382 .thumb_set GPIOA10_Handler,Default_Handler 383 384 .weak GPIOA11_Handler 385 .thumb_set GPIOA11_Handler,Default_Handler 386 387 .weak GPIOA12_Handler 388 .thumb_set GPIOA12_Handler,Default_Handler 389 390 .weak GPIOA13_Handler 391 .thumb_set GPIOA13_Handler,Default_Handler 392 393 .weak GPIOB0_Handler 394 .thumb_set GPIOB0_Handler,Default_Handler 395 396 .weak GPIOB1_Handler 397 .thumb_set GPIOB1_Handler,Default_Handler 398 399 .weak GPIOB2_Handler 400 .thumb_set GPIOB2_Handler,Default_Handler 401 402 .weak GPIOC0_Handler 403 .thumb_set GPIOC0_Handler,Default_Handler 404 405 .weak GPIOC1_Handler 406 .thumb_set GPIOC1_Handler,Default_Handler 407 408 .weak GPIOC2_Handler 409 .thumb_set GPIOC2_Handler,Default_Handler 410 411 .weak GPIOC3_Handler 412 .thumb_set GPIOC3_Handler,Default_Handler 413 414 .weak GPIOC4_Handler 415 .thumb_set GPIOC4_Handler,Default_Handler 416 417 .weak GPIOD3_Handler 418 .thumb_set GPIOD3_Handler,Default_Handler 419 420 .weak GPIOD4_Handler 421 .thumb_set GPIOD4_Handler,Default_Handler 422 423 .weak GPIOD5_Handler 424 .thumb_set GPIOD5_Handler,Default_Handler 425 426 .weak GPIOD6_Handler 427 .thumb_set GPIOD6_Handler,Default_Handler 428 429 .weak GPIOD7_Handler 430 .thumb_set GPIOD7_Handler,Default_Handler 431 432 .weak GPIOD8_Handler 433 .thumb_set GPIOD8_Handler,Default_Handler 434 435 .weak GPIOC9_Handler 436 .thumb_set GPIOC9_Handler,Default_Handler 437 438 .weak GPIOC10_Handler 439 .thumb_set GPIOC10_Handler,Default_Handler 440 441 .weak GPIOC11_Handler 442 .thumb_set GPIOC11_Handler,Default_Handler 443 444 .weak GPIOC12_Handler 445 .thumb_set GPIOC12_Handler,Default_Handler 446 447 .weak GPIOM0_Handler 448 .thumb_set GPIOM0_Handler,Default_Handler 449 450 .weak GPIOM1_Handler 451 .thumb_set GPIOM1_Handler,Default_Handler 452 453 .weak GPIOM2_Handler 454 .thumb_set GPIOM2_Handler,Default_Handler 455 456 .weak GPIOM3_Handler 457 .thumb_set GPIOM3_Handler,Default_Handler 458 459 .weak GPIOM4_Handler 460 .thumb_set GPIOM4_Handler,Default_Handler 461 462 .weak DIV_Handler 463 .thumb_set DIV_Handler,Default_Handler 464 465 .weak LCD_Handler 466 .thumb_set LCD_Handler,Default_Handler 467 468 .weak GPIOE_Handler 469 .thumb_set GPIOE_Handler,Default_Handler 470 471 .weak JPEG_Handler 472 .thumb_set JPEG_Handler,Default_Handler 473 474 .weak SDIO_Handler 475 .thumb_set SDIO_Handler,Default_Handler 476 477 .weak USB_Handler 478 .thumb_set USB_Handler,Default_Handler 479 480 .weak CAN1_Handler 481 .thumb_set CAN1_Handler,Default_Handler 482 483 .weak TIMR4_Handler 484 .thumb_set TIMR4_Handler,Default_Handler 485 486 .weak BTIMR4_Handler 487 .thumb_set BTIMR4_Handler,Default_Handler 488 489 .weak BTIMR5_Handler 490 .thumb_set BTIMR5_Handler,Default_Handler 491 492 .weak BTIMR6_Handler 493 .thumb_set BTIMR6_Handler,Default_Handler 494 495 .weak BTIMR7_Handler 496 .thumb_set BTIMR7_Handler,Default_Handler 497 498 .weak BTIMR8_Handler 499 .thumb_set BTIMR8_Handler,Default_Handler 500 501 .weak BTIMR9_Handler 502 .thumb_set BTIMR9_Handler,Default_Handler 503 504 .weak BTIMR10_Handler 505 .thumb_set BTIMR10_Handler,Default_Handler 506 507 .weak BTIMR11_Handler 508 .thumb_set BTIMR11_Handler,Default_Handler 509 510 .weak DMA2D_Handler 511 .thumb_set DMA2D_Handler,Default_Handler 512 513 .weak QEI_Handler 514 .thumb_set QEI_Handler,Default_Handler 515