aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/ext/mcux-sdk/devices/LPC5528/mcuxpresso/startup_lpc5528.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/ext/mcux-sdk/devices/LPC5528/mcuxpresso/startup_lpc5528.cpp')
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC5528/mcuxpresso/startup_lpc5528.cpp748
1 files changed, 748 insertions, 0 deletions
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC5528/mcuxpresso/startup_lpc5528.cpp b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC5528/mcuxpresso/startup_lpc5528.cpp
new file mode 100644
index 000000000..e4ae6b9e5
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC5528/mcuxpresso/startup_lpc5528.cpp
@@ -0,0 +1,748 @@
1//*****************************************************************************
2// LPC5528_cm33_core0 startup code for use with MCUXpresso IDE
3//
4// Version : 160420
5//*****************************************************************************
6//
7// Copyright 2016-2020 NXP
8// All rights reserved.
9//
10// SPDX-License-Identifier: BSD-3-Clause
11//*****************************************************************************
12
13#if defined (DEBUG)
14#pragma GCC push_options
15#pragma GCC optimize ("Og")
16#endif // (DEBUG)
17
18#if defined (__cplusplus)
19#ifdef __REDLIB__
20#error Redlib does not support C++
21#else
22//*****************************************************************************
23//
24// The entry point for the C++ library startup
25//
26//*****************************************************************************
27extern "C" {
28 extern void __libc_init_array(void);
29}
30#endif
31#endif
32
33#define WEAK __attribute__ ((weak))
34#define WEAK_AV __attribute__ ((weak, section(".after_vectors")))
35#define ALIAS(f) __attribute__ ((weak, alias (#f)))
36
37//*****************************************************************************
38#if defined (__cplusplus)
39extern "C" {
40#endif
41
42//*****************************************************************************
43// Variable to store CRP value in. Will be placed automatically
44// by the linker when "Enable Code Read Protect" selected.
45// See crp.h header for more information
46//*****************************************************************************
47//*****************************************************************************
48// Declaration of external SystemInit function
49//*****************************************************************************
50#if defined (__USE_CMSIS)
51extern void SystemInit(void);
52#endif // (__USE_CMSIS)
53
54//*****************************************************************************
55// Forward declaration of the core exception handlers.
56// When the application defines a handler (with the same name), this will
57// automatically take precedence over these weak definitions.
58// If your application is a C++ one, then any interrupt handlers defined
59// in C++ files within in your main application will need to have C linkage
60// rather than C++ linkage. To do this, make sure that you are using extern "C"
61// { .... } around the interrupt handler within your main application code.
62//*****************************************************************************
63 void ResetISR(void);
64WEAK void NMI_Handler(void);
65WEAK void HardFault_Handler(void);
66WEAK void MemManage_Handler(void);
67WEAK void BusFault_Handler(void);
68WEAK void UsageFault_Handler(void);
69WEAK void SecureFault_Handler(void);
70WEAK void SVC_Handler(void);
71WEAK void DebugMon_Handler(void);
72WEAK void PendSV_Handler(void);
73WEAK void SysTick_Handler(void);
74WEAK void IntDefaultHandler(void);
75
76//*****************************************************************************
77// Forward declaration of the application IRQ handlers. When the application
78// defines a handler (with the same name), this will automatically take
79// precedence over weak definitions below
80//*****************************************************************************
81WEAK void WDT_BOD_IRQHandler(void);
82WEAK void DMA0_IRQHandler(void);
83WEAK void GINT0_IRQHandler(void);
84WEAK void GINT1_IRQHandler(void);
85WEAK void PIN_INT0_IRQHandler(void);
86WEAK void PIN_INT1_IRQHandler(void);
87WEAK void PIN_INT2_IRQHandler(void);
88WEAK void PIN_INT3_IRQHandler(void);
89WEAK void UTICK0_IRQHandler(void);
90WEAK void MRT0_IRQHandler(void);
91WEAK void CTIMER0_IRQHandler(void);
92WEAK void CTIMER1_IRQHandler(void);
93WEAK void SCT0_IRQHandler(void);
94WEAK void CTIMER3_IRQHandler(void);
95WEAK void FLEXCOMM0_IRQHandler(void);
96WEAK void FLEXCOMM1_IRQHandler(void);
97WEAK void FLEXCOMM2_IRQHandler(void);
98WEAK void FLEXCOMM3_IRQHandler(void);
99WEAK void FLEXCOMM4_IRQHandler(void);
100WEAK void FLEXCOMM5_IRQHandler(void);
101WEAK void FLEXCOMM6_IRQHandler(void);
102WEAK void FLEXCOMM7_IRQHandler(void);
103WEAK void ADC0_IRQHandler(void);
104WEAK void Reserved39_IRQHandler(void);
105WEAK void ACMP_IRQHandler(void);
106WEAK void Reserved41_IRQHandler(void);
107WEAK void Reserved42_IRQHandler(void);
108WEAK void USB0_NEEDCLK_IRQHandler(void);
109WEAK void USB0_IRQHandler(void);
110WEAK void RTC_IRQHandler(void);
111WEAK void Reserved46_IRQHandler(void);
112WEAK void Reserved47_IRQHandler(void);
113WEAK void PIN_INT4_IRQHandler(void);
114WEAK void PIN_INT5_IRQHandler(void);
115WEAK void PIN_INT6_IRQHandler(void);
116WEAK void PIN_INT7_IRQHandler(void);
117WEAK void CTIMER2_IRQHandler(void);
118WEAK void CTIMER4_IRQHandler(void);
119WEAK void OS_EVENT_IRQHandler(void);
120WEAK void Reserved55_IRQHandler(void);
121WEAK void Reserved56_IRQHandler(void);
122WEAK void Reserved57_IRQHandler(void);
123WEAK void SDIO_IRQHandler(void);
124WEAK void Reserved59_IRQHandler(void);
125WEAK void Reserved60_IRQHandler(void);
126WEAK void Reserved61_IRQHandler(void);
127WEAK void USB1_PHY_IRQHandler(void);
128WEAK void USB1_IRQHandler(void);
129WEAK void USB1_NEEDCLK_IRQHandler(void);
130WEAK void SEC_HYPERVISOR_CALL_IRQHandler(void);
131WEAK void SEC_GPIO_INT0_IRQ0_IRQHandler(void);
132WEAK void SEC_GPIO_INT0_IRQ1_IRQHandler(void);
133WEAK void PLU_IRQHandler(void);
134WEAK void SEC_VIO_IRQHandler(void);
135WEAK void Reserved70_IRQHandler(void);
136WEAK void CASER_IRQHandler(void);
137WEAK void Reserved72_IRQHandler(void);
138WEAK void PQ_IRQHandler(void);
139WEAK void DMA1_IRQHandler(void);
140WEAK void FLEXCOMM8_IRQHandler(void);
141
142//*****************************************************************************
143// Forward declaration of the driver IRQ handlers. These are aliased
144// to the IntDefaultHandler, which is a 'forever' loop. When the driver
145// defines a handler (with the same name), this will automatically take
146// precedence over these weak definitions
147//*****************************************************************************
148void WDT_BOD_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
149void DMA0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
150void GINT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
151void GINT1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
152void PIN_INT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
153void PIN_INT1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
154void PIN_INT2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
155void PIN_INT3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
156void UTICK0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
157void MRT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
158void CTIMER0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
159void CTIMER1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
160void SCT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
161void CTIMER3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
162void FLEXCOMM0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
163void FLEXCOMM1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
164void FLEXCOMM2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
165void FLEXCOMM3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
166void FLEXCOMM4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
167void FLEXCOMM5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
168void FLEXCOMM6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
169void FLEXCOMM7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
170void ADC0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
171void Reserved39_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
172void ACMP_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
173void Reserved41_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
174void Reserved42_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
175void USB0_NEEDCLK_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
176void USB0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
177void RTC_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
178void Reserved46_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
179void Reserved47_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
180void PIN_INT4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
181void PIN_INT5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
182void PIN_INT6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
183void PIN_INT7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
184void CTIMER2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
185void CTIMER4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
186void OS_EVENT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
187void Reserved55_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
188void Reserved56_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
189void Reserved57_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
190void SDIO_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
191void Reserved59_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
192void Reserved60_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
193void Reserved61_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
194void USB1_PHY_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
195void USB1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
196void USB1_NEEDCLK_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
197void SEC_HYPERVISOR_CALL_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
198void SEC_GPIO_INT0_IRQ0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
199void SEC_GPIO_INT0_IRQ1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
200void PLU_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
201void SEC_VIO_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
202void Reserved70_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
203void CASER_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
204void Reserved72_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
205void PQ_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
206void DMA1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
207void FLEXCOMM8_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
208
209//*****************************************************************************
210// The entry point for the application.
211// __main() is the entry point for Redlib based applications
212// main() is the entry point for Newlib based applications
213//*****************************************************************************
214#if defined (__REDLIB__)
215extern void __main(void);
216#endif
217extern int main(void);
218
219//*****************************************************************************
220// External declaration for the pointer to the stack top from the Linker Script
221//*****************************************************************************
222extern void _vStackTop(void);
223//*****************************************************************************
224// External declaration for LPC MCU vector table checksum from Linker Script
225//*****************************************************************************
226WEAK extern void __valid_user_code_checksum();
227
228//*****************************************************************************
229//*****************************************************************************
230#if defined (__cplusplus)
231} // extern "C"
232#endif
233//*****************************************************************************
234// The vector table.
235// This relies on the linker script to place at correct location in memory.
236//*****************************************************************************
237
238
239
240extern void (* const g_pfnVectors[])(void);
241extern void * __Vectors __attribute__ ((alias ("g_pfnVectors")));
242
243__attribute__ ((used, section(".isr_vector")))
244void (* const g_pfnVectors[])(void) = {
245 // Core Level - CM33
246 &_vStackTop, // The initial stack pointer
247 ResetISR, // The reset handler
248 NMI_Handler, // The NMI handler
249 HardFault_Handler, // The hard fault handler
250 MemManage_Handler, // The MPU fault handler
251 BusFault_Handler, // The bus fault handler
252 UsageFault_Handler, // The usage fault handler
253 SecureFault_Handler, // The secure fault handler
254 0, // ECRP
255 0, // Reserved
256 0, // Reserved
257 SVC_Handler, // SVCall handler
258 DebugMon_Handler, // Debug monitor handler
259 0, // Reserved
260 PendSV_Handler, // The PendSV handler
261 SysTick_Handler, // The SysTick handler
262
263 // Chip Level - LPC5528_cm33_core0
264 WDT_BOD_IRQHandler, // 16: Windowed watchdog timer, Brownout detect, Flash interrupt
265 DMA0_IRQHandler, // 17: DMA0 controller
266 GINT0_IRQHandler, // 18: GPIO group 0
267 GINT1_IRQHandler, // 19: GPIO group 1
268 PIN_INT0_IRQHandler, // 20: Pin interrupt 0 or pattern match engine slice 0
269 PIN_INT1_IRQHandler, // 21: Pin interrupt 1or pattern match engine slice 1
270 PIN_INT2_IRQHandler, // 22: Pin interrupt 2 or pattern match engine slice 2
271 PIN_INT3_IRQHandler, // 23: Pin interrupt 3 or pattern match engine slice 3
272 UTICK0_IRQHandler, // 24: Micro-tick Timer
273 MRT0_IRQHandler, // 25: Multi-rate timer
274 CTIMER0_IRQHandler, // 26: Standard counter/timer CTIMER0
275 CTIMER1_IRQHandler, // 27: Standard counter/timer CTIMER1
276 SCT0_IRQHandler, // 28: SCTimer/PWM
277 CTIMER3_IRQHandler, // 29: Standard counter/timer CTIMER3
278 FLEXCOMM0_IRQHandler, // 30: Flexcomm Interface 0 (USART, SPI, I2C, I2S, FLEXCOMM)
279 FLEXCOMM1_IRQHandler, // 31: Flexcomm Interface 1 (USART, SPI, I2C, I2S, FLEXCOMM)
280 FLEXCOMM2_IRQHandler, // 32: Flexcomm Interface 2 (USART, SPI, I2C, I2S, FLEXCOMM)
281 FLEXCOMM3_IRQHandler, // 33: Flexcomm Interface 3 (USART, SPI, I2C, I2S, FLEXCOMM)
282 FLEXCOMM4_IRQHandler, // 34: Flexcomm Interface 4 (USART, SPI, I2C, I2S, FLEXCOMM)
283 FLEXCOMM5_IRQHandler, // 35: Flexcomm Interface 5 (USART, SPI, I2C, I2S, FLEXCOMM)
284 FLEXCOMM6_IRQHandler, // 36: Flexcomm Interface 6 (USART, SPI, I2C, I2S, FLEXCOMM)
285 FLEXCOMM7_IRQHandler, // 37: Flexcomm Interface 7 (USART, SPI, I2C, I2S, FLEXCOMM)
286 ADC0_IRQHandler, // 38: ADC0
287 Reserved39_IRQHandler, // 39: Reserved interrupt
288 ACMP_IRQHandler, // 40: ACMP interrupts
289 Reserved41_IRQHandler, // 41: Reserved interrupt
290 Reserved42_IRQHandler, // 42: Reserved interrupt
291 USB0_NEEDCLK_IRQHandler, // 43: USB Activity Wake-up Interrupt
292 USB0_IRQHandler, // 44: USB device
293 RTC_IRQHandler, // 45: RTC alarm and wake-up interrupts
294 Reserved46_IRQHandler, // 46: Reserved interrupt
295 Reserved47_IRQHandler, // 47: Reserved interrupt
296 PIN_INT4_IRQHandler, // 48: Pin interrupt 4 or pattern match engine slice 4 int
297 PIN_INT5_IRQHandler, // 49: Pin interrupt 5 or pattern match engine slice 5 int
298 PIN_INT6_IRQHandler, // 50: Pin interrupt 6 or pattern match engine slice 6 int
299 PIN_INT7_IRQHandler, // 51: Pin interrupt 7 or pattern match engine slice 7 int
300 CTIMER2_IRQHandler, // 52: Standard counter/timer CTIMER2
301 CTIMER4_IRQHandler, // 53: Standard counter/timer CTIMER4
302 OS_EVENT_IRQHandler, // 54: OSEVTIMER0 and OSEVTIMER0_WAKEUP interrupts
303 Reserved55_IRQHandler, // 55: Reserved interrupt
304 Reserved56_IRQHandler, // 56: Reserved interrupt
305 Reserved57_IRQHandler, // 57: Reserved interrupt
306 SDIO_IRQHandler, // 58: SD/MMC
307 Reserved59_IRQHandler, // 59: Reserved interrupt
308 Reserved60_IRQHandler, // 60: Reserved interrupt
309 Reserved61_IRQHandler, // 61: Reserved interrupt
310 USB1_PHY_IRQHandler, // 62: USB1_PHY
311 USB1_IRQHandler, // 63: USB1 interrupt
312 USB1_NEEDCLK_IRQHandler, // 64: USB1 activity
313 SEC_HYPERVISOR_CALL_IRQHandler, // 65: SEC_HYPERVISOR_CALL interrupt
314 SEC_GPIO_INT0_IRQ0_IRQHandler, // 66: SEC_GPIO_INT0_IRQ0 interrupt
315 SEC_GPIO_INT0_IRQ1_IRQHandler, // 67: SEC_GPIO_INT0_IRQ1 interrupt
316 PLU_IRQHandler, // 68: PLU interrupt
317 SEC_VIO_IRQHandler, // 69: SEC_VIO interrupt
318 Reserved70_IRQHandler, // 70: Reserved interrupt
319 CASER_IRQHandler, // 71: CASPER interrupt
320 Reserved72_IRQHandler, // 72: Reserved interrupt
321 PQ_IRQHandler, // 73: PQ interrupt
322 DMA1_IRQHandler, // 74: DMA1 interrupt
323 FLEXCOMM8_IRQHandler, // 75: Flexcomm Interface 8 (SPI, , FLEXCOMM)
324
325
326}; /* End of g_pfnVectors */
327
328//*****************************************************************************
329// Functions to carry out the initialization of RW and BSS data sections. These
330// are written as separate functions rather than being inlined within the
331// ResetISR() function in order to cope with MCUs with multiple banks of
332// memory.
333//*****************************************************************************
334__attribute__ ((section(".after_vectors.init_data")))
335void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
336 unsigned int *pulDest = (unsigned int*) start;
337 unsigned int *pulSrc = (unsigned int*) romstart;
338 unsigned int loop;
339 for (loop = 0; loop < len; loop = loop + 4)
340 *pulDest++ = *pulSrc++;
341}
342
343__attribute__ ((section(".after_vectors.init_bss")))
344void bss_init(unsigned int start, unsigned int len) {
345 unsigned int *pulDest = (unsigned int*) start;
346 unsigned int loop;
347 for (loop = 0; loop < len; loop = loop + 4)
348 *pulDest++ = 0;
349}
350
351//*****************************************************************************
352// The following symbols are constructs generated by the linker, indicating
353// the location of various points in the "Global Section Table". This table is
354// created by the linker via the Code Red managed linker script mechanism. It
355// contains the load address, execution address and length of each RW data
356// section and the execution and length of each BSS (zero initialized) section.
357//*****************************************************************************
358extern unsigned int __data_section_table;
359extern unsigned int __data_section_table_end;
360extern unsigned int __bss_section_table;
361extern unsigned int __bss_section_table_end;
362
363//*****************************************************************************
364// Reset entry point for your code.
365// Sets up a simple runtime environment and initializes the C/C++
366// library.
367//*****************************************************************************
368__attribute__ ((section(".after_vectors.reset")))
369void ResetISR(void) {
370
371 // Disable interrupts
372 __asm volatile ("cpsid i");
373
374
375
376#if defined (__USE_CMSIS)
377// If __USE_CMSIS defined, then call CMSIS SystemInit code
378 SystemInit();
379
380#endif // (__USE_CMSIS)
381
382 //
383 // Copy the data sections from flash to SRAM.
384 //
385 unsigned int LoadAddr, ExeAddr, SectionLen;
386 unsigned int *SectionTableAddr;
387
388 // Load base address of Global Section Table
389 SectionTableAddr = &__data_section_table;
390
391 // Copy the data sections from flash to SRAM.
392 while (SectionTableAddr < &__data_section_table_end) {
393 LoadAddr = *SectionTableAddr++;
394 ExeAddr = *SectionTableAddr++;
395 SectionLen = *SectionTableAddr++;
396 data_init(LoadAddr, ExeAddr, SectionLen);
397 }
398
399 // At this point, SectionTableAddr = &__bss_section_table;
400 // Zero fill the bss segment
401 while (SectionTableAddr < &__bss_section_table_end) {
402 ExeAddr = *SectionTableAddr++;
403 SectionLen = *SectionTableAddr++;
404 bss_init(ExeAddr, SectionLen);
405 }
406
407
408#if !defined (__USE_CMSIS)
409// Assume that if __USE_CMSIS defined, then CMSIS SystemInit code
410// will setup the VTOR register
411
412 // Check to see if we are running the code from a non-zero
413 // address (eg RAM, external flash), in which case we need
414 // to modify the VTOR register to tell the CPU that the
415 // vector table is located at a non-0x0 address.
416 unsigned int * pSCB_VTOR = (unsigned int *) 0xE000ED08;
417 if ((unsigned int *)g_pfnVectors!=(unsigned int *) 0x00000000) {
418 *pSCB_VTOR = (unsigned int)g_pfnVectors;
419 }
420#endif // (__USE_CMSIS)
421#if defined (__cplusplus)
422 //
423 // Call C++ library initialisation
424 //
425 __libc_init_array();
426#endif
427
428 // Reenable interrupts
429 __asm volatile ("cpsie i");
430
431#if defined (__REDLIB__)
432 // Call the Redlib library, which in turn calls main()
433 __main();
434#else
435 main();
436#endif
437
438 //
439 // main() shouldn't return, but if it does, we'll just enter an infinite loop
440 //
441 while (1) {
442 ;
443 }
444}
445
446//*****************************************************************************
447// Default core exception handlers. Override the ones here by defining your own
448// handler routines in your application code.
449//*****************************************************************************
450WEAK_AV void NMI_Handler(void)
451{ while(1) {}
452}
453
454WEAK_AV void HardFault_Handler(void)
455{ while(1) {}
456}
457
458WEAK_AV void MemManage_Handler(void)
459{ while(1) {}
460}
461
462WEAK_AV void BusFault_Handler(void)
463{ while(1) {}
464}
465
466WEAK_AV void UsageFault_Handler(void)
467{ while(1) {}
468}
469
470WEAK_AV void SecureFault_Handler(void)
471{ while(1) {}
472}
473
474WEAK_AV void SVC_Handler(void)
475{ while(1) {}
476}
477
478WEAK_AV void DebugMon_Handler(void)
479{ while(1) {}
480}
481
482WEAK_AV void PendSV_Handler(void)
483{ while(1) {}
484}
485
486WEAK_AV void SysTick_Handler(void)
487{ while(1) {}
488}
489
490//*****************************************************************************
491// Processor ends up here if an unexpected interrupt occurs or a specific
492// handler is not present in the application code.
493//*****************************************************************************
494WEAK_AV void IntDefaultHandler(void)
495{ while(1) {}
496}
497
498//*****************************************************************************
499// Default application exception handlers. Override the ones here by defining
500// your own handler routines in your application code. These routines call
501// driver exception handlers or IntDefaultHandler() if no driver exception
502// handler is included.
503//*****************************************************************************
504WEAK void WDT_BOD_IRQHandler(void)
505{ WDT_BOD_DriverIRQHandler();
506}
507
508WEAK void DMA0_IRQHandler(void)
509{ DMA0_DriverIRQHandler();
510}
511
512WEAK void GINT0_IRQHandler(void)
513{ GINT0_DriverIRQHandler();
514}
515
516WEAK void GINT1_IRQHandler(void)
517{ GINT1_DriverIRQHandler();
518}
519
520WEAK void PIN_INT0_IRQHandler(void)
521{ PIN_INT0_DriverIRQHandler();
522}
523
524WEAK void PIN_INT1_IRQHandler(void)
525{ PIN_INT1_DriverIRQHandler();
526}
527
528WEAK void PIN_INT2_IRQHandler(void)
529{ PIN_INT2_DriverIRQHandler();
530}
531
532WEAK void PIN_INT3_IRQHandler(void)
533{ PIN_INT3_DriverIRQHandler();
534}
535
536WEAK void UTICK0_IRQHandler(void)
537{ UTICK0_DriverIRQHandler();
538}
539
540WEAK void MRT0_IRQHandler(void)
541{ MRT0_DriverIRQHandler();
542}
543
544WEAK void CTIMER0_IRQHandler(void)
545{ CTIMER0_DriverIRQHandler();
546}
547
548WEAK void CTIMER1_IRQHandler(void)
549{ CTIMER1_DriverIRQHandler();
550}
551
552WEAK void SCT0_IRQHandler(void)
553{ SCT0_DriverIRQHandler();
554}
555
556WEAK void CTIMER3_IRQHandler(void)
557{ CTIMER3_DriverIRQHandler();
558}
559
560WEAK void FLEXCOMM0_IRQHandler(void)
561{ FLEXCOMM0_DriverIRQHandler();
562}
563
564WEAK void FLEXCOMM1_IRQHandler(void)
565{ FLEXCOMM1_DriverIRQHandler();
566}
567
568WEAK void FLEXCOMM2_IRQHandler(void)
569{ FLEXCOMM2_DriverIRQHandler();
570}
571
572WEAK void FLEXCOMM3_IRQHandler(void)
573{ FLEXCOMM3_DriverIRQHandler();
574}
575
576WEAK void FLEXCOMM4_IRQHandler(void)
577{ FLEXCOMM4_DriverIRQHandler();
578}
579
580WEAK void FLEXCOMM5_IRQHandler(void)
581{ FLEXCOMM5_DriverIRQHandler();
582}
583
584WEAK void FLEXCOMM6_IRQHandler(void)
585{ FLEXCOMM6_DriverIRQHandler();
586}
587
588WEAK void FLEXCOMM7_IRQHandler(void)
589{ FLEXCOMM7_DriverIRQHandler();
590}
591
592WEAK void ADC0_IRQHandler(void)
593{ ADC0_DriverIRQHandler();
594}
595
596WEAK void Reserved39_IRQHandler(void)
597{ Reserved39_DriverIRQHandler();
598}
599
600WEAK void ACMP_IRQHandler(void)
601{ ACMP_DriverIRQHandler();
602}
603
604WEAK void Reserved41_IRQHandler(void)
605{ Reserved41_DriverIRQHandler();
606}
607
608WEAK void Reserved42_IRQHandler(void)
609{ Reserved42_DriverIRQHandler();
610}
611
612WEAK void USB0_NEEDCLK_IRQHandler(void)
613{ USB0_NEEDCLK_DriverIRQHandler();
614}
615
616WEAK void USB0_IRQHandler(void)
617{ USB0_DriverIRQHandler();
618}
619
620WEAK void RTC_IRQHandler(void)
621{ RTC_DriverIRQHandler();
622}
623
624WEAK void Reserved46_IRQHandler(void)
625{ Reserved46_DriverIRQHandler();
626}
627
628WEAK void Reserved47_IRQHandler(void)
629{ Reserved47_DriverIRQHandler();
630}
631
632WEAK void PIN_INT4_IRQHandler(void)
633{ PIN_INT4_DriverIRQHandler();
634}
635
636WEAK void PIN_INT5_IRQHandler(void)
637{ PIN_INT5_DriverIRQHandler();
638}
639
640WEAK void PIN_INT6_IRQHandler(void)
641{ PIN_INT6_DriverIRQHandler();
642}
643
644WEAK void PIN_INT7_IRQHandler(void)
645{ PIN_INT7_DriverIRQHandler();
646}
647
648WEAK void CTIMER2_IRQHandler(void)
649{ CTIMER2_DriverIRQHandler();
650}
651
652WEAK void CTIMER4_IRQHandler(void)
653{ CTIMER4_DriverIRQHandler();
654}
655
656WEAK void OS_EVENT_IRQHandler(void)
657{ OS_EVENT_DriverIRQHandler();
658}
659
660WEAK void Reserved55_IRQHandler(void)
661{ Reserved55_DriverIRQHandler();
662}
663
664WEAK void Reserved56_IRQHandler(void)
665{ Reserved56_DriverIRQHandler();
666}
667
668WEAK void Reserved57_IRQHandler(void)
669{ Reserved57_DriverIRQHandler();
670}
671
672WEAK void SDIO_IRQHandler(void)
673{ SDIO_DriverIRQHandler();
674}
675
676WEAK void Reserved59_IRQHandler(void)
677{ Reserved59_DriverIRQHandler();
678}
679
680WEAK void Reserved60_IRQHandler(void)
681{ Reserved60_DriverIRQHandler();
682}
683
684WEAK void Reserved61_IRQHandler(void)
685{ Reserved61_DriverIRQHandler();
686}
687
688WEAK void USB1_PHY_IRQHandler(void)
689{ USB1_PHY_DriverIRQHandler();
690}
691
692WEAK void USB1_IRQHandler(void)
693{ USB1_DriverIRQHandler();
694}
695
696WEAK void USB1_NEEDCLK_IRQHandler(void)
697{ USB1_NEEDCLK_DriverIRQHandler();
698}
699
700WEAK void SEC_HYPERVISOR_CALL_IRQHandler(void)
701{ SEC_HYPERVISOR_CALL_DriverIRQHandler();
702}
703
704WEAK void SEC_GPIO_INT0_IRQ0_IRQHandler(void)
705{ SEC_GPIO_INT0_IRQ0_DriverIRQHandler();
706}
707
708WEAK void SEC_GPIO_INT0_IRQ1_IRQHandler(void)
709{ SEC_GPIO_INT0_IRQ1_DriverIRQHandler();
710}
711
712WEAK void PLU_IRQHandler(void)
713{ PLU_DriverIRQHandler();
714}
715
716WEAK void SEC_VIO_IRQHandler(void)
717{ SEC_VIO_DriverIRQHandler();
718}
719
720WEAK void Reserved70_IRQHandler(void)
721{ Reserved70_DriverIRQHandler();
722}
723
724WEAK void CASER_IRQHandler(void)
725{ CASER_DriverIRQHandler();
726}
727
728WEAK void Reserved72_IRQHandler(void)
729{ Reserved72_DriverIRQHandler();
730}
731
732WEAK void PQ_IRQHandler(void)
733{ PQ_DriverIRQHandler();
734}
735
736WEAK void DMA1_IRQHandler(void)
737{ DMA1_DriverIRQHandler();
738}
739
740WEAK void FLEXCOMM8_IRQHandler(void)
741{ FLEXCOMM8_DriverIRQHandler();
742}
743
744//*****************************************************************************
745
746#if defined (DEBUG)
747#pragma GCC pop_options
748#endif // (DEBUG)