startup_LPC54114_cm4.s 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. ;/*****************************************************************************
  2. ; * @file: startup_LPC54114_cm4.s
  3. ; * @purpose: CMSIS Cortex-M4 Core Device Startup File
  4. ; * LPC54114_cm4
  5. ; * @version: 1.0
  6. ; * @date: 2016-4-29
  7. ; *----------------------------------------------------------------------------
  8. ; *
  9. ; * The Clear BSD License
  10. ; * Copyright 1997 - 2016 Freescale Semiconductor.
  11. ; * Copyright 2016 - 2017 NXP
  12. ; *
  13. ; * All rights reserved.
  14. ; *
  15. ; Redistribution and use in source and binary forms, with or without modification,
  16. ; are permitted (subject to the limitations in the disclaimer below) provided
  17. ; that the following conditions are met:
  18. ;
  19. ; o Redistributions of source code must retain the above copyright notice, this list
  20. ; of conditions and the following disclaimer.
  21. ;
  22. ; o Redistributions in binary form must reproduce the above copyright notice, this
  23. ; list of conditions and the following disclaimer in the documentation and/or
  24. ; other materials provided with the distribution.
  25. ;
  26. ; o Neither the name of the copyright holder nor the names of its
  27. ; contributors may be used to endorse or promote products derived from this
  28. ; software without specific prior written permission.
  29. ;
  30. ; NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S' PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
  31. ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  32. ; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  33. ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  34. ; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  35. ; ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  36. ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  37. ; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  38. ; ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  39. ; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  40. ; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  41. ;
  42. ; The modules in this file are included in the libraries, and may be replaced
  43. ; by any user-defined modules that define the PUBLIC symbol _program_start or
  44. ; a user defined start symbol.
  45. ; To override the cstartup defined in the library, simply add your modified
  46. ; version to the workbench project.
  47. ;
  48. ; The vector table is normally located at address 0.
  49. ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
  50. ; The name "__vector_table" has special meaning for C-SPY:
  51. ; it is where the SP start value is found, and the NVIC vector
  52. ; table register (VTOR) is initialized to this address if != 0.
  53. ;
  54. ; Cortex-M version
  55. ;
  56. MODULE ?cstartup
  57. ;; Forward declaration of sections.
  58. SECTION CSTACK:DATA:NOROOT(3)
  59. SECTION .intvec:CODE:NOROOT(2)
  60. EXTERN __iar_program_start
  61. EXTERN SystemInit
  62. PUBLIC __vector_table
  63. PUBLIC __vector_table_0x1c
  64. PUBLIC __Vectors
  65. PUBLIC __Vectors_End
  66. PUBLIC __Vectors_Size
  67. DATA
  68. __vector_table
  69. DCD sfe(CSTACK)
  70. DCD Reset_Handler
  71. DCD NMI_Handler
  72. DCD HardFault_Handler
  73. DCD MemManage_Handler
  74. DCD BusFault_Handler
  75. DCD UsageFault_Handler
  76. __vector_table_0x1c
  77. DCD 0
  78. DCD 0
  79. DCD 0
  80. DCD 0
  81. DCD SVC_Handler
  82. DCD DebugMon_Handler
  83. DCD 0
  84. DCD PendSV_Handler
  85. DCD SysTick_Handler
  86. ; External Interrupts
  87. DCD WDT_BOD_IRQHandler ; Windowed watchdog timer, Brownout detect
  88. DCD DMA0_IRQHandler ; DMA controller
  89. DCD GINT0_IRQHandler ; GPIO group 0
  90. DCD GINT1_IRQHandler ; GPIO group 1
  91. DCD PIN_INT0_IRQHandler ; Pin interrupt 0 or pattern match engine slice 0
  92. DCD PIN_INT1_IRQHandler ; Pin interrupt 1or pattern match engine slice 1
  93. DCD PIN_INT2_IRQHandler ; Pin interrupt 2 or pattern match engine slice 2
  94. DCD PIN_INT3_IRQHandler ; Pin interrupt 3 or pattern match engine slice 3
  95. DCD UTICK0_IRQHandler ; Micro-tick Timer
  96. DCD MRT0_IRQHandler ; Multi-rate timer
  97. DCD CTIMER0_IRQHandler ; Standard counter/timer CTIMER0
  98. DCD CTIMER1_IRQHandler ; Standard counter/timer CTIMER1
  99. DCD SCT0_IRQHandler ; SCTimer/PWM
  100. DCD CTIMER3_IRQHandler ; Standard counter/timer CTIMER3
  101. DCD FLEXCOMM0_IRQHandler ; Flexcomm Interface 0 (USART, SPI, I2C)
  102. DCD FLEXCOMM1_IRQHandler ; Flexcomm Interface 1 (USART, SPI, I2C)
  103. DCD FLEXCOMM2_IRQHandler ; Flexcomm Interface 2 (USART, SPI, I2C)
  104. DCD FLEXCOMM3_IRQHandler ; Flexcomm Interface 3 (USART, SPI, I2C)
  105. DCD FLEXCOMM4_IRQHandler ; Flexcomm Interface 4 (USART, SPI, I2C)
  106. DCD FLEXCOMM5_IRQHandler ; Flexcomm Interface 5 (USART, SPI, I2C)
  107. DCD FLEXCOMM6_IRQHandler ; Flexcomm Interface 6 (USART, SPI, I2C, I2S)
  108. DCD FLEXCOMM7_IRQHandler ; Flexcomm Interface 7 (USART, SPI, I2C, I2S)
  109. DCD ADC0_SEQA_IRQHandler ; ADC0 sequence A completion.
  110. DCD ADC0_SEQB_IRQHandler ; ADC0 sequence B completion.
  111. DCD ADC0_THCMP_IRQHandler ; ADC0 threshold compare and error.
  112. DCD DMIC0_IRQHandler ; Digital microphone and DMIC subsystem
  113. DCD HWVAD0_IRQHandler ; Hardware Voice Activity Detector
  114. DCD USB0_NEEDCLK_IRQHandler ; USB Activity Wake-up Interrupt
  115. DCD USB0_IRQHandler ; USB device
  116. DCD RTC_IRQHandler ; RTC alarm and wake-up interrupts
  117. DCD IOH_IRQHandler ; IOH
  118. DCD MAILBOX_IRQHandler ; Mailbox interrupt (present on selected devices)
  119. DCD PIN_INT4_IRQHandler ; Pin interrupt 4 or pattern match engine slice 4 int
  120. DCD PIN_INT5_IRQHandler ; Pin interrupt 5 or pattern match engine slice 5 int
  121. DCD PIN_INT6_IRQHandler ; Pin interrupt 6 or pattern match engine slice 6 int
  122. DCD PIN_INT7_IRQHandler ; Pin interrupt 7 or pattern match engine slice 7 int
  123. DCD CTIMER2_IRQHandler ; Standard counter/timer CTIMER2
  124. DCD CTIMER4_IRQHandler ; Standard counter/timer CTIMER4
  125. DCD Reserved54_IRQHandler ; Reserved interrupt
  126. DCD SPIFI0_IRQHandler ; SPI flash interface
  127. __Vectors_End
  128. ; Code Read Protection Level (CRP)
  129. ; <0xFFFFFFFF=> Disabled
  130. ; <0x4E697370=> NO_ISP
  131. ; <0x12345678=> CRP1
  132. ; <0x87654321=> CRP2
  133. ; <0x43218765=> CRP3
  134. #if !defined NO_CRP
  135. SECTION .crp:CODE
  136. __CRP
  137. DCD 0xFFFFFFFF
  138. __CRP_End
  139. #endif
  140. __Vectors EQU __vector_table
  141. __Vectors_Size EQU __Vectors_End - __Vectors
  142. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  143. ;;
  144. ;; Default interrupt handlers.
  145. ;;
  146. SECTION .intvec:CODE:NOROOT(2)
  147. #if !defined(SLAVEBOOT)
  148. DATA
  149. cpu_id EQU 0xE000ED00 ; CPUID Base Register (System control block register)
  150. cpu_ctrl EQU 0x40000800
  151. coproc_boot EQU 0x40000804
  152. coproc_stack EQU 0x40000808
  153. rel_vals
  154. DC32 cpu_id, cpu_ctrl, coproc_boot, coproc_stack
  155. DC16 0xFFF, 0xC24
  156. #endif
  157. THUMB
  158. PUBWEAK Reset_Handler
  159. SECTION .text:CODE:REORDER:NOROOT(2)
  160. ; Reset Handler - shared for both cores
  161. Reset_Handler
  162. #if !defined(SLAVEBOOT)
  163. ; Both the M0+ and M4 core come via this shared startup code,
  164. ; but the M0+ and M4 core have different vector tables.
  165. ; Determine if the core executing this code is the master or
  166. ; the slave and handle each core state individually.
  167. shared_boot_entry
  168. LDR r6, =rel_vals
  169. MOVS r4, #0 ; Flag for slave core (0)
  170. MOVS r5, #1
  171. ; Determine which core (M0+ or M4) this code is running on
  172. ; r2 = (((*cpu_id) >> 4) & 0xFFF); (M4 core == 0xC24)
  173. get_current_core_id
  174. LDR r0, [r6, #0]
  175. LDR r1, [r0] ; r1 = CPU ID status
  176. LSRS r1, r1, #4 ; Right justify 12 CPU ID bits
  177. LDRH r2, [r6, #16] ; Mask for CPU ID bits
  178. ANDS r2, r1, r2 ; r2 = ARM COrtex CPU ID
  179. LDRH r3, [r6, #18] ; Mask for CPU ID bits
  180. CMP r3, r2 ; Core ID matches M4 identifier
  181. BNE get_master_status
  182. MOV r4, r5 ; Set flag for master core (1)
  183. ; Determine if M4 core is the master or slave
  184. ; r3 = ((*cpu_ctrl) & 1); (0 == m0+, 1 == M4)
  185. get_master_status
  186. LDR r0, [r6, #4]
  187. LDR r3, [r0] ; r3 = SYSCON co-processor CPU control status
  188. ANDS r3, r3, r5 ; r3 = (Bit 0: 1 = M4 is master, 0 = M4 is slave)
  189. ; Select boot based on selected master core and core ID
  190. select_boot
  191. EORS r3, r3, r4 ; r4 = (Bit 0: 0 = master, 1 = slave)
  192. BNE slave_boot
  193. B normal_boot
  194. ; Slave boot
  195. slave_boot
  196. LDR r0, [r6, #8]
  197. LDR r2, [r0] ; r1 = SYSCON co-processor boot address
  198. CMP r2, #0 ; Slave boot address = 0 (not set up)?
  199. BEQ cpu_sleep
  200. LDR r0, [r6, #12]
  201. LDR r1, [r0] ; r5 = SYSCON co-processor stack address
  202. MOV sp, r1 ; Update slave CPU stack pointer
  203. ; Be sure to update VTOR for the slave MCU to point to the
  204. ; slave vector table in boot memory
  205. BX r2 ; Jump to slave boot address
  206. ; Slave isn't yet setup for system boot from the master
  207. ; so sleep until the master sets it up and then reboots it
  208. cpu_sleep
  209. MOV sp, r5 ; Will force exception if something happens
  210. cpu_sleep_wfi
  211. WFI ; Sleep forever until master reboots
  212. B cpu_sleep_wfi
  213. #endif ; defined(SLAVEBOOT)
  214. ; Normal boot for master/slave
  215. normal_boot
  216. LDR r0, =SystemInit
  217. BLX r0
  218. LDR r0, =__iar_program_start
  219. BX r0
  220. PUBWEAK NMI_Handler
  221. SECTION .text:CODE:REORDER:NOROOT(1)
  222. NMI_Handler
  223. B .
  224. PUBWEAK HardFault_Handler
  225. SECTION .text:CODE:REORDER:NOROOT(1)
  226. HardFault_Handler
  227. B .
  228. PUBWEAK MemManage_Handler
  229. SECTION .text:CODE:REORDER:NOROOT(1)
  230. MemManage_Handler
  231. B .
  232. PUBWEAK BusFault_Handler
  233. SECTION .text:CODE:REORDER:NOROOT(1)
  234. BusFault_Handler
  235. B .
  236. PUBWEAK UsageFault_Handler
  237. SECTION .text:CODE:REORDER:NOROOT(1)
  238. UsageFault_Handler
  239. B .
  240. PUBWEAK SVC_Handler
  241. SECTION .text:CODE:REORDER:NOROOT(1)
  242. SVC_Handler
  243. B .
  244. PUBWEAK DebugMon_Handler
  245. SECTION .text:CODE:REORDER:NOROOT(1)
  246. DebugMon_Handler
  247. B .
  248. PUBWEAK PendSV_Handler
  249. SECTION .text:CODE:REORDER:NOROOT(1)
  250. PendSV_Handler
  251. B .
  252. PUBWEAK SysTick_Handler
  253. SECTION .text:CODE:REORDER:NOROOT(1)
  254. SysTick_Handler
  255. B .
  256. PUBWEAK WDT_BOD_IRQHandler
  257. PUBWEAK WDT_BOD_DriverIRQHandler
  258. SECTION .text:CODE:REORDER:NOROOT(2)
  259. WDT_BOD_IRQHandler
  260. LDR R0, =WDT_BOD_DriverIRQHandler
  261. BX R0
  262. PUBWEAK DMA0_IRQHandler
  263. PUBWEAK DMA0_DriverIRQHandler
  264. SECTION .text:CODE:REORDER:NOROOT(2)
  265. DMA0_IRQHandler
  266. LDR R0, =DMA0_DriverIRQHandler
  267. BX R0
  268. PUBWEAK GINT0_IRQHandler
  269. PUBWEAK GINT0_DriverIRQHandler
  270. SECTION .text:CODE:REORDER:NOROOT(2)
  271. GINT0_IRQHandler
  272. LDR R0, =GINT0_DriverIRQHandler
  273. BX R0
  274. PUBWEAK GINT1_IRQHandler
  275. PUBWEAK GINT1_DriverIRQHandler
  276. SECTION .text:CODE:REORDER:NOROOT(2)
  277. GINT1_IRQHandler
  278. LDR R0, =GINT1_DriverIRQHandler
  279. BX R0
  280. PUBWEAK PIN_INT0_IRQHandler
  281. PUBWEAK PIN_INT0_DriverIRQHandler
  282. SECTION .text:CODE:REORDER:NOROOT(2)
  283. PIN_INT0_IRQHandler
  284. LDR R0, =PIN_INT0_DriverIRQHandler
  285. BX R0
  286. PUBWEAK PIN_INT1_IRQHandler
  287. PUBWEAK PIN_INT1_DriverIRQHandler
  288. SECTION .text:CODE:REORDER:NOROOT(2)
  289. PIN_INT1_IRQHandler
  290. LDR R0, =PIN_INT1_DriverIRQHandler
  291. BX R0
  292. PUBWEAK PIN_INT2_IRQHandler
  293. PUBWEAK PIN_INT2_DriverIRQHandler
  294. SECTION .text:CODE:REORDER:NOROOT(2)
  295. PIN_INT2_IRQHandler
  296. LDR R0, =PIN_INT2_DriverIRQHandler
  297. BX R0
  298. PUBWEAK PIN_INT3_IRQHandler
  299. PUBWEAK PIN_INT3_DriverIRQHandler
  300. SECTION .text:CODE:REORDER:NOROOT(2)
  301. PIN_INT3_IRQHandler
  302. LDR R0, =PIN_INT3_DriverIRQHandler
  303. BX R0
  304. PUBWEAK UTICK0_IRQHandler
  305. PUBWEAK UTICK0_DriverIRQHandler
  306. SECTION .text:CODE:REORDER:NOROOT(2)
  307. UTICK0_IRQHandler
  308. LDR R0, =UTICK0_DriverIRQHandler
  309. BX R0
  310. PUBWEAK MRT0_IRQHandler
  311. PUBWEAK MRT0_DriverIRQHandler
  312. SECTION .text:CODE:REORDER:NOROOT(2)
  313. MRT0_IRQHandler
  314. LDR R0, =MRT0_DriverIRQHandler
  315. BX R0
  316. PUBWEAK CTIMER0_IRQHandler
  317. PUBWEAK CTIMER0_DriverIRQHandler
  318. SECTION .text:CODE:REORDER:NOROOT(2)
  319. CTIMER0_IRQHandler
  320. LDR R0, =CTIMER0_DriverIRQHandler
  321. BX R0
  322. PUBWEAK CTIMER1_IRQHandler
  323. PUBWEAK CTIMER1_DriverIRQHandler
  324. SECTION .text:CODE:REORDER:NOROOT(2)
  325. CTIMER1_IRQHandler
  326. LDR R0, =CTIMER1_DriverIRQHandler
  327. BX R0
  328. PUBWEAK SCT0_IRQHandler
  329. PUBWEAK SCT0_DriverIRQHandler
  330. SECTION .text:CODE:REORDER:NOROOT(2)
  331. SCT0_IRQHandler
  332. LDR R0, =SCT0_DriverIRQHandler
  333. BX R0
  334. PUBWEAK CTIMER3_IRQHandler
  335. PUBWEAK CTIMER3_DriverIRQHandler
  336. SECTION .text:CODE:REORDER:NOROOT(2)
  337. CTIMER3_IRQHandler
  338. LDR R0, =CTIMER3_DriverIRQHandler
  339. BX R0
  340. PUBWEAK FLEXCOMM0_IRQHandler
  341. PUBWEAK FLEXCOMM0_DriverIRQHandler
  342. SECTION .text:CODE:REORDER:NOROOT(2)
  343. FLEXCOMM0_IRQHandler
  344. LDR R0, =FLEXCOMM0_DriverIRQHandler
  345. BX R0
  346. PUBWEAK FLEXCOMM1_IRQHandler
  347. PUBWEAK FLEXCOMM1_DriverIRQHandler
  348. SECTION .text:CODE:REORDER:NOROOT(2)
  349. FLEXCOMM1_IRQHandler
  350. LDR R0, =FLEXCOMM1_DriverIRQHandler
  351. BX R0
  352. PUBWEAK FLEXCOMM2_IRQHandler
  353. PUBWEAK FLEXCOMM2_DriverIRQHandler
  354. SECTION .text:CODE:REORDER:NOROOT(2)
  355. FLEXCOMM2_IRQHandler
  356. LDR R0, =FLEXCOMM2_DriverIRQHandler
  357. BX R0
  358. PUBWEAK FLEXCOMM3_IRQHandler
  359. PUBWEAK FLEXCOMM3_DriverIRQHandler
  360. SECTION .text:CODE:REORDER:NOROOT(2)
  361. FLEXCOMM3_IRQHandler
  362. LDR R0, =FLEXCOMM3_DriverIRQHandler
  363. BX R0
  364. PUBWEAK FLEXCOMM4_IRQHandler
  365. PUBWEAK FLEXCOMM4_DriverIRQHandler
  366. SECTION .text:CODE:REORDER:NOROOT(2)
  367. FLEXCOMM4_IRQHandler
  368. LDR R0, =FLEXCOMM4_DriverIRQHandler
  369. BX R0
  370. PUBWEAK FLEXCOMM5_IRQHandler
  371. PUBWEAK FLEXCOMM5_DriverIRQHandler
  372. SECTION .text:CODE:REORDER:NOROOT(2)
  373. FLEXCOMM5_IRQHandler
  374. LDR R0, =FLEXCOMM5_DriverIRQHandler
  375. BX R0
  376. PUBWEAK FLEXCOMM6_IRQHandler
  377. PUBWEAK FLEXCOMM6_DriverIRQHandler
  378. SECTION .text:CODE:REORDER:NOROOT(2)
  379. FLEXCOMM6_IRQHandler
  380. LDR R0, =FLEXCOMM6_DriverIRQHandler
  381. BX R0
  382. PUBWEAK FLEXCOMM7_IRQHandler
  383. PUBWEAK FLEXCOMM7_DriverIRQHandler
  384. SECTION .text:CODE:REORDER:NOROOT(2)
  385. FLEXCOMM7_IRQHandler
  386. LDR R0, =FLEXCOMM7_DriverIRQHandler
  387. BX R0
  388. PUBWEAK ADC0_SEQA_IRQHandler
  389. PUBWEAK ADC0_SEQA_DriverIRQHandler
  390. SECTION .text:CODE:REORDER:NOROOT(2)
  391. ADC0_SEQA_IRQHandler
  392. LDR R0, =ADC0_SEQA_DriverIRQHandler
  393. BX R0
  394. PUBWEAK ADC0_SEQB_IRQHandler
  395. PUBWEAK ADC0_SEQB_DriverIRQHandler
  396. SECTION .text:CODE:REORDER:NOROOT(2)
  397. ADC0_SEQB_IRQHandler
  398. LDR R0, =ADC0_SEQB_DriverIRQHandler
  399. BX R0
  400. PUBWEAK ADC0_THCMP_IRQHandler
  401. PUBWEAK ADC0_THCMP_DriverIRQHandler
  402. SECTION .text:CODE:REORDER:NOROOT(2)
  403. ADC0_THCMP_IRQHandler
  404. LDR R0, =ADC0_THCMP_DriverIRQHandler
  405. BX R0
  406. PUBWEAK DMIC0_IRQHandler
  407. PUBWEAK DMIC0_DriverIRQHandler
  408. SECTION .text:CODE:REORDER:NOROOT(2)
  409. DMIC0_IRQHandler
  410. LDR R0, =DMIC0_DriverIRQHandler
  411. BX R0
  412. PUBWEAK HWVAD0_IRQHandler
  413. PUBWEAK HWVAD0_DriverIRQHandler
  414. SECTION .text:CODE:REORDER:NOROOT(2)
  415. HWVAD0_IRQHandler
  416. LDR R0, =HWVAD0_DriverIRQHandler
  417. BX R0
  418. PUBWEAK USB0_NEEDCLK_IRQHandler
  419. PUBWEAK USB0_NEEDCLK_DriverIRQHandler
  420. SECTION .text:CODE:REORDER:NOROOT(2)
  421. USB0_NEEDCLK_IRQHandler
  422. LDR R0, =USB0_NEEDCLK_DriverIRQHandler
  423. BX R0
  424. PUBWEAK USB0_IRQHandler
  425. PUBWEAK USB0_DriverIRQHandler
  426. SECTION .text:CODE:REORDER:NOROOT(2)
  427. USB0_IRQHandler
  428. LDR R0, =USB0_DriverIRQHandler
  429. BX R0
  430. PUBWEAK RTC_IRQHandler
  431. PUBWEAK RTC_DriverIRQHandler
  432. SECTION .text:CODE:REORDER:NOROOT(2)
  433. RTC_IRQHandler
  434. LDR R0, =RTC_DriverIRQHandler
  435. BX R0
  436. PUBWEAK IOH_IRQHandler
  437. PUBWEAK IOH_DriverIRQHandler
  438. SECTION .text:CODE:REORDER:NOROOT(2)
  439. IOH_IRQHandler
  440. LDR R0, =IOH_DriverIRQHandler
  441. BX R0
  442. PUBWEAK MAILBOX_IRQHandler
  443. PUBWEAK MAILBOX_DriverIRQHandler
  444. SECTION .text:CODE:REORDER:NOROOT(2)
  445. MAILBOX_IRQHandler
  446. LDR R0, =MAILBOX_DriverIRQHandler
  447. BX R0
  448. PUBWEAK PIN_INT4_IRQHandler
  449. PUBWEAK PIN_INT4_DriverIRQHandler
  450. SECTION .text:CODE:REORDER:NOROOT(2)
  451. PIN_INT4_IRQHandler
  452. LDR R0, =PIN_INT4_DriverIRQHandler
  453. BX R0
  454. PUBWEAK PIN_INT5_IRQHandler
  455. PUBWEAK PIN_INT5_DriverIRQHandler
  456. SECTION .text:CODE:REORDER:NOROOT(2)
  457. PIN_INT5_IRQHandler
  458. LDR R0, =PIN_INT5_DriverIRQHandler
  459. BX R0
  460. PUBWEAK PIN_INT6_IRQHandler
  461. PUBWEAK PIN_INT6_DriverIRQHandler
  462. SECTION .text:CODE:REORDER:NOROOT(2)
  463. PIN_INT6_IRQHandler
  464. LDR R0, =PIN_INT6_DriverIRQHandler
  465. BX R0
  466. PUBWEAK PIN_INT7_IRQHandler
  467. PUBWEAK PIN_INT7_DriverIRQHandler
  468. SECTION .text:CODE:REORDER:NOROOT(2)
  469. PIN_INT7_IRQHandler
  470. LDR R0, =PIN_INT7_DriverIRQHandler
  471. BX R0
  472. PUBWEAK CTIMER2_IRQHandler
  473. PUBWEAK CTIMER2_DriverIRQHandler
  474. SECTION .text:CODE:REORDER:NOROOT(2)
  475. CTIMER2_IRQHandler
  476. LDR R0, =CTIMER2_DriverIRQHandler
  477. BX R0
  478. PUBWEAK CTIMER4_IRQHandler
  479. PUBWEAK CTIMER4_DriverIRQHandler
  480. SECTION .text:CODE:REORDER:NOROOT(2)
  481. CTIMER4_IRQHandler
  482. LDR R0, =CTIMER4_DriverIRQHandler
  483. BX R0
  484. PUBWEAK Reserved54_IRQHandler
  485. PUBWEAK Reserved54_DriverIRQHandler
  486. SECTION .text:CODE:REORDER:NOROOT(2)
  487. Reserved54_IRQHandler
  488. LDR R0, =Reserved54_DriverIRQHandler
  489. BX R0
  490. PUBWEAK SPIFI0_IRQHandler
  491. PUBWEAK SPIFI0_DriverIRQHandler
  492. SECTION .text:CODE:REORDER:NOROOT(2)
  493. SPIFI0_IRQHandler
  494. LDR R0, =SPIFI0_DriverIRQHandler
  495. BX R0
  496. WDT_BOD_DriverIRQHandler
  497. DMA0_DriverIRQHandler
  498. GINT0_DriverIRQHandler
  499. GINT1_DriverIRQHandler
  500. PIN_INT0_DriverIRQHandler
  501. PIN_INT1_DriverIRQHandler
  502. PIN_INT2_DriverIRQHandler
  503. PIN_INT3_DriverIRQHandler
  504. UTICK0_DriverIRQHandler
  505. MRT0_DriverIRQHandler
  506. CTIMER0_DriverIRQHandler
  507. CTIMER1_DriverIRQHandler
  508. SCT0_DriverIRQHandler
  509. CTIMER3_DriverIRQHandler
  510. FLEXCOMM0_DriverIRQHandler
  511. FLEXCOMM1_DriverIRQHandler
  512. FLEXCOMM2_DriverIRQHandler
  513. FLEXCOMM3_DriverIRQHandler
  514. FLEXCOMM4_DriverIRQHandler
  515. FLEXCOMM5_DriverIRQHandler
  516. FLEXCOMM6_DriverIRQHandler
  517. FLEXCOMM7_DriverIRQHandler
  518. ADC0_SEQA_DriverIRQHandler
  519. ADC0_SEQB_DriverIRQHandler
  520. ADC0_THCMP_DriverIRQHandler
  521. DMIC0_DriverIRQHandler
  522. HWVAD0_DriverIRQHandler
  523. USB0_NEEDCLK_DriverIRQHandler
  524. USB0_DriverIRQHandler
  525. RTC_DriverIRQHandler
  526. IOH_DriverIRQHandler
  527. MAILBOX_DriverIRQHandler
  528. PIN_INT4_DriverIRQHandler
  529. PIN_INT5_DriverIRQHandler
  530. PIN_INT6_DriverIRQHandler
  531. PIN_INT7_DriverIRQHandler
  532. CTIMER2_DriverIRQHandler
  533. CTIMER4_DriverIRQHandler
  534. Reserved54_DriverIRQHandler
  535. SPIFI0_DriverIRQHandler
  536. DefaultISR
  537. B .
  538. END