1 //*****************************************************************************
2 // RW612 startup code for use with MCUXpresso IDE
3 //
4 // Version : 011223
5 //*****************************************************************************
6 //
7 // Copyright 2016-2023 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 //*****************************************************************************
27 extern "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)
39 extern "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)
51 extern 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);
64 WEAK void NMI_Handler(void);
65 WEAK void HardFault_Handler(void);
66 WEAK void MemManage_Handler(void);
67 WEAK void BusFault_Handler(void);
68 WEAK void UsageFault_Handler(void);
69 WEAK void SecureFault_Handler(void);
70 WEAK void SVC_Handler(void);
71 WEAK void DebugMon_Handler(void);
72 WEAK void PendSV_Handler(void);
73 WEAK void SysTick_Handler(void);
74 WEAK 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 //*****************************************************************************
81 WEAK void WDT0_IRQHandler(void);
82 WEAK void DMA0_IRQHandler(void);
83 WEAK void GPIO_INTA_IRQHandler(void);
84 WEAK void GPIO_INTB_IRQHandler(void);
85 WEAK void PIN_INT0_IRQHandler(void);
86 WEAK void PIN_INT1_IRQHandler(void);
87 WEAK void PIN_INT2_IRQHandler(void);
88 WEAK void PIN_INT3_IRQHandler(void);
89 WEAK void UTICK_IRQHandler(void);
90 WEAK void MRT0_IRQHandler(void);
91 WEAK void CTIMER0_IRQHandler(void);
92 WEAK void CTIMER1_IRQHandler(void);
93 WEAK void SCT0_IRQHandler(void);
94 WEAK void CTIMER3_IRQHandler(void);
95 WEAK void FLEXCOMM0_IRQHandler(void);
96 WEAK void FLEXCOMM1_IRQHandler(void);
97 WEAK void FLEXCOMM2_IRQHandler(void);
98 WEAK void FLEXCOMM3_IRQHandler(void);
99 WEAK void Reserved34_IRQHandler(void);
100 WEAK void Reserved35_IRQHandler(void);
101 WEAK void FLEXCOMM14_IRQHandler(void);
102 WEAK void Reserved37_IRQHandler(void);
103 WEAK void Reserved38_IRQHandler(void);
104 WEAK void MRT1_IRQHandler(void);
105 WEAK void Reserved40_IRQHandler(void);
106 WEAK void DMIC0_IRQHandler(void);
107 WEAK void WFD_IRQHandler(void);
108 WEAK void HYPERVISOR_IRQHandler(void);
109 WEAK void SECUREVIOLATION_IRQHandler(void);
110 WEAK void HWVAD0_IRQHandler(void);
111 WEAK void Reserved46_IRQHandler(void);
112 WEAK void Reserved47_IRQHandler(void);
113 WEAK void RTC_IRQHandler(void);
114 WEAK void Reserved49_IRQHandler(void);
115 WEAK void Reserved50_IRQHandler(void);
116 WEAK void PIN_INT4_IRQHandler(void);
117 WEAK void PIN_INT5_IRQHandler(void);
118 WEAK void PIN_INT6_IRQHandler(void);
119 WEAK void PIN_INT7_IRQHandler(void);
120 WEAK void CTIMER2_IRQHandler(void);
121 WEAK void CTIMER4_IRQHandler(void);
122 WEAK void OS_EVENT_IRQHandler(void);
123 WEAK void FLEXSPI_IRQHandler(void);
124 WEAK void Reserved59_IRQHandler(void);
125 WEAK void Reserved60_IRQHandler(void);
126 WEAK void Reserved61_IRQHandler(void);
127 WEAK void SDU_IRQHandler(void);
128 WEAK void SGPIO_INTA_IRQHandler(void);
129 WEAK void SGPIO_INTB_IRQHandler(void);
130 WEAK void Reserved65_IRQHandler(void);
131 WEAK void USB_IRQHandler(void);
132 WEAK void Reserved67_IRQHandler(void);
133 WEAK void Reserved68_IRQHandler(void);
134 WEAK void Reserved69_IRQHandler(void);
135 WEAK void DMA1_IRQHandler(void);
136 WEAK void PUF_IRQHandler(void);
137 WEAK void POWERQUAD_IRQHandler(void);
138 WEAK void Reserved73_IRQHandler(void);
139 WEAK void Reserved74_IRQHandler(void);
140 WEAK void Reserved75_IRQHandler(void);
141 WEAK void Reserved76_IRQHandler(void);
142 WEAK void LCDIC_IRQHandler(void);
143 WEAK void CAPT_PULSE_IRQHandler(void);
144 WEAK void Reserved79_IRQHandler(void);
145 WEAK void WL_MCI_WAKEUP_DONE0_IRQHandler(void);
146 WEAK void WL_MCI_WAKEUP_DONE1_IRQHandler(void);
147 WEAK void WL_MCI_WAKEUP_DONE2_IRQHandler(void);
148 WEAK void WL_MCI_WAKEUP_DONE3_IRQHandler(void);
149 WEAK void WL_MCI_WAKEUP_DONE4_IRQHandler(void);
150 WEAK void WL_MCI_WAKEUP_DONE5_IRQHandler(void);
151 WEAK void WL_MCI_WAKEUP_DONE6_IRQHandler(void);
152 WEAK void WL_MCI_WAKEUP_DONE7_IRQHandler(void);
153 WEAK void WL_MCI_WAKEUP0_IRQHandler(void);
154 WEAK void WL_MCI_WAKEUP1_IRQHandler(void);
155 WEAK void WL_MCI_INT0_IRQHandler(void);
156 WEAK void WL_MCI_INT1_IRQHandler(void);
157 WEAK void WL_MCI_INT2_IRQHandler(void);
158 WEAK void WL_MCI_INT3_IRQHandler(void);
159 WEAK void WL_MCI_INT4_IRQHandler(void);
160 WEAK void WL_MCI_INT5_IRQHandler(void);
161 WEAK void WL_MCI_INT6_IRQHandler(void);
162 WEAK void WL_MCI_INT7_IRQHandler(void);
163 WEAK void BLE_MCI_WAKEUP_DONE0_IRQHandler(void);
164 WEAK void BLE_MCI_WAKEUP_DONE1_IRQHandler(void);
165 WEAK void BLE_MCI_WAKEUP_DONE2_IRQHandler(void);
166 WEAK void BLE_MCI_WAKEUP_DONE3_IRQHandler(void);
167 WEAK void BLE_MCI_WAKEUP_DONE4_IRQHandler(void);
168 WEAK void BLE_MCI_WAKEUP_DONE5_IRQHandler(void);
169 WEAK void BLE_MCI_WAKEUP_DONE6_IRQHandler(void);
170 WEAK void BLE_MCI_WAKEUP_DONE7_IRQHandler(void);
171 WEAK void BLE_MCI_WAKEUP0_IRQHandler(void);
172 WEAK void BLE_MCI_WAKEUP1_IRQHandler(void);
173 WEAK void BLE_MCI_INT0_IRQHandler(void);
174 WEAK void BLE_MCI_INT1_IRQHandler(void);
175 WEAK void BLE_MCI_INT2_IRQHandler(void);
176 WEAK void BLE_MCI_INT3_IRQHandler(void);
177 WEAK void BLE_MCI_INT4_IRQHandler(void);
178 WEAK void BLE_MCI_INT5_IRQHandler(void);
179 WEAK void BLE_MCI_INT6_IRQHandler(void);
180 WEAK void BLE_MCI_INT7_IRQHandler(void);
181 WEAK void PIN0_INT_IRQHandler(void);
182 WEAK void PIN1_INT_IRQHandler(void);
183 WEAK void ELS_IRQHandler(void);
184 WEAK void ELS_GDET_IRQ_IRQHandler(void);
185 WEAK void ELS_GDET_ERR_IRQHandler(void);
186 WEAK void PKC_IRQHandler(void);
187 WEAK void PKC_ERR_IRQHandler(void);
188 WEAK void CDOG_IRQHandler(void);
189 WEAK void GAU_GPDAC_INT_FUNC11_IRQHandler(void);
190 WEAK void GAU_ACOMP_INT_WKUP11_IRQHandler(void);
191 WEAK void GAU_ACOMP_INT_FUNC11_IRQHandler(void);
192 WEAK void GAU_GPADC1_INT_FUNC11_IRQHandler(void);
193 WEAK void GAU_GPADC0_INT_FUNC11_IRQHandler(void);
194 WEAK void USIM_IRQHandler(void);
195 WEAK void OCOTP_IRQHandler(void);
196 WEAK void ENET_IRQHandler(void);
197 WEAK void ENET_TIMER_IRQHandler(void);
198 WEAK void BOD_1_85_INT_IRQHandler(void);
199 WEAK void BOD_1_85_NEG_IRQHandler(void);
200 WEAK void ITRC_IRQHandler(void);
201 WEAK void BTU_HOST_TRIGGER0_IRQHandler(void);
202 WEAK void BTU_HOST_TRIGGER1_IRQHandler(void);
203 WEAK void BTU_HOST_TRIGGER2_IRQHandler(void);
204 WEAK void TRNG_IRQHandler(void);
205 WEAK void AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_IRQHandler(void);
206 WEAK void AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_IRQHandler(void);
207 WEAK void WL_ACC_INT_IRQHandler(void);
208 WEAK void BLE_ACC_INT_IRQHandler(void);
209 WEAK void GDMA_IRQHandler(void);
210 
211 //*****************************************************************************
212 // Forward declaration of the driver IRQ handlers. These are aliased
213 // to the IntDefaultHandler, which is a 'forever' loop. When the driver
214 // defines a handler (with the same name), this will automatically take
215 // precedence over these weak definitions
216 //*****************************************************************************
217 void WDT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
218 void DMA0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
219 void GPIO_INTA_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
220 void GPIO_INTB_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
221 void PIN_INT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
222 void PIN_INT1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
223 void PIN_INT2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
224 void PIN_INT3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
225 void UTICK_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
226 void MRT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
227 void CTIMER0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
228 void CTIMER1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
229 void SCT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
230 void CTIMER3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
231 void FLEXCOMM0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
232 void FLEXCOMM1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
233 void FLEXCOMM2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
234 void FLEXCOMM3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
235 void Reserved34_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
236 void Reserved35_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
237 void FLEXCOMM14_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
238 void Reserved37_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
239 void Reserved38_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
240 void MRT1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
241 void Reserved40_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
242 void DMIC0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
243 void WFD_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
244 void HYPERVISOR_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
245 void SECUREVIOLATION_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
246 void HWVAD0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
247 void Reserved46_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
248 void Reserved47_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
249 void RTC_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
250 void Reserved49_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
251 void Reserved50_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
252 void PIN_INT4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
253 void PIN_INT5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
254 void PIN_INT6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
255 void PIN_INT7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
256 void CTIMER2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
257 void CTIMER4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
258 void OS_EVENT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
259 void FLEXSPI_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
260 void Reserved59_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
261 void Reserved60_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
262 void Reserved61_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
263 void SDU_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
264 void SGPIO_INTA_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
265 void SGPIO_INTB_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
266 void Reserved65_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
267 void USB_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
268 void Reserved67_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
269 void Reserved68_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
270 void Reserved69_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
271 void DMA1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
272 void PUF_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
273 void POWERQUAD_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
274 void Reserved73_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
275 void Reserved74_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
276 void Reserved75_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
277 void Reserved76_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
278 void LCDIC_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
279 void CAPT_PULSE_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
280 void Reserved79_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
281 void WL_MCI_WAKEUP_DONE0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
282 void WL_MCI_WAKEUP_DONE1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
283 void WL_MCI_WAKEUP_DONE2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
284 void WL_MCI_WAKEUP_DONE3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
285 void WL_MCI_WAKEUP_DONE4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
286 void WL_MCI_WAKEUP_DONE5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
287 void WL_MCI_WAKEUP_DONE6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
288 void WL_MCI_WAKEUP_DONE7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
289 void WL_MCI_WAKEUP0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
290 void WL_MCI_WAKEUP1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
291 void WL_MCI_INT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
292 void WL_MCI_INT1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
293 void WL_MCI_INT2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
294 void WL_MCI_INT3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
295 void WL_MCI_INT4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
296 void WL_MCI_INT5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
297 void WL_MCI_INT6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
298 void WL_MCI_INT7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
299 void BLE_MCI_WAKEUP_DONE0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
300 void BLE_MCI_WAKEUP_DONE1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
301 void BLE_MCI_WAKEUP_DONE2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
302 void BLE_MCI_WAKEUP_DONE3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
303 void BLE_MCI_WAKEUP_DONE4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
304 void BLE_MCI_WAKEUP_DONE5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
305 void BLE_MCI_WAKEUP_DONE6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
306 void BLE_MCI_WAKEUP_DONE7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
307 void BLE_MCI_WAKEUP0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
308 void BLE_MCI_WAKEUP1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
309 void BLE_MCI_INT0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
310 void BLE_MCI_INT1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
311 void BLE_MCI_INT2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
312 void BLE_MCI_INT3_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
313 void BLE_MCI_INT4_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
314 void BLE_MCI_INT5_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
315 void BLE_MCI_INT6_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
316 void BLE_MCI_INT7_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
317 void PIN0_INT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
318 void PIN1_INT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
319 void ELS_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
320 void ELS_GDET_IRQ_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
321 void ELS_GDET_ERR_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
322 void PKC_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
323 void PKC_ERR_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
324 void CDOG_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
325 void GAU_GPDAC_INT_FUNC11_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
326 void GAU_ACOMP_INT_WKUP11_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
327 void GAU_ACOMP_INT_FUNC11_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
328 void GAU_GPADC1_INT_FUNC11_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
329 void GAU_GPADC0_INT_FUNC11_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
330 void USIM_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
331 void OCOTP_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
332 void ENET_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
333 void ENET_TIMER_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
334 void BOD_1_85_INT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
335 void BOD_1_85_NEG_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
336 void ITRC_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
337 void BTU_HOST_TRIGGER0_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
338 void BTU_HOST_TRIGGER1_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
339 void BTU_HOST_TRIGGER2_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
340 void TRNG_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
341 void AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
342 void AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
343 void WL_ACC_INT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
344 void BLE_ACC_INT_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
345 void GDMA_DriverIRQHandler(void) ALIAS(IntDefaultHandler);
346 
347 //*****************************************************************************
348 // The entry point for the application.
349 // __main() is the entry point for Redlib based applications
350 // main() is the entry point for Newlib based applications
351 //*****************************************************************************
352 #if defined (__REDLIB__)
353 extern void __main(void);
354 #endif
355 extern int main(void);
356 
357 //*****************************************************************************
358 // External declaration for the pointer to the stack top from the Linker Script
359 //*****************************************************************************
360 extern void _vStackTop(void);
361 extern void _image_size(void);
362 //*****************************************************************************
363 // External declaration for the pointer to the stack base from the Linker Script
364 //*****************************************************************************
365 extern void _vStackBase(void);
366 //*****************************************************************************
367 // External declaration for image type and load address from  Linker Script
368 //*****************************************************************************
369 WEAK extern void __imghdr_loadaddress();
370 WEAK extern void __imghdr_imagetype();
371 
372 //*****************************************************************************
373 #if defined (__cplusplus)
374 } // extern "C"
375 #endif
376 //*****************************************************************************
377 // The vector table.
378 // This relies on the linker script to place at correct location in memory.
379 //*****************************************************************************
380 
381 extern void (* const g_pfnVectors[])(void);
382 extern void * __Vectors __attribute__ ((alias ("g_pfnVectors")));
383 
384 __attribute__ ((used, section(".isr_vector")))
385 void (* const g_pfnVectors[])(void) = {
386     // Core Level - CM33
387     &_vStackTop,                       // The initial stack pointer
388     ResetISR,                          // The reset handler
389     NMI_Handler,                       // NMI Handler
390     HardFault_Handler,                 // Hard Fault Handler
391     MemManage_Handler,                 // MPU Fault Handler
392     BusFault_Handler,                  // Bus Fault Handler
393     UsageFault_Handler,                // Usage Fault Handler
394     SecureFault_Handler,               // Secure Fault Handler
395 #if (defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE & 0x2))
396     (void (*)())0x100000,                // Image length
397 #else
398     (void (*)())((unsigned)_image_size), // Image length
399 #endif
400     __imghdr_imagetype,                // Image type
401     0,                                 // Reserved
402     SVC_Handler,                       // SVCall Handler
403     DebugMon_Handler,                  // Debug Monitor Handler
404     (void (*)())g_pfnVectors,          // Image load address
405     PendSV_Handler,                    // PendSV Handler
406     SysTick_Handler,                   // SysTick Handler
407 
408     // Chip Level - RW612
409     WDT0_IRQHandler,                          // 16 : Windowed watchdog timer 0 (CM33 watchdog)
410     DMA0_IRQHandler,                          // 17 : DMA controller 0 (secure or CM33 DMA)
411     GPIO_INTA_IRQHandler,                         // 18 : GPIO interrupt A
412     GPIO_INTB_IRQHandler,                         // 19 : GPIO interrupt B
413     PIN_INT0_IRQHandler,                          // 20 : Pin interrupt 0 or pattern match engine slice 0 int
414     PIN_INT1_IRQHandler,                          // 21 : Pin interrupt 1 or pattern match engine slice 1 int
415     PIN_INT2_IRQHandler,                          // 22 : Pin interrupt 2 or pattern match engine slice 2 int
416     PIN_INT3_IRQHandler,                          // 23 : Pin interrupt 3 or pattern match engine slice 3 int
417     UTICK_IRQHandler,                          // 24 : Micro-tick Timer
418     MRT0_IRQHandler,                          // 25 : Multi-Rate Timer. Global MRT interrupts
419     CTIMER0_IRQHandler,                          // 26 : Standard counter/timer CTIMER0
420     CTIMER1_IRQHandler,                          // 27 : Standard counter/timer CTIMER1
421     SCT0_IRQHandler,                          // 28 : SCTimer/PWM
422     CTIMER3_IRQHandler,                          // 29 : Standard counter/timer CTIMER3
423     FLEXCOMM0_IRQHandler,                         // 30 : Flexcomm Interface 0 (USART, SPI, I2C, I2S)
424     FLEXCOMM1_IRQHandler,                         // 31 : Flexcomm Interface 1 (USART, SPI, I2C, I2S)
425     FLEXCOMM2_IRQHandler,                         // 32 : Flexcomm Interface 2 (USART, SPI, I2C, I2S)
426     FLEXCOMM3_IRQHandler,                         // 33 : Flexcomm Interface 3 (USART, SPI, I2C, I2S)
427     Reserved34_IRQHandler,                        // 34 : Reserved interrupt
428     Reserved35_IRQHandler,                        // 35 : Reserved interrupt
429     FLEXCOMM14_IRQHandler,                        // 36 : Flexcomm Interface 14 (USART, SPI, I2C, I2S)
430     Reserved37_IRQHandler,                        // 37 : Reserved interrupt
431     Reserved38_IRQHandler,                        // 38 : Reserved interrupt
432     MRT1_IRQHandler,                          // 39 : Free Multi-rate timer. Global MRT interrupts
433     Reserved40_IRQHandler,                        // 40 : Reserved interrupt
434     DMIC0_IRQHandler,                          // 41 : Digital microphone and DMIC subsystem
435     WFD_IRQHandler,                          // 42 : Wakeup From Deepsleep
436     HYPERVISOR_IRQHandler,                        // 43 : Hypervisor service software interrupt
437     SECUREVIOLATION_IRQHandler,                   // 44 : Secure violation
438     HWVAD0_IRQHandler,                          // 45 : Hardware Voice Activity Detector
439     Reserved46_IRQHandler,                        // 46 : Reserved interrupt
440     Reserved47_IRQHandler,                        // 47 : Reserved interrupt
441     RTC_IRQHandler,                          // 48 : RTC alarm and wake-up
442     Reserved49_IRQHandler,                        // 49 : Reserved interrupt
443     Reserved50_IRQHandler,                        // 50 : Reserved interrupt
444     PIN_INT4_IRQHandler,                          // 51 : Pin interrupt 4 or pattern match engine slice 4 int
445     PIN_INT5_IRQHandler,                          // 52 : Pin interrupt 5 or pattern match engine slice 5 int
446     PIN_INT6_IRQHandler,                          // 53 : Pin interrupt 6 or pattern match engine slice 6 int
447     PIN_INT7_IRQHandler,                          // 54 : Pin interrupt 7 or pattern match engine slice 7 int
448     CTIMER2_IRQHandler,                          // 55 : Standard counter/timer CTIMER2
449     CTIMER4_IRQHandler,                          // 56 : Standard counter/timer CTIMER4
450     OS_EVENT_IRQHandler,                          // 57 : OS event timer
451     FLEXSPI_IRQHandler,                          // 58 : FLEXSPI interface
452     Reserved59_IRQHandler,                        // 59 : Reserved interrupt
453     Reserved60_IRQHandler,                        // 60 : Reserved interrupt
454     Reserved61_IRQHandler,                        // 61 : Reserved interrupt
455     SDU_IRQHandler,                          // 62 : SDIO
456     SGPIO_INTA_IRQHandler,                        // 63 : Secure GPIO interrupt A
457     SGPIO_INTB_IRQHandler,                        // 64 : Secure GPIO interrupt B
458     Reserved65_IRQHandler,                        // 65 : Reserved interrupt
459     USB_IRQHandler,                          // 66 : High-speed USB device/host
460     Reserved67_IRQHandler,                        // 67 : Reserved interrupt
461     Reserved68_IRQHandler,                        // 68 : Reserved interrupt
462     Reserved69_IRQHandler,                        // 69 : Reserved interrupt
463     DMA1_IRQHandler,                          // 70 : DMA controller 1 (non-secure or HiFi 4 DMA)
464     PUF_IRQHandler,                          // 71 : Physical Unclonable Function
465     POWERQUAD_IRQHandler,                         // 72 : PowerQuad math coprocessor
466     Reserved73_IRQHandler,                        // 73 : Reserved interrupt
467     Reserved74_IRQHandler,                        // 74 : Reserved interrupt
468     Reserved75_IRQHandler,                        // 75 : Reserved interrupt
469     Reserved76_IRQHandler,                        // 76 : Reserved interrupt
470     LCDIC_IRQHandler,                          // 77 : LCDIC
471     CAPT_PULSE_IRQHandler,                        // 78 : Capture timer
472     Reserved79_IRQHandler,                        // 79 : Reserved interrupt
473     WL_MCI_WAKEUP_DONE0_IRQHandler,               // 80 : WL to MCI, Wakeup done 0
474     WL_MCI_WAKEUP_DONE1_IRQHandler,               // 81 : WL to MCI, Wakeup done 1
475     WL_MCI_WAKEUP_DONE2_IRQHandler,               // 82 : WL to MCI, Wakeup done 2
476     WL_MCI_WAKEUP_DONE3_IRQHandler,               // 83 : WL to MCI, Wakeup done 3
477     WL_MCI_WAKEUP_DONE4_IRQHandler,               // 84 : WL to MCI, Wakeup done 4
478     WL_MCI_WAKEUP_DONE5_IRQHandler,               // 85 : WL to MCI, Wakeup done 5
479     WL_MCI_WAKEUP_DONE6_IRQHandler,               // 86 : WL to MCI, Wakeup done 6
480     WL_MCI_WAKEUP_DONE7_IRQHandler,               // 87 : WL to MCI, Wakeup done 7
481     WL_MCI_WAKEUP0_IRQHandler,                    // 88 : IMU_INT0: Cpu1_to_cpu3_msg_rdy_imu wl_mci_wakeup[0]
482     WL_MCI_WAKEUP1_IRQHandler,                    // 89 : GP_INT from WL
483     WL_MCI_INT0_IRQHandler,                       // 90 : IMU_INT: Imu13_cpu3_msg_space_avail
484     WL_MCI_INT1_IRQHandler,                       // 91 : reserved
485     WL_MCI_INT2_IRQHandler,                       // 92 : reserved
486     WL_MCI_INT3_IRQHandler,                       // 93 : reserved
487     WL_MCI_INT4_IRQHandler,                       // 94 : reserved
488     WL_MCI_INT5_IRQHandler,                       // 95 : reserved
489     WL_MCI_INT6_IRQHandler,                       // 96 : reserved
490     WL_MCI_INT7_IRQHandler,                       // 97 : reserved
491     BLE_MCI_WAKEUP_DONE0_IRQHandler,              // 98 : BLE to MCI, Wakeup done 0
492     BLE_MCI_WAKEUP_DONE1_IRQHandler,              // 99 : BLE to MCI, Wakeup done 1
493     BLE_MCI_WAKEUP_DONE2_IRQHandler,              // 100: BLE to MCI, Wakeup done 2
494     BLE_MCI_WAKEUP_DONE3_IRQHandler,              // 101: BLE to MCI, Wakeup done 3
495     BLE_MCI_WAKEUP_DONE4_IRQHandler,              // 102: BLE to MCI, Wakeup done 4
496     BLE_MCI_WAKEUP_DONE5_IRQHandler,              // 103: BLE to MCI, Wakeup done 5
497     BLE_MCI_WAKEUP_DONE6_IRQHandler,              // 104: BLE to MCI, Wakeup done 6
498     BLE_MCI_WAKEUP_DONE7_IRQHandler,              // 105: BLE to MCI, Wakeup done 7
499     BLE_MCI_WAKEUP0_IRQHandler,                   // 106: IMU_INT0: Cpu2_to_cpu3_msg_rdy_imu wl_mci_wakeup[0]
500     BLE_MCI_WAKEUP1_IRQHandler,                   // 107: GP_INT from BLE
501     BLE_MCI_INT0_IRQHandler,                      // 108: IMU_INT: Imu13_cpu3_msg_space_avail
502     BLE_MCI_INT1_IRQHandler,                      // 109: reserved
503     BLE_MCI_INT2_IRQHandler,                      // 110: reserved
504     BLE_MCI_INT3_IRQHandler,                      // 111: reserved
505     BLE_MCI_INT4_IRQHandler,                      // 112: reserved
506     BLE_MCI_INT5_IRQHandler,                      // 113: reserved
507     BLE_MCI_INT6_IRQHandler,                      // 114: reserved
508     BLE_MCI_INT7_IRQHandler,                      // 115: reserved
509     PIN0_INT_IRQHandler,                          // 116: From AON GPIO
510     PIN1_INT_IRQHandler,                          // 117: From AON GPIO
511     ELS_IRQHandler,                          // 118: ELS
512     ELS_GDET_IRQ_IRQHandler,                      // 119: ELS IRQ line for GDET error
513     ELS_GDET_ERR_IRQHandler,                      // 120: ELS Ungated latched error
514     PKC_IRQHandler,                          // 121: PKC interrupt
515     PKC_ERR_IRQHandler,                          // 122: PKC error
516     CDOG_IRQHandler,                          // 123: Code watch dog timmer
517     GAU_GPDAC_INT_FUNC11_IRQHandler,              // 124: GAU
518     GAU_ACOMP_INT_WKUP11_IRQHandler,              // 125: GAU
519     GAU_ACOMP_INT_FUNC11_IRQHandler,              // 126: GAU
520     GAU_GPADC1_INT_FUNC11_IRQHandler,             // 127: GAU
521     GAU_GPADC0_INT_FUNC11_IRQHandler,             // 128: GAU
522     USIM_IRQHandler,                          // 129: USIM
523     OCOTP_IRQHandler,                          // 130: OTP
524     ENET_IRQHandler,                          // 131: ENET
525     ENET_TIMER_IRQHandler,                        // 132: ENET
526     BOD_1_85_INT_IRQHandler,                      // 133: PMIP
527     BOD_1_85_NEG_IRQHandler,                      // 134: Bod_1_85_int negedge
528     ITRC_IRQHandler,                          // 135: ITRC
529     BTU_HOST_TRIGGER0_IRQHandler,                 // 136: Btu host trigger0
530     BTU_HOST_TRIGGER1_IRQHandler,                 // 137: Btu host trigger1
531     BTU_HOST_TRIGGER2_IRQHandler,                 // 138: Btu host trigger2
532     TRNG_IRQHandler,                          // 139: TRNG
533     AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_IRQHandler,  // 140: ahb memory access checker - CM33 code bus
534     AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_IRQHandler,  // 141: ahb memory access checker - CM33 sys bus
535     WL_ACC_INT_IRQHandler,                        // 142: Cpu access wlan when wlan is powered off
536     BLE_ACC_INT_IRQHandler,                       // 143: Cpu access wlan when ble is powered off
537     GDMA_IRQHandler,                          // 144: GDMA
538 }; /* End of g_pfnVectors */
539 
540 //*****************************************************************************
541 // Functions to carry out the initialization of RW and BSS data sections. These
542 // are written as separate functions rather than being inlined within the
543 // ResetISR() function in order to cope with MCUs with multiple banks of
544 // memory.
545 //*****************************************************************************
546 __attribute__ ((section(".after_vectors.init_data")))
data_init(unsigned int romstart,unsigned int start,unsigned int len)547 void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
548     unsigned int *pulDest = (unsigned int*) start;
549     unsigned int *pulSrc = (unsigned int*) romstart;
550     unsigned int loop;
551     for (loop = 0; loop < len; loop = loop + 4)
552         *pulDest++ = *pulSrc++;
553 }
554 
555 __attribute__ ((section(".after_vectors.init_bss")))
bss_init(unsigned int start,unsigned int len)556 void bss_init(unsigned int start, unsigned int len) {
557     unsigned int *pulDest = (unsigned int*) start;
558     unsigned int loop;
559     for (loop = 0; loop < len; loop = loop + 4)
560         *pulDest++ = 0;
561 }
562 
563 //*****************************************************************************
564 // The following symbols are constructs generated by the linker, indicating
565 // the location of various points in the "Global Section Table". This table is
566 // created by the linker via the Code Red managed linker script mechanism. It
567 // contains the load address, execution address and length of each RW data
568 // section and the execution and length of each BSS (zero initialized) section.
569 //*****************************************************************************
570 extern unsigned int __data_section_table;
571 extern unsigned int __data_section_table_end;
572 extern unsigned int __bss_section_table;
573 extern unsigned int __bss_section_table_end;
574 
575 //*****************************************************************************
576 // Reset entry point for your code.
577 // Sets up a simple runtime environment and initializes the C/C++
578 // library.
579 //*****************************************************************************
580 __attribute__ ((naked, section(".after_vectors.reset")))
ResetISR(void)581 void ResetISR(void) {
582     // Disable interrupts
583     __asm volatile ("cpsid i");
584     // Config VTOR & MSPLIM register
585     __asm volatile ("LDR R0, =0xE000ED08  \n"
586                     "STR %0, [R0]         \n"
587                     "LDR R1, [%0]         \n"
588                     "MSR MSP, R1          \n"
589                     "MSR MSPLIM, %1       \n"
590                     :
591                     : "r"(g_pfnVectors), "r"(_vStackBase)
592                     : "r0", "r1");
593 
594 #if defined (__USE_CMSIS)
595 // If __USE_CMSIS defined, then call CMSIS SystemInit code
596     SystemInit();
597 
598 #endif // (__USE_CMSIS)
599 
600     //
601     // Copy the data sections from flash to SRAM.
602     //
603     unsigned int LoadAddr, ExeAddr, SectionLen;
604     unsigned int *SectionTableAddr;
605 
606     // Load base address of Global Section Table
607     SectionTableAddr = &__data_section_table;
608 
609     // Copy the data sections from flash to SRAM.
610     while (SectionTableAddr < &__data_section_table_end) {
611         LoadAddr = *SectionTableAddr++;
612         ExeAddr = *SectionTableAddr++;
613         SectionLen = *SectionTableAddr++;
614         data_init(LoadAddr, ExeAddr, SectionLen);
615     }
616 
617     // At this point, SectionTableAddr = &__bss_section_table;
618     // Zero fill the bss segment
619     while (SectionTableAddr < &__bss_section_table_end) {
620         ExeAddr = *SectionTableAddr++;
621         SectionLen = *SectionTableAddr++;
622         bss_init(ExeAddr, SectionLen);
623     }
624 
625 #if defined (__cplusplus)
626     //
627     // Call C++ library initialisation
628     //
629     __libc_init_array();
630 #endif
631 
632     // Reenable interrupts
633     __asm volatile ("cpsie i");
634 
635 #if defined (__REDLIB__)
636     // Call the Redlib library, which in turn calls main()
637     __main();
638 #else
639     main();
640 #endif
641 
642     //
643     // main() shouldn't return, but if it does, we'll just enter an infinite loop
644     //
645     while (1) {
646         ;
647     }
648 }
649 
650 //*****************************************************************************
651 // Default core exception handlers. Override the ones here by defining your own
652 // handler routines in your application code.
653 //*****************************************************************************
NMI_Handler(void)654 WEAK_AV void NMI_Handler(void)
655 { while(1) {}
656 }
657 
HardFault_Handler(void)658 WEAK_AV void HardFault_Handler(void)
659 { while(1) {}
660 }
661 
MemManage_Handler(void)662 WEAK_AV void MemManage_Handler(void)
663 { while(1) {}
664 }
665 
BusFault_Handler(void)666 WEAK_AV void BusFault_Handler(void)
667 { while(1) {}
668 }
669 
UsageFault_Handler(void)670 WEAK_AV void UsageFault_Handler(void)
671 { while(1) {}
672 }
673 
SecureFault_Handler(void)674 WEAK_AV void SecureFault_Handler(void)
675 { while(1) {}
676 }
677 
SVC_Handler(void)678 WEAK_AV void SVC_Handler(void)
679 { while(1) {}
680 }
681 
DebugMon_Handler(void)682 WEAK_AV void DebugMon_Handler(void)
683 { while(1) {}
684 }
685 
PendSV_Handler(void)686 WEAK_AV void PendSV_Handler(void)
687 { while(1) {}
688 }
689 
SysTick_Handler(void)690 WEAK_AV void SysTick_Handler(void)
691 { while(1) {}
692 }
693 
694 //*****************************************************************************
695 // Processor ends up here if an unexpected interrupt occurs or a specific
696 // handler is not present in the application code.
697 //*****************************************************************************
IntDefaultHandler(void)698 WEAK_AV void IntDefaultHandler(void)
699 { while(1) {}
700 }
701 
702 //*****************************************************************************
703 // Default application exception handlers. Override the ones here by defining
704 // your own handler routines in your application code. These routines call
705 // driver exception handlers or IntDefaultHandler() if no driver exception
706 // handler is included.
707 //*****************************************************************************
WDT0_IRQHandler(void)708 WEAK void WDT0_IRQHandler(void)
709 {   WDT0_DriverIRQHandler();
710 }
711 
DMA0_IRQHandler(void)712 WEAK void DMA0_IRQHandler(void)
713 {   DMA0_DriverIRQHandler();
714 }
715 
GPIO_INTA_IRQHandler(void)716 WEAK void GPIO_INTA_IRQHandler(void)
717 {   GPIO_INTA_DriverIRQHandler();
718 }
719 
GPIO_INTB_IRQHandler(void)720 WEAK void GPIO_INTB_IRQHandler(void)
721 {   GPIO_INTB_DriverIRQHandler();
722 }
723 
PIN_INT0_IRQHandler(void)724 WEAK void PIN_INT0_IRQHandler(void)
725 {   PIN_INT0_DriverIRQHandler();
726 }
727 
PIN_INT1_IRQHandler(void)728 WEAK void PIN_INT1_IRQHandler(void)
729 {   PIN_INT1_DriverIRQHandler();
730 }
731 
PIN_INT2_IRQHandler(void)732 WEAK void PIN_INT2_IRQHandler(void)
733 {   PIN_INT2_DriverIRQHandler();
734 }
735 
PIN_INT3_IRQHandler(void)736 WEAK void PIN_INT3_IRQHandler(void)
737 {   PIN_INT3_DriverIRQHandler();
738 }
739 
UTICK_IRQHandler(void)740 WEAK void UTICK_IRQHandler(void)
741 {   UTICK_DriverIRQHandler();
742 }
743 
MRT0_IRQHandler(void)744 WEAK void MRT0_IRQHandler(void)
745 {   MRT0_DriverIRQHandler();
746 }
747 
CTIMER0_IRQHandler(void)748 WEAK void CTIMER0_IRQHandler(void)
749 {   CTIMER0_DriverIRQHandler();
750 }
751 
CTIMER1_IRQHandler(void)752 WEAK void CTIMER1_IRQHandler(void)
753 {   CTIMER1_DriverIRQHandler();
754 }
755 
SCT0_IRQHandler(void)756 WEAK void SCT0_IRQHandler(void)
757 {   SCT0_DriverIRQHandler();
758 }
759 
CTIMER3_IRQHandler(void)760 WEAK void CTIMER3_IRQHandler(void)
761 {   CTIMER3_DriverIRQHandler();
762 }
763 
FLEXCOMM0_IRQHandler(void)764 WEAK void FLEXCOMM0_IRQHandler(void)
765 {   FLEXCOMM0_DriverIRQHandler();
766 }
767 
FLEXCOMM1_IRQHandler(void)768 WEAK void FLEXCOMM1_IRQHandler(void)
769 {   FLEXCOMM1_DriverIRQHandler();
770 }
771 
FLEXCOMM2_IRQHandler(void)772 WEAK void FLEXCOMM2_IRQHandler(void)
773 {   FLEXCOMM2_DriverIRQHandler();
774 }
775 
FLEXCOMM3_IRQHandler(void)776 WEAK void FLEXCOMM3_IRQHandler(void)
777 {   FLEXCOMM3_DriverIRQHandler();
778 }
779 
Reserved34_IRQHandler(void)780 WEAK void Reserved34_IRQHandler(void)
781 {   Reserved34_DriverIRQHandler();
782 }
783 
Reserved35_IRQHandler(void)784 WEAK void Reserved35_IRQHandler(void)
785 {   Reserved35_DriverIRQHandler();
786 }
787 
FLEXCOMM14_IRQHandler(void)788 WEAK void FLEXCOMM14_IRQHandler(void)
789 {   FLEXCOMM14_DriverIRQHandler();
790 }
791 
Reserved37_IRQHandler(void)792 WEAK void Reserved37_IRQHandler(void)
793 {   Reserved37_DriverIRQHandler();
794 }
795 
Reserved38_IRQHandler(void)796 WEAK void Reserved38_IRQHandler(void)
797 {   Reserved38_DriverIRQHandler();
798 }
799 
MRT1_IRQHandler(void)800 WEAK void MRT1_IRQHandler(void)
801 {   MRT1_DriverIRQHandler();
802 }
803 
Reserved40_IRQHandler(void)804 WEAK void Reserved40_IRQHandler(void)
805 {   Reserved40_DriverIRQHandler();
806 }
807 
DMIC0_IRQHandler(void)808 WEAK void DMIC0_IRQHandler(void)
809 {   DMIC0_DriverIRQHandler();
810 }
811 
WFD_IRQHandler(void)812 WEAK void WFD_IRQHandler(void)
813 {   WFD_DriverIRQHandler();
814 }
815 
HYPERVISOR_IRQHandler(void)816 WEAK void HYPERVISOR_IRQHandler(void)
817 {   HYPERVISOR_DriverIRQHandler();
818 }
819 
SECUREVIOLATION_IRQHandler(void)820 WEAK void SECUREVIOLATION_IRQHandler(void)
821 {   SECUREVIOLATION_DriverIRQHandler();
822 }
823 
HWVAD0_IRQHandler(void)824 WEAK void HWVAD0_IRQHandler(void)
825 {   HWVAD0_DriverIRQHandler();
826 }
827 
Reserved46_IRQHandler(void)828 WEAK void Reserved46_IRQHandler(void)
829 {   Reserved46_DriverIRQHandler();
830 }
831 
Reserved47_IRQHandler(void)832 WEAK void Reserved47_IRQHandler(void)
833 {   Reserved47_DriverIRQHandler();
834 }
835 
RTC_IRQHandler(void)836 WEAK void RTC_IRQHandler(void)
837 {   RTC_DriverIRQHandler();
838 }
839 
Reserved49_IRQHandler(void)840 WEAK void Reserved49_IRQHandler(void)
841 {   Reserved49_DriverIRQHandler();
842 }
843 
Reserved50_IRQHandler(void)844 WEAK void Reserved50_IRQHandler(void)
845 {   Reserved50_DriverIRQHandler();
846 }
847 
PIN_INT4_IRQHandler(void)848 WEAK void PIN_INT4_IRQHandler(void)
849 {   PIN_INT4_DriverIRQHandler();
850 }
851 
PIN_INT5_IRQHandler(void)852 WEAK void PIN_INT5_IRQHandler(void)
853 {   PIN_INT5_DriverIRQHandler();
854 }
855 
PIN_INT6_IRQHandler(void)856 WEAK void PIN_INT6_IRQHandler(void)
857 {   PIN_INT6_DriverIRQHandler();
858 }
859 
PIN_INT7_IRQHandler(void)860 WEAK void PIN_INT7_IRQHandler(void)
861 {   PIN_INT7_DriverIRQHandler();
862 }
863 
CTIMER2_IRQHandler(void)864 WEAK void CTIMER2_IRQHandler(void)
865 {   CTIMER2_DriverIRQHandler();
866 }
867 
CTIMER4_IRQHandler(void)868 WEAK void CTIMER4_IRQHandler(void)
869 {   CTIMER4_DriverIRQHandler();
870 }
871 
OS_EVENT_IRQHandler(void)872 WEAK void OS_EVENT_IRQHandler(void)
873 {   OS_EVENT_DriverIRQHandler();
874 }
875 
FLEXSPI_IRQHandler(void)876 WEAK void FLEXSPI_IRQHandler(void)
877 {   FLEXSPI_DriverIRQHandler();
878 }
879 
Reserved59_IRQHandler(void)880 WEAK void Reserved59_IRQHandler(void)
881 {   Reserved59_DriverIRQHandler();
882 }
883 
Reserved60_IRQHandler(void)884 WEAK void Reserved60_IRQHandler(void)
885 {   Reserved60_DriverIRQHandler();
886 }
887 
Reserved61_IRQHandler(void)888 WEAK void Reserved61_IRQHandler(void)
889 {   Reserved61_DriverIRQHandler();
890 }
891 
SDU_IRQHandler(void)892 WEAK void SDU_IRQHandler(void)
893 {   SDU_DriverIRQHandler();
894 }
895 
SGPIO_INTA_IRQHandler(void)896 WEAK void SGPIO_INTA_IRQHandler(void)
897 {   SGPIO_INTA_DriverIRQHandler();
898 }
899 
SGPIO_INTB_IRQHandler(void)900 WEAK void SGPIO_INTB_IRQHandler(void)
901 {   SGPIO_INTB_DriverIRQHandler();
902 }
903 
Reserved65_IRQHandler(void)904 WEAK void Reserved65_IRQHandler(void)
905 {   Reserved65_DriverIRQHandler();
906 }
907 
USB_IRQHandler(void)908 WEAK void USB_IRQHandler(void)
909 {   USB_DriverIRQHandler();
910 }
911 
Reserved67_IRQHandler(void)912 WEAK void Reserved67_IRQHandler(void)
913 {   Reserved67_DriverIRQHandler();
914 }
915 
Reserved68_IRQHandler(void)916 WEAK void Reserved68_IRQHandler(void)
917 {   Reserved68_DriverIRQHandler();
918 }
919 
Reserved69_IRQHandler(void)920 WEAK void Reserved69_IRQHandler(void)
921 {   Reserved69_DriverIRQHandler();
922 }
923 
DMA1_IRQHandler(void)924 WEAK void DMA1_IRQHandler(void)
925 {   DMA1_DriverIRQHandler();
926 }
927 
PUF_IRQHandler(void)928 WEAK void PUF_IRQHandler(void)
929 {   PUF_DriverIRQHandler();
930 }
931 
POWERQUAD_IRQHandler(void)932 WEAK void POWERQUAD_IRQHandler(void)
933 {   POWERQUAD_DriverIRQHandler();
934 }
935 
Reserved73_IRQHandler(void)936 WEAK void Reserved73_IRQHandler(void)
937 {   Reserved73_DriverIRQHandler();
938 }
939 
Reserved74_IRQHandler(void)940 WEAK void Reserved74_IRQHandler(void)
941 {   Reserved74_DriverIRQHandler();
942 }
943 
Reserved75_IRQHandler(void)944 WEAK void Reserved75_IRQHandler(void)
945 {   Reserved75_DriverIRQHandler();
946 }
947 
Reserved76_IRQHandler(void)948 WEAK void Reserved76_IRQHandler(void)
949 {   Reserved76_DriverIRQHandler();
950 }
951 
LCDIC_IRQHandler(void)952 WEAK void LCDIC_IRQHandler(void)
953 {   LCDIC_DriverIRQHandler();
954 }
955 
CAPT_PULSE_IRQHandler(void)956 WEAK void CAPT_PULSE_IRQHandler(void)
957 {   CAPT_PULSE_DriverIRQHandler();
958 }
959 
Reserved79_IRQHandler(void)960 WEAK void Reserved79_IRQHandler(void)
961 {   Reserved79_DriverIRQHandler();
962 }
963 
WL_MCI_WAKEUP_DONE0_IRQHandler(void)964 WEAK void WL_MCI_WAKEUP_DONE0_IRQHandler(void)
965 {   WL_MCI_WAKEUP_DONE0_DriverIRQHandler();
966 }
967 
WL_MCI_WAKEUP_DONE1_IRQHandler(void)968 WEAK void WL_MCI_WAKEUP_DONE1_IRQHandler(void)
969 {   WL_MCI_WAKEUP_DONE1_DriverIRQHandler();
970 }
971 
WL_MCI_WAKEUP_DONE2_IRQHandler(void)972 WEAK void WL_MCI_WAKEUP_DONE2_IRQHandler(void)
973 {   WL_MCI_WAKEUP_DONE2_DriverIRQHandler();
974 }
975 
WL_MCI_WAKEUP_DONE3_IRQHandler(void)976 WEAK void WL_MCI_WAKEUP_DONE3_IRQHandler(void)
977 {   WL_MCI_WAKEUP_DONE3_DriverIRQHandler();
978 }
979 
WL_MCI_WAKEUP_DONE4_IRQHandler(void)980 WEAK void WL_MCI_WAKEUP_DONE4_IRQHandler(void)
981 {   WL_MCI_WAKEUP_DONE4_DriverIRQHandler();
982 }
983 
WL_MCI_WAKEUP_DONE5_IRQHandler(void)984 WEAK void WL_MCI_WAKEUP_DONE5_IRQHandler(void)
985 {   WL_MCI_WAKEUP_DONE5_DriverIRQHandler();
986 }
987 
WL_MCI_WAKEUP_DONE6_IRQHandler(void)988 WEAK void WL_MCI_WAKEUP_DONE6_IRQHandler(void)
989 {   WL_MCI_WAKEUP_DONE6_DriverIRQHandler();
990 }
991 
WL_MCI_WAKEUP_DONE7_IRQHandler(void)992 WEAK void WL_MCI_WAKEUP_DONE7_IRQHandler(void)
993 {   WL_MCI_WAKEUP_DONE7_DriverIRQHandler();
994 }
995 
WL_MCI_WAKEUP0_IRQHandler(void)996 WEAK void WL_MCI_WAKEUP0_IRQHandler(void)
997 {   WL_MCI_WAKEUP0_DriverIRQHandler();
998 }
999 
WL_MCI_WAKEUP1_IRQHandler(void)1000 WEAK void WL_MCI_WAKEUP1_IRQHandler(void)
1001 {   WL_MCI_WAKEUP1_DriverIRQHandler();
1002 }
1003 
WL_MCI_INT0_IRQHandler(void)1004 WEAK void WL_MCI_INT0_IRQHandler(void)
1005 {   WL_MCI_INT0_DriverIRQHandler();
1006 }
1007 
WL_MCI_INT1_IRQHandler(void)1008 WEAK void WL_MCI_INT1_IRQHandler(void)
1009 {   WL_MCI_INT1_DriverIRQHandler();
1010 }
1011 
WL_MCI_INT2_IRQHandler(void)1012 WEAK void WL_MCI_INT2_IRQHandler(void)
1013 {   WL_MCI_INT2_DriverIRQHandler();
1014 }
1015 
WL_MCI_INT3_IRQHandler(void)1016 WEAK void WL_MCI_INT3_IRQHandler(void)
1017 {   WL_MCI_INT3_DriverIRQHandler();
1018 }
1019 
WL_MCI_INT4_IRQHandler(void)1020 WEAK void WL_MCI_INT4_IRQHandler(void)
1021 {   WL_MCI_INT4_DriverIRQHandler();
1022 }
1023 
WL_MCI_INT5_IRQHandler(void)1024 WEAK void WL_MCI_INT5_IRQHandler(void)
1025 {   WL_MCI_INT5_DriverIRQHandler();
1026 }
1027 
WL_MCI_INT6_IRQHandler(void)1028 WEAK void WL_MCI_INT6_IRQHandler(void)
1029 {   WL_MCI_INT6_DriverIRQHandler();
1030 }
1031 
WL_MCI_INT7_IRQHandler(void)1032 WEAK void WL_MCI_INT7_IRQHandler(void)
1033 {   WL_MCI_INT7_DriverIRQHandler();
1034 }
1035 
BLE_MCI_WAKEUP_DONE0_IRQHandler(void)1036 WEAK void BLE_MCI_WAKEUP_DONE0_IRQHandler(void)
1037 {   BLE_MCI_WAKEUP_DONE0_DriverIRQHandler();
1038 }
1039 
BLE_MCI_WAKEUP_DONE1_IRQHandler(void)1040 WEAK void BLE_MCI_WAKEUP_DONE1_IRQHandler(void)
1041 {   BLE_MCI_WAKEUP_DONE1_DriverIRQHandler();
1042 }
1043 
BLE_MCI_WAKEUP_DONE2_IRQHandler(void)1044 WEAK void BLE_MCI_WAKEUP_DONE2_IRQHandler(void)
1045 {   BLE_MCI_WAKEUP_DONE2_DriverIRQHandler();
1046 }
1047 
BLE_MCI_WAKEUP_DONE3_IRQHandler(void)1048 WEAK void BLE_MCI_WAKEUP_DONE3_IRQHandler(void)
1049 {   BLE_MCI_WAKEUP_DONE3_DriverIRQHandler();
1050 }
1051 
BLE_MCI_WAKEUP_DONE4_IRQHandler(void)1052 WEAK void BLE_MCI_WAKEUP_DONE4_IRQHandler(void)
1053 {   BLE_MCI_WAKEUP_DONE4_DriverIRQHandler();
1054 }
1055 
BLE_MCI_WAKEUP_DONE5_IRQHandler(void)1056 WEAK void BLE_MCI_WAKEUP_DONE5_IRQHandler(void)
1057 {   BLE_MCI_WAKEUP_DONE5_DriverIRQHandler();
1058 }
1059 
BLE_MCI_WAKEUP_DONE6_IRQHandler(void)1060 WEAK void BLE_MCI_WAKEUP_DONE6_IRQHandler(void)
1061 {   BLE_MCI_WAKEUP_DONE6_DriverIRQHandler();
1062 }
1063 
BLE_MCI_WAKEUP_DONE7_IRQHandler(void)1064 WEAK void BLE_MCI_WAKEUP_DONE7_IRQHandler(void)
1065 {   BLE_MCI_WAKEUP_DONE7_DriverIRQHandler();
1066 }
1067 
BLE_MCI_WAKEUP0_IRQHandler(void)1068 WEAK void BLE_MCI_WAKEUP0_IRQHandler(void)
1069 {   BLE_MCI_WAKEUP0_DriverIRQHandler();
1070 }
1071 
BLE_MCI_WAKEUP1_IRQHandler(void)1072 WEAK void BLE_MCI_WAKEUP1_IRQHandler(void)
1073 {   BLE_MCI_WAKEUP1_DriverIRQHandler();
1074 }
1075 
BLE_MCI_INT0_IRQHandler(void)1076 WEAK void BLE_MCI_INT0_IRQHandler(void)
1077 {   BLE_MCI_INT0_DriverIRQHandler();
1078 }
1079 
BLE_MCI_INT1_IRQHandler(void)1080 WEAK void BLE_MCI_INT1_IRQHandler(void)
1081 {   BLE_MCI_INT1_DriverIRQHandler();
1082 }
1083 
BLE_MCI_INT2_IRQHandler(void)1084 WEAK void BLE_MCI_INT2_IRQHandler(void)
1085 {   BLE_MCI_INT2_DriverIRQHandler();
1086 }
1087 
BLE_MCI_INT3_IRQHandler(void)1088 WEAK void BLE_MCI_INT3_IRQHandler(void)
1089 {   BLE_MCI_INT3_DriverIRQHandler();
1090 }
1091 
BLE_MCI_INT4_IRQHandler(void)1092 WEAK void BLE_MCI_INT4_IRQHandler(void)
1093 {   BLE_MCI_INT4_DriverIRQHandler();
1094 }
1095 
BLE_MCI_INT5_IRQHandler(void)1096 WEAK void BLE_MCI_INT5_IRQHandler(void)
1097 {   BLE_MCI_INT5_DriverIRQHandler();
1098 }
1099 
BLE_MCI_INT6_IRQHandler(void)1100 WEAK void BLE_MCI_INT6_IRQHandler(void)
1101 {   BLE_MCI_INT6_DriverIRQHandler();
1102 }
1103 
BLE_MCI_INT7_IRQHandler(void)1104 WEAK void BLE_MCI_INT7_IRQHandler(void)
1105 {   BLE_MCI_INT7_DriverIRQHandler();
1106 }
1107 
PIN0_INT_IRQHandler(void)1108 WEAK void PIN0_INT_IRQHandler(void)
1109 {   PIN0_INT_DriverIRQHandler();
1110 }
1111 
PIN1_INT_IRQHandler(void)1112 WEAK void PIN1_INT_IRQHandler(void)
1113 {   PIN1_INT_DriverIRQHandler();
1114 }
1115 
ELS_IRQHandler(void)1116 WEAK void ELS_IRQHandler(void)
1117 {   ELS_DriverIRQHandler();
1118 }
1119 
ELS_GDET_IRQ_IRQHandler(void)1120 WEAK void ELS_GDET_IRQ_IRQHandler(void)
1121 {   ELS_GDET_IRQ_DriverIRQHandler();
1122 }
1123 
ELS_GDET_ERR_IRQHandler(void)1124 WEAK void ELS_GDET_ERR_IRQHandler(void)
1125 {   ELS_GDET_ERR_DriverIRQHandler();
1126 }
1127 
PKC_IRQHandler(void)1128 WEAK void PKC_IRQHandler(void)
1129 {   PKC_DriverIRQHandler();
1130 }
1131 
PKC_ERR_IRQHandler(void)1132 WEAK void PKC_ERR_IRQHandler(void)
1133 {   PKC_ERR_DriverIRQHandler();
1134 }
1135 
CDOG_IRQHandler(void)1136 WEAK void CDOG_IRQHandler(void)
1137 {   CDOG_DriverIRQHandler();
1138 }
1139 
GAU_GPDAC_INT_FUNC11_IRQHandler(void)1140 WEAK void GAU_GPDAC_INT_FUNC11_IRQHandler(void)
1141 {   GAU_GPDAC_INT_FUNC11_DriverIRQHandler();
1142 }
1143 
GAU_ACOMP_INT_WKUP11_IRQHandler(void)1144 WEAK void GAU_ACOMP_INT_WKUP11_IRQHandler(void)
1145 {   GAU_ACOMP_INT_WKUP11_DriverIRQHandler();
1146 }
1147 
GAU_ACOMP_INT_FUNC11_IRQHandler(void)1148 WEAK void GAU_ACOMP_INT_FUNC11_IRQHandler(void)
1149 {   GAU_ACOMP_INT_FUNC11_DriverIRQHandler();
1150 }
1151 
GAU_GPADC1_INT_FUNC11_IRQHandler(void)1152 WEAK void GAU_GPADC1_INT_FUNC11_IRQHandler(void)
1153 {   GAU_GPADC1_INT_FUNC11_DriverIRQHandler();
1154 }
1155 
GAU_GPADC0_INT_FUNC11_IRQHandler(void)1156 WEAK void GAU_GPADC0_INT_FUNC11_IRQHandler(void)
1157 {   GAU_GPADC0_INT_FUNC11_DriverIRQHandler();
1158 }
1159 
USIM_IRQHandler(void)1160 WEAK void USIM_IRQHandler(void)
1161 {   USIM_DriverIRQHandler();
1162 }
1163 
OCOTP_IRQHandler(void)1164 WEAK void OCOTP_IRQHandler(void)
1165 {   OCOTP_DriverIRQHandler();
1166 }
1167 
ENET_IRQHandler(void)1168 WEAK void ENET_IRQHandler(void)
1169 {   ENET_DriverIRQHandler();
1170 }
1171 
ENET_TIMER_IRQHandler(void)1172 WEAK void ENET_TIMER_IRQHandler(void)
1173 {   ENET_TIMER_DriverIRQHandler();
1174 }
1175 
BOD_1_85_INT_IRQHandler(void)1176 WEAK void BOD_1_85_INT_IRQHandler(void)
1177 {   BOD_1_85_INT_DriverIRQHandler();
1178 }
1179 
BOD_1_85_NEG_IRQHandler(void)1180 WEAK void BOD_1_85_NEG_IRQHandler(void)
1181 {   BOD_1_85_NEG_DriverIRQHandler();
1182 }
1183 
ITRC_IRQHandler(void)1184 WEAK void ITRC_IRQHandler(void)
1185 {   ITRC_DriverIRQHandler();
1186 }
1187 
BTU_HOST_TRIGGER0_IRQHandler(void)1188 WEAK void BTU_HOST_TRIGGER0_IRQHandler(void)
1189 {   BTU_HOST_TRIGGER0_DriverIRQHandler();
1190 }
1191 
BTU_HOST_TRIGGER1_IRQHandler(void)1192 WEAK void BTU_HOST_TRIGGER1_IRQHandler(void)
1193 {   BTU_HOST_TRIGGER1_DriverIRQHandler();
1194 }
1195 
BTU_HOST_TRIGGER2_IRQHandler(void)1196 WEAK void BTU_HOST_TRIGGER2_IRQHandler(void)
1197 {   BTU_HOST_TRIGGER2_DriverIRQHandler();
1198 }
1199 
TRNG_IRQHandler(void)1200 WEAK void TRNG_IRQHandler(void)
1201 {   TRNG_DriverIRQHandler();
1202 }
1203 
AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_IRQHandler(void)1204 WEAK void AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_IRQHandler(void)
1205 {   AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_DriverIRQHandler();
1206 }
1207 
AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_IRQHandler(void)1208 WEAK void AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_IRQHandler(void)
1209 {   AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_DriverIRQHandler();
1210 }
1211 
WL_ACC_INT_IRQHandler(void)1212 WEAK void WL_ACC_INT_IRQHandler(void)
1213 {   WL_ACC_INT_DriverIRQHandler();
1214 }
1215 
BLE_ACC_INT_IRQHandler(void)1216 WEAK void BLE_ACC_INT_IRQHandler(void)
1217 {   BLE_ACC_INT_DriverIRQHandler();
1218 }
1219 
GDMA_IRQHandler(void)1220 WEAK void GDMA_IRQHandler(void)
1221 {   GDMA_DriverIRQHandler();
1222 }
1223 
1224 //*****************************************************************************
1225 
1226 #if defined (DEBUG)
1227 #pragma GCC pop_options
1228 #endif // (DEBUG)
1229