1/* --------------------------------------------------------------------------*/ 2/* @file: startup_LPC54605.S */ 3/* @purpose: CMSIS Cortex-M4 Core Device Startup File */ 4/* LPC54605 */ 5/* @version: 1.2 */ 6/* @date: 2017-6-8 */ 7/* --------------------------------------------------------------------------*/ 8/* */ 9/* Copyright 1997-2016 Freescale Semiconductor, Inc. */ 10/* Copyright 2016-2019 NXP */ 11/* All rights reserved. */ 12/* */ 13/* SPDX-License-Identifier: BSD-3-Clause */ 14/*****************************************************************************/ 15/* Version: GCC for ARM Embedded Processors */ 16/*****************************************************************************/ 17 18 19 .syntax unified 20 .arch armv7-m 21 22 .section .isr_vector, "a" 23 .align 2 24 .globl __Vectors 25__Vectors: 26 .long __StackTop /* Top of Stack */ 27 .long Reset_Handler /* Reset Handler */ 28 .long NMI_Handler /* NMI Handler */ 29 .long HardFault_Handler /* Hard Fault Handler */ 30 .long MemManage_Handler /* MPU Fault Handler */ 31 .long BusFault_Handler /* Bus Fault Handler */ 32 .long UsageFault_Handler /* Usage Fault Handler */ 33 .long 0 /* Reserved */ 34 .long 0xFFFFFFFF /* ECRP */ 35 .long 0 /* Reserved */ 36 .long 0 /* Reserved */ 37 .long SVC_Handler /* SVCall Handler */ 38 .long DebugMon_Handler /* Debug Monitor Handler */ 39 .long 0 /* Reserved */ 40 .long PendSV_Handler /* PendSV Handler */ 41 .long SysTick_Handler /* SysTick Handler */ 42 43 /* External Interrupts */ 44 .long WDT_BOD_IRQHandler /* Windowed watchdog timer, Brownout detect */ 45 .long DMA0_IRQHandler /* DMA controller */ 46 .long GINT0_IRQHandler /* GPIO group 0 */ 47 .long GINT1_IRQHandler /* GPIO group 1 */ 48 .long PIN_INT0_IRQHandler /* Pin interrupt 0 or pattern match engine slice 0 */ 49 .long PIN_INT1_IRQHandler /* Pin interrupt 1or pattern match engine slice 1 */ 50 .long PIN_INT2_IRQHandler /* Pin interrupt 2 or pattern match engine slice 2 */ 51 .long PIN_INT3_IRQHandler /* Pin interrupt 3 or pattern match engine slice 3 */ 52 .long UTICK0_IRQHandler /* Micro-tick Timer */ 53 .long MRT0_IRQHandler /* Multi-rate timer */ 54 .long CTIMER0_IRQHandler /* Standard counter/timer CTIMER0 */ 55 .long CTIMER1_IRQHandler /* Standard counter/timer CTIMER1 */ 56 .long SCT0_IRQHandler /* SCTimer/PWM */ 57 .long CTIMER3_IRQHandler /* Standard counter/timer CTIMER3 */ 58 .long FLEXCOMM0_IRQHandler /* Flexcomm Interface 0 (USART, SPI, I2C, FLEXCOMM) */ 59 .long FLEXCOMM1_IRQHandler /* Flexcomm Interface 1 (USART, SPI, I2C, FLEXCOMM) */ 60 .long FLEXCOMM2_IRQHandler /* Flexcomm Interface 2 (USART, SPI, I2C, FLEXCOMM) */ 61 .long FLEXCOMM3_IRQHandler /* Flexcomm Interface 3 (USART, SPI, I2C, FLEXCOMM) */ 62 .long FLEXCOMM4_IRQHandler /* Flexcomm Interface 4 (USART, SPI, I2C, FLEXCOMM) */ 63 .long FLEXCOMM5_IRQHandler /* Flexcomm Interface 5 (USART, SPI, I2C,, FLEXCOMM) */ 64 .long FLEXCOMM6_IRQHandler /* Flexcomm Interface 6 (USART, SPI, I2C, I2S,, FLEXCOMM) */ 65 .long FLEXCOMM7_IRQHandler /* Flexcomm Interface 7 (USART, SPI, I2C, I2S,, FLEXCOMM) */ 66 .long ADC0_SEQA_IRQHandler /* ADC0 sequence A completion. */ 67 .long ADC0_SEQB_IRQHandler /* ADC0 sequence B completion. */ 68 .long ADC0_THCMP_IRQHandler /* ADC0 threshold compare and error. */ 69 .long DMIC0_IRQHandler /* Digital microphone and DMIC subsystem */ 70 .long HWVAD0_IRQHandler /* Hardware Voice Activity Detector */ 71 .long USB0_NEEDCLK_IRQHandler /* USB Activity Wake-up Interrupt */ 72 .long USB0_IRQHandler /* USB device */ 73 .long RTC_IRQHandler /* RTC alarm and wake-up interrupts */ 74 .long Reserved46_IRQHandler /* Reserved interrupt */ 75 .long Reserved47_IRQHandler /* Reserved interrupt */ 76 .long PIN_INT4_IRQHandler /* Pin interrupt 4 or pattern match engine slice 4 int */ 77 .long PIN_INT5_IRQHandler /* Pin interrupt 5 or pattern match engine slice 5 int */ 78 .long PIN_INT6_IRQHandler /* Pin interrupt 6 or pattern match engine slice 6 int */ 79 .long PIN_INT7_IRQHandler /* Pin interrupt 7 or pattern match engine slice 7 int */ 80 .long CTIMER2_IRQHandler /* Standard counter/timer CTIMER2 */ 81 .long CTIMER4_IRQHandler /* Standard counter/timer CTIMER4 */ 82 .long RIT_IRQHandler /* Repetitive Interrupt Timer */ 83 .long SPIFI0_IRQHandler /* SPI flash interface */ 84 .long FLEXCOMM8_IRQHandler /* Flexcomm Interface 8 (USART, SPI, I2C, FLEXCOMM) */ 85 .long FLEXCOMM9_IRQHandler /* Flexcomm Interface 9 (USART, SPI, I2C, FLEXCOMM) */ 86 .long SDIO_IRQHandler /* SD/MMC */ 87 .long CAN0_IRQ0_IRQHandler /* CAN0 interrupt0 */ 88 .long CAN0_IRQ1_IRQHandler /* CAN0 interrupt1 */ 89 .long CAN1_IRQ0_IRQHandler /* CAN1 interrupt0 */ 90 .long CAN1_IRQ1_IRQHandler /* CAN1 interrupt1 */ 91 .long USB1_IRQHandler /* USB1 interrupt */ 92 .long USB1_NEEDCLK_IRQHandler /* USB1 activity */ 93 .long ETHERNET_IRQHandler /* Ethernet */ 94 .long ETHERNET_PMT_IRQHandler /* Ethernet power management interrupt */ 95 .long ETHERNET_MACLP_IRQHandler /* Ethernet MAC interrupt */ 96 .long EEPROM_IRQHandler /* EEPROM interrupt */ 97 .long LCD_IRQHandler /* LCD interrupt */ 98 .long SHA_IRQHandler /* SHA interrupt */ 99 .long SMARTCARD0_IRQHandler /* Smart card 0 interrupt */ 100 .long SMARTCARD1_IRQHandler /* Smart card 1 interrupt */ 101 102 .size __Vectors, . - __Vectors 103 104 105 106 .text 107 .thumb 108 109/* Reset Handler */ 110 111 .thumb_func 112 .align 2 113 .globl Reset_Handler 114 .weak Reset_Handler 115 .type Reset_Handler, %function 116Reset_Handler: 117#ifndef __NO_SYSTEM_INIT 118 movs r0,#56 119 ldr r1, =0x40000220 120 str r0, [r1] /* Enable SRAM clock used by Stack */ 121 ldr r0,=SystemInit 122 blx r0 123#endif 124 125 /* Loop to copy data from read only memory to RAM. The ranges 126 * of copy from/to are specified by following symbols evaluated in 127 * linker script. 128 * __etext: End of code section, i.e., begin of data sections to copy from. 129 * __data_start__/__data_end__: RAM address range that data should be 130 * copied to. Both must be aligned to 4 bytes boundary. */ 131 132 ldr r1, =__etext 133 ldr r2, =__data_start__ 134 ldr r3, =__data_end__ 135 136#if 1 137/* Here are two copies of loop implemenations. First one favors code size 138 * and the second one favors performance. Default uses the first one. 139 * Change to "#if 0" to use the second one */ 140.LC0: 141 cmp r2, r3 142 ittt lt 143 ldrlt r0, [r1], #4 144 strlt r0, [r2], #4 145 blt .LC0 146#else 147 subs r3, r2 148 ble .LC1 149.LC0: 150 subs r3, #4 151 ldr r0, [r1, r3] 152 str r0, [r2, r3] 153 bgt .LC0 154.LC1: 155#endif 156 157#ifdef __STARTUP_CLEAR_BSS 158/* This part of work usually is done in C library startup code. Otherwise, 159 * define this macro to enable it in this startup. 160 * 161 * Loop to zero out BSS section, which uses following symbols 162 * in linker script: 163 * __bss_start__: start of BSS section. Must align to 4 164 * __bss_end__: end of BSS section. Must align to 4 165 */ 166 ldr r1, =__bss_start__ 167 ldr r2, =__bss_end__ 168 169 movs r0, 0 170.LC2: 171 cmp r1, r2 172 itt lt 173 strlt r0, [r1], #4 174 blt .LC2 175#endif /* __STARTUP_CLEAR_BSS */ 176 177#ifndef __START 178#define __START _start 179#endif 180#ifndef __ATOLLIC__ 181 ldr r0,=__START 182 blx r0 183#else 184 ldr r0,=__libc_init_array 185 blx r0 186 ldr r0,=main 187 bx r0 188#endif 189 190 .pool 191 .size Reset_Handler, . - Reset_Handler 192 193 .align 1 194 .thumb_func 195 .weak DefaultISR 196 .type DefaultISR, %function 197DefaultISR: 198 b DefaultISR 199 .size DefaultISR, . - DefaultISR 200 201 .align 1 202 .thumb_func 203 .weak NMI_Handler 204 .type NMI_Handler, %function 205NMI_Handler: 206 ldr r0,=NMI_Handler 207 bx r0 208 .size NMI_Handler, . - NMI_Handler 209 210 .align 1 211 .thumb_func 212 .weak HardFault_Handler 213 .type HardFault_Handler, %function 214HardFault_Handler: 215 ldr r0,=HardFault_Handler 216 bx r0 217 .size HardFault_Handler, . - HardFault_Handler 218 219 .align 1 220 .thumb_func 221 .weak MemManage_Handler 222 .type MemManage_Handler, %function 223MemManage_Handler: 224 ldr r0,=MemManage_Handler 225 bx r0 226 .size MemManage_Handler, . - MemManage_Handler 227 228 .align 1 229 .thumb_func 230 .weak BusFault_Handler 231 .type BusFault_Handler, %function 232BusFault_Handler: 233 ldr r0,=BusFault_Handler 234 bx r0 235 .size BusFault_Handler, . - BusFault_Handler 236 237 .align 1 238 .thumb_func 239 .weak UsageFault_Handler 240 .type UsageFault_Handler, %function 241UsageFault_Handler: 242 ldr r0,=UsageFault_Handler 243 bx r0 244 .size UsageFault_Handler, . - UsageFault_Handler 245 246 .align 1 247 .thumb_func 248 .weak SVC_Handler 249 .type SVC_Handler, %function 250 251SVC_Handler: 252 ldr r0,=SVC_Handler 253 bx r0 254 .size SVC_Handler, . - SVC_Handler 255 .align 1 256 .thumb_func 257 .weak DebugMon_Handler 258 .type DebugMon_Handler, %function 259DebugMon_Handler: 260 ldr r0,=DebugMon_Handler 261 bx r0 262 .size DebugMon_Handler, . - DebugMon_Handler 263 264 .align 1 265 .thumb_func 266 .weak PendSV_Handler 267 .type PendSV_Handler, %function 268PendSV_Handler: 269 ldr r0,=PendSV_Handler 270 bx r0 271 .size PendSV_Handler, . - PendSV_Handler 272 273 .align 1 274 .thumb_func 275 .weak SysTick_Handler 276 .type SysTick_Handler, %function 277SysTick_Handler: 278 ldr r0,=SysTick_Handler 279 bx r0 280 .size SysTick_Handler, . - SysTick_Handler 281 282 .align 1 283 .thumb_func 284 .weak WDT_BOD_IRQHandler 285 .type WDT_BOD_IRQHandler, %function 286WDT_BOD_IRQHandler: 287 ldr r0,=WDT_BOD_DriverIRQHandler 288 bx r0 289 .size WDT_BOD_IRQHandler, . - WDT_BOD_IRQHandler 290 291 .align 1 292 .thumb_func 293 .weak DMA0_IRQHandler 294 .type DMA0_IRQHandler, %function 295DMA0_IRQHandler: 296 ldr r0,=DMA0_DriverIRQHandler 297 bx r0 298 .size DMA0_IRQHandler, . - DMA0_IRQHandler 299 300 .align 1 301 .thumb_func 302 .weak GINT0_IRQHandler 303 .type GINT0_IRQHandler, %function 304GINT0_IRQHandler: 305 ldr r0,=GINT0_DriverIRQHandler 306 bx r0 307 .size GINT0_IRQHandler, . - GINT0_IRQHandler 308 309 .align 1 310 .thumb_func 311 .weak GINT1_IRQHandler 312 .type GINT1_IRQHandler, %function 313GINT1_IRQHandler: 314 ldr r0,=GINT1_DriverIRQHandler 315 bx r0 316 .size GINT1_IRQHandler, . - GINT1_IRQHandler 317 318 .align 1 319 .thumb_func 320 .weak PIN_INT0_IRQHandler 321 .type PIN_INT0_IRQHandler, %function 322PIN_INT0_IRQHandler: 323 ldr r0,=PIN_INT0_DriverIRQHandler 324 bx r0 325 .size PIN_INT0_IRQHandler, . - PIN_INT0_IRQHandler 326 327 .align 1 328 .thumb_func 329 .weak PIN_INT1_IRQHandler 330 .type PIN_INT1_IRQHandler, %function 331PIN_INT1_IRQHandler: 332 ldr r0,=PIN_INT1_DriverIRQHandler 333 bx r0 334 .size PIN_INT1_IRQHandler, . - PIN_INT1_IRQHandler 335 336 .align 1 337 .thumb_func 338 .weak PIN_INT2_IRQHandler 339 .type PIN_INT2_IRQHandler, %function 340PIN_INT2_IRQHandler: 341 ldr r0,=PIN_INT2_DriverIRQHandler 342 bx r0 343 .size PIN_INT2_IRQHandler, . - PIN_INT2_IRQHandler 344 345 .align 1 346 .thumb_func 347 .weak PIN_INT3_IRQHandler 348 .type PIN_INT3_IRQHandler, %function 349PIN_INT3_IRQHandler: 350 ldr r0,=PIN_INT3_DriverIRQHandler 351 bx r0 352 .size PIN_INT3_IRQHandler, . - PIN_INT3_IRQHandler 353 354 .align 1 355 .thumb_func 356 .weak UTICK0_IRQHandler 357 .type UTICK0_IRQHandler, %function 358UTICK0_IRQHandler: 359 ldr r0,=UTICK0_DriverIRQHandler 360 bx r0 361 .size UTICK0_IRQHandler, . - UTICK0_IRQHandler 362 363 .align 1 364 .thumb_func 365 .weak MRT0_IRQHandler 366 .type MRT0_IRQHandler, %function 367MRT0_IRQHandler: 368 ldr r0,=MRT0_DriverIRQHandler 369 bx r0 370 .size MRT0_IRQHandler, . - MRT0_IRQHandler 371 372 .align 1 373 .thumb_func 374 .weak CTIMER0_IRQHandler 375 .type CTIMER0_IRQHandler, %function 376CTIMER0_IRQHandler: 377 ldr r0,=CTIMER0_DriverIRQHandler 378 bx r0 379 .size CTIMER0_IRQHandler, . - CTIMER0_IRQHandler 380 381 .align 1 382 .thumb_func 383 .weak CTIMER1_IRQHandler 384 .type CTIMER1_IRQHandler, %function 385CTIMER1_IRQHandler: 386 ldr r0,=CTIMER1_DriverIRQHandler 387 bx r0 388 .size CTIMER1_IRQHandler, . - CTIMER1_IRQHandler 389 390 .align 1 391 .thumb_func 392 .weak SCT0_IRQHandler 393 .type SCT0_IRQHandler, %function 394SCT0_IRQHandler: 395 ldr r0,=SCT0_DriverIRQHandler 396 bx r0 397 .size SCT0_IRQHandler, . - SCT0_IRQHandler 398 399 .align 1 400 .thumb_func 401 .weak CTIMER3_IRQHandler 402 .type CTIMER3_IRQHandler, %function 403CTIMER3_IRQHandler: 404 ldr r0,=CTIMER3_DriverIRQHandler 405 bx r0 406 .size CTIMER3_IRQHandler, . - CTIMER3_IRQHandler 407 408 .align 1 409 .thumb_func 410 .weak FLEXCOMM0_IRQHandler 411 .type FLEXCOMM0_IRQHandler, %function 412FLEXCOMM0_IRQHandler: 413 ldr r0,=FLEXCOMM0_DriverIRQHandler 414 bx r0 415 .size FLEXCOMM0_IRQHandler, . - FLEXCOMM0_IRQHandler 416 417 .align 1 418 .thumb_func 419 .weak FLEXCOMM1_IRQHandler 420 .type FLEXCOMM1_IRQHandler, %function 421FLEXCOMM1_IRQHandler: 422 ldr r0,=FLEXCOMM1_DriverIRQHandler 423 bx r0 424 .size FLEXCOMM1_IRQHandler, . - FLEXCOMM1_IRQHandler 425 426 .align 1 427 .thumb_func 428 .weak FLEXCOMM2_IRQHandler 429 .type FLEXCOMM2_IRQHandler, %function 430FLEXCOMM2_IRQHandler: 431 ldr r0,=FLEXCOMM2_DriverIRQHandler 432 bx r0 433 .size FLEXCOMM2_IRQHandler, . - FLEXCOMM2_IRQHandler 434 435 .align 1 436 .thumb_func 437 .weak FLEXCOMM3_IRQHandler 438 .type FLEXCOMM3_IRQHandler, %function 439FLEXCOMM3_IRQHandler: 440 ldr r0,=FLEXCOMM3_DriverIRQHandler 441 bx r0 442 .size FLEXCOMM3_IRQHandler, . - FLEXCOMM3_IRQHandler 443 444 .align 1 445 .thumb_func 446 .weak FLEXCOMM4_IRQHandler 447 .type FLEXCOMM4_IRQHandler, %function 448FLEXCOMM4_IRQHandler: 449 ldr r0,=FLEXCOMM4_DriverIRQHandler 450 bx r0 451 .size FLEXCOMM4_IRQHandler, . - FLEXCOMM4_IRQHandler 452 453 .align 1 454 .thumb_func 455 .weak FLEXCOMM5_IRQHandler 456 .type FLEXCOMM5_IRQHandler, %function 457FLEXCOMM5_IRQHandler: 458 ldr r0,=FLEXCOMM5_DriverIRQHandler 459 bx r0 460 .size FLEXCOMM5_IRQHandler, . - FLEXCOMM5_IRQHandler 461 462 .align 1 463 .thumb_func 464 .weak FLEXCOMM6_IRQHandler 465 .type FLEXCOMM6_IRQHandler, %function 466FLEXCOMM6_IRQHandler: 467 ldr r0,=FLEXCOMM6_DriverIRQHandler 468 bx r0 469 .size FLEXCOMM6_IRQHandler, . - FLEXCOMM6_IRQHandler 470 471 .align 1 472 .thumb_func 473 .weak FLEXCOMM7_IRQHandler 474 .type FLEXCOMM7_IRQHandler, %function 475FLEXCOMM7_IRQHandler: 476 ldr r0,=FLEXCOMM7_DriverIRQHandler 477 bx r0 478 .size FLEXCOMM7_IRQHandler, . - FLEXCOMM7_IRQHandler 479 480 .align 1 481 .thumb_func 482 .weak ADC0_SEQA_IRQHandler 483 .type ADC0_SEQA_IRQHandler, %function 484ADC0_SEQA_IRQHandler: 485 ldr r0,=ADC0_SEQA_DriverIRQHandler 486 bx r0 487 .size ADC0_SEQA_IRQHandler, . - ADC0_SEQA_IRQHandler 488 489 .align 1 490 .thumb_func 491 .weak ADC0_SEQB_IRQHandler 492 .type ADC0_SEQB_IRQHandler, %function 493ADC0_SEQB_IRQHandler: 494 ldr r0,=ADC0_SEQB_DriverIRQHandler 495 bx r0 496 .size ADC0_SEQB_IRQHandler, . - ADC0_SEQB_IRQHandler 497 498 .align 1 499 .thumb_func 500 .weak ADC0_THCMP_IRQHandler 501 .type ADC0_THCMP_IRQHandler, %function 502ADC0_THCMP_IRQHandler: 503 ldr r0,=ADC0_THCMP_DriverIRQHandler 504 bx r0 505 .size ADC0_THCMP_IRQHandler, . - ADC0_THCMP_IRQHandler 506 507 .align 1 508 .thumb_func 509 .weak DMIC0_IRQHandler 510 .type DMIC0_IRQHandler, %function 511DMIC0_IRQHandler: 512 ldr r0,=DMIC0_DriverIRQHandler 513 bx r0 514 .size DMIC0_IRQHandler, . - DMIC0_IRQHandler 515 516 .align 1 517 .thumb_func 518 .weak HWVAD0_IRQHandler 519 .type HWVAD0_IRQHandler, %function 520HWVAD0_IRQHandler: 521 ldr r0,=HWVAD0_DriverIRQHandler 522 bx r0 523 .size HWVAD0_IRQHandler, . - HWVAD0_IRQHandler 524 525 .align 1 526 .thumb_func 527 .weak USB0_NEEDCLK_IRQHandler 528 .type USB0_NEEDCLK_IRQHandler, %function 529USB0_NEEDCLK_IRQHandler: 530 ldr r0,=USB0_NEEDCLK_DriverIRQHandler 531 bx r0 532 .size USB0_NEEDCLK_IRQHandler, . - USB0_NEEDCLK_IRQHandler 533 534 .align 1 535 .thumb_func 536 .weak USB0_IRQHandler 537 .type USB0_IRQHandler, %function 538USB0_IRQHandler: 539 ldr r0,=USB0_DriverIRQHandler 540 bx r0 541 .size USB0_IRQHandler, . - USB0_IRQHandler 542 543 .align 1 544 .thumb_func 545 .weak RTC_IRQHandler 546 .type RTC_IRQHandler, %function 547RTC_IRQHandler: 548 ldr r0,=RTC_DriverIRQHandler 549 bx r0 550 .size RTC_IRQHandler, . - RTC_IRQHandler 551 552 .align 1 553 .thumb_func 554 .weak Reserved46_IRQHandler 555 .type Reserved46_IRQHandler, %function 556Reserved46_IRQHandler: 557 ldr r0,=Reserved46_DriverIRQHandler 558 bx r0 559 .size Reserved46_IRQHandler, . - Reserved46_IRQHandler 560 561 .align 1 562 .thumb_func 563 .weak Reserved47_IRQHandler 564 .type Reserved47_IRQHandler, %function 565Reserved47_IRQHandler: 566 ldr r0,=Reserved47_DriverIRQHandler 567 bx r0 568 .size Reserved47_IRQHandler, . - Reserved47_IRQHandler 569 570 .align 1 571 .thumb_func 572 .weak PIN_INT4_IRQHandler 573 .type PIN_INT4_IRQHandler, %function 574PIN_INT4_IRQHandler: 575 ldr r0,=PIN_INT4_DriverIRQHandler 576 bx r0 577 .size PIN_INT4_IRQHandler, . - PIN_INT4_IRQHandler 578 579 .align 1 580 .thumb_func 581 .weak PIN_INT5_IRQHandler 582 .type PIN_INT5_IRQHandler, %function 583PIN_INT5_IRQHandler: 584 ldr r0,=PIN_INT5_DriverIRQHandler 585 bx r0 586 .size PIN_INT5_IRQHandler, . - PIN_INT5_IRQHandler 587 588 .align 1 589 .thumb_func 590 .weak PIN_INT6_IRQHandler 591 .type PIN_INT6_IRQHandler, %function 592PIN_INT6_IRQHandler: 593 ldr r0,=PIN_INT6_DriverIRQHandler 594 bx r0 595 .size PIN_INT6_IRQHandler, . - PIN_INT6_IRQHandler 596 597 .align 1 598 .thumb_func 599 .weak PIN_INT7_IRQHandler 600 .type PIN_INT7_IRQHandler, %function 601PIN_INT7_IRQHandler: 602 ldr r0,=PIN_INT7_DriverIRQHandler 603 bx r0 604 .size PIN_INT7_IRQHandler, . - PIN_INT7_IRQHandler 605 606 .align 1 607 .thumb_func 608 .weak CTIMER2_IRQHandler 609 .type CTIMER2_IRQHandler, %function 610CTIMER2_IRQHandler: 611 ldr r0,=CTIMER2_DriverIRQHandler 612 bx r0 613 .size CTIMER2_IRQHandler, . - CTIMER2_IRQHandler 614 615 .align 1 616 .thumb_func 617 .weak CTIMER4_IRQHandler 618 .type CTIMER4_IRQHandler, %function 619CTIMER4_IRQHandler: 620 ldr r0,=CTIMER4_DriverIRQHandler 621 bx r0 622 .size CTIMER4_IRQHandler, . - CTIMER4_IRQHandler 623 624 .align 1 625 .thumb_func 626 .weak RIT_IRQHandler 627 .type RIT_IRQHandler, %function 628RIT_IRQHandler: 629 ldr r0,=RIT_DriverIRQHandler 630 bx r0 631 .size RIT_IRQHandler, . - RIT_IRQHandler 632 633 .align 1 634 .thumb_func 635 .weak SPIFI0_IRQHandler 636 .type SPIFI0_IRQHandler, %function 637SPIFI0_IRQHandler: 638 ldr r0,=SPIFI0_DriverIRQHandler 639 bx r0 640 .size SPIFI0_IRQHandler, . - SPIFI0_IRQHandler 641 642 .align 1 643 .thumb_func 644 .weak FLEXCOMM8_IRQHandler 645 .type FLEXCOMM8_IRQHandler, %function 646FLEXCOMM8_IRQHandler: 647 ldr r0,=FLEXCOMM8_DriverIRQHandler 648 bx r0 649 .size FLEXCOMM8_IRQHandler, . - FLEXCOMM8_IRQHandler 650 651 .align 1 652 .thumb_func 653 .weak FLEXCOMM9_IRQHandler 654 .type FLEXCOMM9_IRQHandler, %function 655FLEXCOMM9_IRQHandler: 656 ldr r0,=FLEXCOMM9_DriverIRQHandler 657 bx r0 658 .size FLEXCOMM9_IRQHandler, . - FLEXCOMM9_IRQHandler 659 660 .align 1 661 .thumb_func 662 .weak SDIO_IRQHandler 663 .type SDIO_IRQHandler, %function 664SDIO_IRQHandler: 665 ldr r0,=SDIO_DriverIRQHandler 666 bx r0 667 .size SDIO_IRQHandler, . - SDIO_IRQHandler 668 669 .align 1 670 .thumb_func 671 .weak CAN0_IRQ0_IRQHandler 672 .type CAN0_IRQ0_IRQHandler, %function 673CAN0_IRQ0_IRQHandler: 674 ldr r0,=CAN0_IRQ0_DriverIRQHandler 675 bx r0 676 .size CAN0_IRQ0_IRQHandler, . - CAN0_IRQ0_IRQHandler 677 678 .align 1 679 .thumb_func 680 .weak CAN0_IRQ1_IRQHandler 681 .type CAN0_IRQ1_IRQHandler, %function 682CAN0_IRQ1_IRQHandler: 683 ldr r0,=CAN0_IRQ1_DriverIRQHandler 684 bx r0 685 .size CAN0_IRQ1_IRQHandler, . - CAN0_IRQ1_IRQHandler 686 687 .align 1 688 .thumb_func 689 .weak CAN1_IRQ0_IRQHandler 690 .type CAN1_IRQ0_IRQHandler, %function 691CAN1_IRQ0_IRQHandler: 692 ldr r0,=CAN1_IRQ0_DriverIRQHandler 693 bx r0 694 .size CAN1_IRQ0_IRQHandler, . - CAN1_IRQ0_IRQHandler 695 696 .align 1 697 .thumb_func 698 .weak CAN1_IRQ1_IRQHandler 699 .type CAN1_IRQ1_IRQHandler, %function 700CAN1_IRQ1_IRQHandler: 701 ldr r0,=CAN1_IRQ1_DriverIRQHandler 702 bx r0 703 .size CAN1_IRQ1_IRQHandler, . - CAN1_IRQ1_IRQHandler 704 705 .align 1 706 .thumb_func 707 .weak USB1_IRQHandler 708 .type USB1_IRQHandler, %function 709USB1_IRQHandler: 710 ldr r0,=USB1_DriverIRQHandler 711 bx r0 712 .size USB1_IRQHandler, . - USB1_IRQHandler 713 714 .align 1 715 .thumb_func 716 .weak USB1_NEEDCLK_IRQHandler 717 .type USB1_NEEDCLK_IRQHandler, %function 718USB1_NEEDCLK_IRQHandler: 719 ldr r0,=USB1_NEEDCLK_DriverIRQHandler 720 bx r0 721 .size USB1_NEEDCLK_IRQHandler, . - USB1_NEEDCLK_IRQHandler 722 723 .align 1 724 .thumb_func 725 .weak ETHERNET_IRQHandler 726 .type ETHERNET_IRQHandler, %function 727ETHERNET_IRQHandler: 728 ldr r0,=ETHERNET_DriverIRQHandler 729 bx r0 730 .size ETHERNET_IRQHandler, . - ETHERNET_IRQHandler 731 732 .align 1 733 .thumb_func 734 .weak ETHERNET_PMT_IRQHandler 735 .type ETHERNET_PMT_IRQHandler, %function 736ETHERNET_PMT_IRQHandler: 737 ldr r0,=ETHERNET_PMT_DriverIRQHandler 738 bx r0 739 .size ETHERNET_PMT_IRQHandler, . - ETHERNET_PMT_IRQHandler 740 741 .align 1 742 .thumb_func 743 .weak ETHERNET_MACLP_IRQHandler 744 .type ETHERNET_MACLP_IRQHandler, %function 745ETHERNET_MACLP_IRQHandler: 746 ldr r0,=ETHERNET_MACLP_DriverIRQHandler 747 bx r0 748 .size ETHERNET_MACLP_IRQHandler, . - ETHERNET_MACLP_IRQHandler 749 750 .align 1 751 .thumb_func 752 .weak EEPROM_IRQHandler 753 .type EEPROM_IRQHandler, %function 754EEPROM_IRQHandler: 755 ldr r0,=EEPROM_DriverIRQHandler 756 bx r0 757 .size EEPROM_IRQHandler, . - EEPROM_IRQHandler 758 759 .align 1 760 .thumb_func 761 .weak LCD_IRQHandler 762 .type LCD_IRQHandler, %function 763LCD_IRQHandler: 764 ldr r0,=LCD_DriverIRQHandler 765 bx r0 766 .size LCD_IRQHandler, . - LCD_IRQHandler 767 768 .align 1 769 .thumb_func 770 .weak SHA_IRQHandler 771 .type SHA_IRQHandler, %function 772SHA_IRQHandler: 773 ldr r0,=SHA_DriverIRQHandler 774 bx r0 775 .size SHA_IRQHandler, . - SHA_IRQHandler 776 777 .align 1 778 .thumb_func 779 .weak SMARTCARD0_IRQHandler 780 .type SMARTCARD0_IRQHandler, %function 781SMARTCARD0_IRQHandler: 782 ldr r0,=SMARTCARD0_DriverIRQHandler 783 bx r0 784 .size SMARTCARD0_IRQHandler, . - SMARTCARD0_IRQHandler 785 786 .align 1 787 .thumb_func 788 .weak SMARTCARD1_IRQHandler 789 .type SMARTCARD1_IRQHandler, %function 790SMARTCARD1_IRQHandler: 791 ldr r0,=SMARTCARD1_DriverIRQHandler 792 bx r0 793 .size SMARTCARD1_IRQHandler, . - SMARTCARD1_IRQHandler 794 795/* Macro to define default handlers. Default handler 796 * will be weak symbol and just dead loops. They can be 797 * overwritten by other handlers */ 798 .macro def_irq_handler handler_name 799 .weak \handler_name 800 .set \handler_name, DefaultISR 801 .endm 802/* Exception Handlers */ 803 def_irq_handler WDT_BOD_DriverIRQHandler /* Windowed watchdog timer, Brownout detect */ 804 def_irq_handler DMA0_DriverIRQHandler /* DMA controller */ 805 def_irq_handler GINT0_DriverIRQHandler /* GPIO group 0 */ 806 def_irq_handler GINT1_DriverIRQHandler /* GPIO group 1 */ 807 def_irq_handler PIN_INT0_DriverIRQHandler /* Pin interrupt 0 or pattern match engine slice 0 */ 808 def_irq_handler PIN_INT1_DriverIRQHandler /* Pin interrupt 1or pattern match engine slice 1 */ 809 def_irq_handler PIN_INT2_DriverIRQHandler /* Pin interrupt 2 or pattern match engine slice 2 */ 810 def_irq_handler PIN_INT3_DriverIRQHandler /* Pin interrupt 3 or pattern match engine slice 3 */ 811 def_irq_handler UTICK0_DriverIRQHandler /* Micro-tick Timer */ 812 def_irq_handler MRT0_DriverIRQHandler /* Multi-rate timer */ 813 def_irq_handler CTIMER0_DriverIRQHandler /* Standard counter/timer CTIMER0 */ 814 def_irq_handler CTIMER1_DriverIRQHandler /* Standard counter/timer CTIMER1 */ 815 def_irq_handler SCT0_DriverIRQHandler /* SCTimer/PWM */ 816 def_irq_handler CTIMER3_DriverIRQHandler /* Standard counter/timer CTIMER3 */ 817 def_irq_handler FLEXCOMM0_DriverIRQHandler /* Flexcomm Interface 0 (USART, SPI, I2C, FLEXCOMM) */ 818 def_irq_handler FLEXCOMM1_DriverIRQHandler /* Flexcomm Interface 1 (USART, SPI, I2C, FLEXCOMM) */ 819 def_irq_handler FLEXCOMM2_DriverIRQHandler /* Flexcomm Interface 2 (USART, SPI, I2C, FLEXCOMM) */ 820 def_irq_handler FLEXCOMM3_DriverIRQHandler /* Flexcomm Interface 3 (USART, SPI, I2C, FLEXCOMM) */ 821 def_irq_handler FLEXCOMM4_DriverIRQHandler /* Flexcomm Interface 4 (USART, SPI, I2C, FLEXCOMM) */ 822 def_irq_handler FLEXCOMM5_DriverIRQHandler /* Flexcomm Interface 5 (USART, SPI, I2C,, FLEXCOMM) */ 823 def_irq_handler FLEXCOMM6_DriverIRQHandler /* Flexcomm Interface 6 (USART, SPI, I2C, I2S,, FLEXCOMM) */ 824 def_irq_handler FLEXCOMM7_DriverIRQHandler /* Flexcomm Interface 7 (USART, SPI, I2C, I2S,, FLEXCOMM) */ 825 def_irq_handler ADC0_SEQA_DriverIRQHandler /* ADC0 sequence A completion. */ 826 def_irq_handler ADC0_SEQB_DriverIRQHandler /* ADC0 sequence B completion. */ 827 def_irq_handler ADC0_THCMP_DriverIRQHandler /* ADC0 threshold compare and error. */ 828 def_irq_handler DMIC0_DriverIRQHandler /* Digital microphone and DMIC subsystem */ 829 def_irq_handler HWVAD0_DriverIRQHandler /* Hardware Voice Activity Detector */ 830 def_irq_handler USB0_NEEDCLK_DriverIRQHandler /* USB Activity Wake-up Interrupt */ 831 def_irq_handler USB0_DriverIRQHandler /* USB device */ 832 def_irq_handler RTC_DriverIRQHandler /* RTC alarm and wake-up interrupts */ 833 def_irq_handler Reserved46_DriverIRQHandler /* Reserved interrupt */ 834 def_irq_handler Reserved47_DriverIRQHandler /* Reserved interrupt */ 835 def_irq_handler PIN_INT4_DriverIRQHandler /* Pin interrupt 4 or pattern match engine slice 4 int */ 836 def_irq_handler PIN_INT5_DriverIRQHandler /* Pin interrupt 5 or pattern match engine slice 5 int */ 837 def_irq_handler PIN_INT6_DriverIRQHandler /* Pin interrupt 6 or pattern match engine slice 6 int */ 838 def_irq_handler PIN_INT7_DriverIRQHandler /* Pin interrupt 7 or pattern match engine slice 7 int */ 839 def_irq_handler CTIMER2_DriverIRQHandler /* Standard counter/timer CTIMER2 */ 840 def_irq_handler CTIMER4_DriverIRQHandler /* Standard counter/timer CTIMER4 */ 841 def_irq_handler RIT_DriverIRQHandler /* Repetitive Interrupt Timer */ 842 def_irq_handler SPIFI0_DriverIRQHandler /* SPI flash interface */ 843 def_irq_handler FLEXCOMM8_DriverIRQHandler /* Flexcomm Interface 8 (USART, SPI, I2C, FLEXCOMM) */ 844 def_irq_handler FLEXCOMM9_DriverIRQHandler /* Flexcomm Interface 9 (USART, SPI, I2C, FLEXCOMM) */ 845 def_irq_handler SDIO_DriverIRQHandler /* SD/MMC */ 846 def_irq_handler CAN0_IRQ0_DriverIRQHandler /* CAN0 interrupt0 */ 847 def_irq_handler CAN0_IRQ1_DriverIRQHandler /* CAN0 interrupt1 */ 848 def_irq_handler CAN1_IRQ0_DriverIRQHandler /* CAN1 interrupt0 */ 849 def_irq_handler CAN1_IRQ1_DriverIRQHandler /* CAN1 interrupt1 */ 850 def_irq_handler USB1_DriverIRQHandler /* USB1 interrupt */ 851 def_irq_handler USB1_NEEDCLK_DriverIRQHandler /* USB1 activity */ 852 def_irq_handler ETHERNET_DriverIRQHandler /* Ethernet */ 853 def_irq_handler ETHERNET_PMT_DriverIRQHandler /* Ethernet power management interrupt */ 854 def_irq_handler ETHERNET_MACLP_DriverIRQHandler /* Ethernet MAC interrupt */ 855 def_irq_handler EEPROM_DriverIRQHandler /* EEPROM interrupt */ 856 def_irq_handler LCD_DriverIRQHandler /* LCD interrupt */ 857 def_irq_handler SHA_DriverIRQHandler /* SHA interrupt */ 858 def_irq_handler SMARTCARD0_DriverIRQHandler /* Smart card 0 interrupt */ 859 def_irq_handler SMARTCARD1_DriverIRQHandler /* Smart card 1 interrupt */ 860 861 .end 862