1 //*****************************************************************************
2 // RW610 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 - RW610
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 #if defined(ENABLE_RAM_VECTOR_TABLE)
541 extern void * __VECTOR_TABLE __attribute__ ((alias ("g_pfnVectors")));
542 void (* __VECTOR_RAM[sizeof(g_pfnVectors) / 4])(void) __attribute__((aligned(128)));
543 unsigned int __RAM_VECTOR_TABLE_SIZE_BYTES = sizeof(g_pfnVectors);
544 #endif
545
546 //*****************************************************************************
547 // Functions to carry out the initialization of RW and BSS data sections. These
548 // are written as separate functions rather than being inlined within the
549 // ResetISR() function in order to cope with MCUs with multiple banks of
550 // memory.
551 //*****************************************************************************
552 __attribute__ ((section(".after_vectors.init_data")))
data_init(unsigned int romstart,unsigned int start,unsigned int len)553 void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
554 unsigned int *pulDest = (unsigned int*) start;
555 unsigned int *pulSrc = (unsigned int*) romstart;
556 unsigned int loop;
557 for (loop = 0; loop < len; loop = loop + 4)
558 *pulDest++ = *pulSrc++;
559 }
560
561 __attribute__ ((section(".after_vectors.init_bss")))
bss_init(unsigned int start,unsigned int len)562 void bss_init(unsigned int start, unsigned int len) {
563 unsigned int *pulDest = (unsigned int*) start;
564 unsigned int loop;
565 for (loop = 0; loop < len; loop = loop + 4)
566 *pulDest++ = 0;
567 }
568
569 //*****************************************************************************
570 // The following symbols are constructs generated by the linker, indicating
571 // the location of various points in the "Global Section Table". This table is
572 // created by the linker via the Code Red managed linker script mechanism. It
573 // contains the load address, execution address and length of each RW data
574 // section and the execution and length of each BSS (zero initialized) section.
575 //*****************************************************************************
576 extern unsigned int __data_section_table;
577 extern unsigned int __data_section_table_end;
578 extern unsigned int __bss_section_table;
579 extern unsigned int __bss_section_table_end;
580
581 //*****************************************************************************
582 // Reset entry point for your code.
583 // Sets up a simple runtime environment and initializes the C/C++
584 // library.
585 //*****************************************************************************
586 __attribute__ ((naked, section(".after_vectors.reset")))
ResetISR(void)587 void ResetISR(void) {
588 // Disable interrupts
589 __asm volatile ("cpsid i");
590 // Config VTOR & MSPLIM register
591 __asm volatile ("LDR R0, =0xE000ED08 \n"
592 "STR %0, [R0] \n"
593 "LDR R1, [%0] \n"
594 "MSR MSP, R1 \n"
595 "MSR MSPLIM, %1 \n"
596 :
597 : "r"(g_pfnVectors), "r"(_vStackBase)
598 : "r0", "r1");
599
600 #if defined (__USE_CMSIS)
601 // If __USE_CMSIS defined, then call CMSIS SystemInit code
602 SystemInit();
603
604 #endif // (__USE_CMSIS)
605
606 //
607 // Copy the data sections from flash to SRAM.
608 //
609 unsigned int LoadAddr, ExeAddr, SectionLen;
610 unsigned int *SectionTableAddr;
611
612 // Load base address of Global Section Table
613 SectionTableAddr = &__data_section_table;
614
615 // Copy the data sections from flash to SRAM.
616 while (SectionTableAddr < &__data_section_table_end) {
617 LoadAddr = *SectionTableAddr++;
618 ExeAddr = *SectionTableAddr++;
619 SectionLen = *SectionTableAddr++;
620 data_init(LoadAddr, ExeAddr, SectionLen);
621 }
622
623 // At this point, SectionTableAddr = &__bss_section_table;
624 // Zero fill the bss segment
625 while (SectionTableAddr < &__bss_section_table_end) {
626 ExeAddr = *SectionTableAddr++;
627 SectionLen = *SectionTableAddr++;
628 bss_init(ExeAddr, SectionLen);
629 }
630
631 #if defined (__cplusplus)
632 //
633 // Call C++ library initialisation
634 //
635 __libc_init_array();
636 #endif
637
638 // Reenable interrupts
639 __asm volatile ("cpsie i");
640
641 #if defined (__REDLIB__)
642 // Call the Redlib library, which in turn calls main()
643 __main();
644 #else
645 main();
646 #endif
647
648 //
649 // main() shouldn't return, but if it does, we'll just enter an infinite loop
650 //
651 while (1) {
652 ;
653 }
654 }
655
656 //*****************************************************************************
657 // Default core exception handlers. Override the ones here by defining your own
658 // handler routines in your application code.
659 //*****************************************************************************
NMI_Handler(void)660 WEAK_AV void NMI_Handler(void)
661 { while(1) {}
662 }
663
HardFault_Handler(void)664 WEAK_AV void HardFault_Handler(void)
665 { while(1) {}
666 }
667
MemManage_Handler(void)668 WEAK_AV void MemManage_Handler(void)
669 { while(1) {}
670 }
671
BusFault_Handler(void)672 WEAK_AV void BusFault_Handler(void)
673 { while(1) {}
674 }
675
UsageFault_Handler(void)676 WEAK_AV void UsageFault_Handler(void)
677 { while(1) {}
678 }
679
SecureFault_Handler(void)680 WEAK_AV void SecureFault_Handler(void)
681 { while(1) {}
682 }
683
SVC_Handler(void)684 WEAK_AV void SVC_Handler(void)
685 { while(1) {}
686 }
687
DebugMon_Handler(void)688 WEAK_AV void DebugMon_Handler(void)
689 { while(1) {}
690 }
691
PendSV_Handler(void)692 WEAK_AV void PendSV_Handler(void)
693 { while(1) {}
694 }
695
SysTick_Handler(void)696 WEAK_AV void SysTick_Handler(void)
697 { while(1) {}
698 }
699
700 //*****************************************************************************
701 // Processor ends up here if an unexpected interrupt occurs or a specific
702 // handler is not present in the application code.
703 //*****************************************************************************
IntDefaultHandler(void)704 WEAK_AV void IntDefaultHandler(void)
705 { while(1) {}
706 }
707
708 //*****************************************************************************
709 // Default application exception handlers. Override the ones here by defining
710 // your own handler routines in your application code. These routines call
711 // driver exception handlers or IntDefaultHandler() if no driver exception
712 // handler is included.
713 //*****************************************************************************
WDT0_IRQHandler(void)714 WEAK void WDT0_IRQHandler(void)
715 { WDT0_DriverIRQHandler();
716 }
717
DMA0_IRQHandler(void)718 WEAK void DMA0_IRQHandler(void)
719 { DMA0_DriverIRQHandler();
720 }
721
GPIO_INTA_IRQHandler(void)722 WEAK void GPIO_INTA_IRQHandler(void)
723 { GPIO_INTA_DriverIRQHandler();
724 }
725
GPIO_INTB_IRQHandler(void)726 WEAK void GPIO_INTB_IRQHandler(void)
727 { GPIO_INTB_DriverIRQHandler();
728 }
729
PIN_INT0_IRQHandler(void)730 WEAK void PIN_INT0_IRQHandler(void)
731 { PIN_INT0_DriverIRQHandler();
732 }
733
PIN_INT1_IRQHandler(void)734 WEAK void PIN_INT1_IRQHandler(void)
735 { PIN_INT1_DriverIRQHandler();
736 }
737
PIN_INT2_IRQHandler(void)738 WEAK void PIN_INT2_IRQHandler(void)
739 { PIN_INT2_DriverIRQHandler();
740 }
741
PIN_INT3_IRQHandler(void)742 WEAK void PIN_INT3_IRQHandler(void)
743 { PIN_INT3_DriverIRQHandler();
744 }
745
UTICK_IRQHandler(void)746 WEAK void UTICK_IRQHandler(void)
747 { UTICK_DriverIRQHandler();
748 }
749
MRT0_IRQHandler(void)750 WEAK void MRT0_IRQHandler(void)
751 { MRT0_DriverIRQHandler();
752 }
753
CTIMER0_IRQHandler(void)754 WEAK void CTIMER0_IRQHandler(void)
755 { CTIMER0_DriverIRQHandler();
756 }
757
CTIMER1_IRQHandler(void)758 WEAK void CTIMER1_IRQHandler(void)
759 { CTIMER1_DriverIRQHandler();
760 }
761
SCT0_IRQHandler(void)762 WEAK void SCT0_IRQHandler(void)
763 { SCT0_DriverIRQHandler();
764 }
765
CTIMER3_IRQHandler(void)766 WEAK void CTIMER3_IRQHandler(void)
767 { CTIMER3_DriverIRQHandler();
768 }
769
FLEXCOMM0_IRQHandler(void)770 WEAK void FLEXCOMM0_IRQHandler(void)
771 { FLEXCOMM0_DriverIRQHandler();
772 }
773
FLEXCOMM1_IRQHandler(void)774 WEAK void FLEXCOMM1_IRQHandler(void)
775 { FLEXCOMM1_DriverIRQHandler();
776 }
777
FLEXCOMM2_IRQHandler(void)778 WEAK void FLEXCOMM2_IRQHandler(void)
779 { FLEXCOMM2_DriverIRQHandler();
780 }
781
FLEXCOMM3_IRQHandler(void)782 WEAK void FLEXCOMM3_IRQHandler(void)
783 { FLEXCOMM3_DriverIRQHandler();
784 }
785
Reserved34_IRQHandler(void)786 WEAK void Reserved34_IRQHandler(void)
787 { Reserved34_DriverIRQHandler();
788 }
789
Reserved35_IRQHandler(void)790 WEAK void Reserved35_IRQHandler(void)
791 { Reserved35_DriverIRQHandler();
792 }
793
FLEXCOMM14_IRQHandler(void)794 WEAK void FLEXCOMM14_IRQHandler(void)
795 { FLEXCOMM14_DriverIRQHandler();
796 }
797
Reserved37_IRQHandler(void)798 WEAK void Reserved37_IRQHandler(void)
799 { Reserved37_DriverIRQHandler();
800 }
801
Reserved38_IRQHandler(void)802 WEAK void Reserved38_IRQHandler(void)
803 { Reserved38_DriverIRQHandler();
804 }
805
MRT1_IRQHandler(void)806 WEAK void MRT1_IRQHandler(void)
807 { MRT1_DriverIRQHandler();
808 }
809
Reserved40_IRQHandler(void)810 WEAK void Reserved40_IRQHandler(void)
811 { Reserved40_DriverIRQHandler();
812 }
813
DMIC0_IRQHandler(void)814 WEAK void DMIC0_IRQHandler(void)
815 { DMIC0_DriverIRQHandler();
816 }
817
WFD_IRQHandler(void)818 WEAK void WFD_IRQHandler(void)
819 { WFD_DriverIRQHandler();
820 }
821
HYPERVISOR_IRQHandler(void)822 WEAK void HYPERVISOR_IRQHandler(void)
823 { HYPERVISOR_DriverIRQHandler();
824 }
825
SECUREVIOLATION_IRQHandler(void)826 WEAK void SECUREVIOLATION_IRQHandler(void)
827 { SECUREVIOLATION_DriverIRQHandler();
828 }
829
HWVAD0_IRQHandler(void)830 WEAK void HWVAD0_IRQHandler(void)
831 { HWVAD0_DriverIRQHandler();
832 }
833
Reserved46_IRQHandler(void)834 WEAK void Reserved46_IRQHandler(void)
835 { Reserved46_DriverIRQHandler();
836 }
837
Reserved47_IRQHandler(void)838 WEAK void Reserved47_IRQHandler(void)
839 { Reserved47_DriverIRQHandler();
840 }
841
RTC_IRQHandler(void)842 WEAK void RTC_IRQHandler(void)
843 { RTC_DriverIRQHandler();
844 }
845
Reserved49_IRQHandler(void)846 WEAK void Reserved49_IRQHandler(void)
847 { Reserved49_DriverIRQHandler();
848 }
849
Reserved50_IRQHandler(void)850 WEAK void Reserved50_IRQHandler(void)
851 { Reserved50_DriverIRQHandler();
852 }
853
PIN_INT4_IRQHandler(void)854 WEAK void PIN_INT4_IRQHandler(void)
855 { PIN_INT4_DriverIRQHandler();
856 }
857
PIN_INT5_IRQHandler(void)858 WEAK void PIN_INT5_IRQHandler(void)
859 { PIN_INT5_DriverIRQHandler();
860 }
861
PIN_INT6_IRQHandler(void)862 WEAK void PIN_INT6_IRQHandler(void)
863 { PIN_INT6_DriverIRQHandler();
864 }
865
PIN_INT7_IRQHandler(void)866 WEAK void PIN_INT7_IRQHandler(void)
867 { PIN_INT7_DriverIRQHandler();
868 }
869
CTIMER2_IRQHandler(void)870 WEAK void CTIMER2_IRQHandler(void)
871 { CTIMER2_DriverIRQHandler();
872 }
873
CTIMER4_IRQHandler(void)874 WEAK void CTIMER4_IRQHandler(void)
875 { CTIMER4_DriverIRQHandler();
876 }
877
OS_EVENT_IRQHandler(void)878 WEAK void OS_EVENT_IRQHandler(void)
879 { OS_EVENT_DriverIRQHandler();
880 }
881
FLEXSPI_IRQHandler(void)882 WEAK void FLEXSPI_IRQHandler(void)
883 { FLEXSPI_DriverIRQHandler();
884 }
885
Reserved59_IRQHandler(void)886 WEAK void Reserved59_IRQHandler(void)
887 { Reserved59_DriverIRQHandler();
888 }
889
Reserved60_IRQHandler(void)890 WEAK void Reserved60_IRQHandler(void)
891 { Reserved60_DriverIRQHandler();
892 }
893
Reserved61_IRQHandler(void)894 WEAK void Reserved61_IRQHandler(void)
895 { Reserved61_DriverIRQHandler();
896 }
897
SDU_IRQHandler(void)898 WEAK void SDU_IRQHandler(void)
899 { SDU_DriverIRQHandler();
900 }
901
SGPIO_INTA_IRQHandler(void)902 WEAK void SGPIO_INTA_IRQHandler(void)
903 { SGPIO_INTA_DriverIRQHandler();
904 }
905
SGPIO_INTB_IRQHandler(void)906 WEAK void SGPIO_INTB_IRQHandler(void)
907 { SGPIO_INTB_DriverIRQHandler();
908 }
909
Reserved65_IRQHandler(void)910 WEAK void Reserved65_IRQHandler(void)
911 { Reserved65_DriverIRQHandler();
912 }
913
USB_IRQHandler(void)914 WEAK void USB_IRQHandler(void)
915 { USB_DriverIRQHandler();
916 }
917
Reserved67_IRQHandler(void)918 WEAK void Reserved67_IRQHandler(void)
919 { Reserved67_DriverIRQHandler();
920 }
921
Reserved68_IRQHandler(void)922 WEAK void Reserved68_IRQHandler(void)
923 { Reserved68_DriverIRQHandler();
924 }
925
Reserved69_IRQHandler(void)926 WEAK void Reserved69_IRQHandler(void)
927 { Reserved69_DriverIRQHandler();
928 }
929
DMA1_IRQHandler(void)930 WEAK void DMA1_IRQHandler(void)
931 { DMA1_DriverIRQHandler();
932 }
933
PUF_IRQHandler(void)934 WEAK void PUF_IRQHandler(void)
935 { PUF_DriverIRQHandler();
936 }
937
POWERQUAD_IRQHandler(void)938 WEAK void POWERQUAD_IRQHandler(void)
939 { POWERQUAD_DriverIRQHandler();
940 }
941
Reserved73_IRQHandler(void)942 WEAK void Reserved73_IRQHandler(void)
943 { Reserved73_DriverIRQHandler();
944 }
945
Reserved74_IRQHandler(void)946 WEAK void Reserved74_IRQHandler(void)
947 { Reserved74_DriverIRQHandler();
948 }
949
Reserved75_IRQHandler(void)950 WEAK void Reserved75_IRQHandler(void)
951 { Reserved75_DriverIRQHandler();
952 }
953
Reserved76_IRQHandler(void)954 WEAK void Reserved76_IRQHandler(void)
955 { Reserved76_DriverIRQHandler();
956 }
957
LCDIC_IRQHandler(void)958 WEAK void LCDIC_IRQHandler(void)
959 { LCDIC_DriverIRQHandler();
960 }
961
CAPT_PULSE_IRQHandler(void)962 WEAK void CAPT_PULSE_IRQHandler(void)
963 { CAPT_PULSE_DriverIRQHandler();
964 }
965
Reserved79_IRQHandler(void)966 WEAK void Reserved79_IRQHandler(void)
967 { Reserved79_DriverIRQHandler();
968 }
969
WL_MCI_WAKEUP_DONE0_IRQHandler(void)970 WEAK void WL_MCI_WAKEUP_DONE0_IRQHandler(void)
971 { WL_MCI_WAKEUP_DONE0_DriverIRQHandler();
972 }
973
WL_MCI_WAKEUP_DONE1_IRQHandler(void)974 WEAK void WL_MCI_WAKEUP_DONE1_IRQHandler(void)
975 { WL_MCI_WAKEUP_DONE1_DriverIRQHandler();
976 }
977
WL_MCI_WAKEUP_DONE2_IRQHandler(void)978 WEAK void WL_MCI_WAKEUP_DONE2_IRQHandler(void)
979 { WL_MCI_WAKEUP_DONE2_DriverIRQHandler();
980 }
981
WL_MCI_WAKEUP_DONE3_IRQHandler(void)982 WEAK void WL_MCI_WAKEUP_DONE3_IRQHandler(void)
983 { WL_MCI_WAKEUP_DONE3_DriverIRQHandler();
984 }
985
WL_MCI_WAKEUP_DONE4_IRQHandler(void)986 WEAK void WL_MCI_WAKEUP_DONE4_IRQHandler(void)
987 { WL_MCI_WAKEUP_DONE4_DriverIRQHandler();
988 }
989
WL_MCI_WAKEUP_DONE5_IRQHandler(void)990 WEAK void WL_MCI_WAKEUP_DONE5_IRQHandler(void)
991 { WL_MCI_WAKEUP_DONE5_DriverIRQHandler();
992 }
993
WL_MCI_WAKEUP_DONE6_IRQHandler(void)994 WEAK void WL_MCI_WAKEUP_DONE6_IRQHandler(void)
995 { WL_MCI_WAKEUP_DONE6_DriverIRQHandler();
996 }
997
WL_MCI_WAKEUP_DONE7_IRQHandler(void)998 WEAK void WL_MCI_WAKEUP_DONE7_IRQHandler(void)
999 { WL_MCI_WAKEUP_DONE7_DriverIRQHandler();
1000 }
1001
WL_MCI_WAKEUP0_IRQHandler(void)1002 WEAK void WL_MCI_WAKEUP0_IRQHandler(void)
1003 { WL_MCI_WAKEUP0_DriverIRQHandler();
1004 }
1005
WL_MCI_WAKEUP1_IRQHandler(void)1006 WEAK void WL_MCI_WAKEUP1_IRQHandler(void)
1007 { WL_MCI_WAKEUP1_DriverIRQHandler();
1008 }
1009
WL_MCI_INT0_IRQHandler(void)1010 WEAK void WL_MCI_INT0_IRQHandler(void)
1011 { WL_MCI_INT0_DriverIRQHandler();
1012 }
1013
WL_MCI_INT1_IRQHandler(void)1014 WEAK void WL_MCI_INT1_IRQHandler(void)
1015 { WL_MCI_INT1_DriverIRQHandler();
1016 }
1017
WL_MCI_INT2_IRQHandler(void)1018 WEAK void WL_MCI_INT2_IRQHandler(void)
1019 { WL_MCI_INT2_DriverIRQHandler();
1020 }
1021
WL_MCI_INT3_IRQHandler(void)1022 WEAK void WL_MCI_INT3_IRQHandler(void)
1023 { WL_MCI_INT3_DriverIRQHandler();
1024 }
1025
WL_MCI_INT4_IRQHandler(void)1026 WEAK void WL_MCI_INT4_IRQHandler(void)
1027 { WL_MCI_INT4_DriverIRQHandler();
1028 }
1029
WL_MCI_INT5_IRQHandler(void)1030 WEAK void WL_MCI_INT5_IRQHandler(void)
1031 { WL_MCI_INT5_DriverIRQHandler();
1032 }
1033
WL_MCI_INT6_IRQHandler(void)1034 WEAK void WL_MCI_INT6_IRQHandler(void)
1035 { WL_MCI_INT6_DriverIRQHandler();
1036 }
1037
WL_MCI_INT7_IRQHandler(void)1038 WEAK void WL_MCI_INT7_IRQHandler(void)
1039 { WL_MCI_INT7_DriverIRQHandler();
1040 }
1041
BLE_MCI_WAKEUP_DONE0_IRQHandler(void)1042 WEAK void BLE_MCI_WAKEUP_DONE0_IRQHandler(void)
1043 { BLE_MCI_WAKEUP_DONE0_DriverIRQHandler();
1044 }
1045
BLE_MCI_WAKEUP_DONE1_IRQHandler(void)1046 WEAK void BLE_MCI_WAKEUP_DONE1_IRQHandler(void)
1047 { BLE_MCI_WAKEUP_DONE1_DriverIRQHandler();
1048 }
1049
BLE_MCI_WAKEUP_DONE2_IRQHandler(void)1050 WEAK void BLE_MCI_WAKEUP_DONE2_IRQHandler(void)
1051 { BLE_MCI_WAKEUP_DONE2_DriverIRQHandler();
1052 }
1053
BLE_MCI_WAKEUP_DONE3_IRQHandler(void)1054 WEAK void BLE_MCI_WAKEUP_DONE3_IRQHandler(void)
1055 { BLE_MCI_WAKEUP_DONE3_DriverIRQHandler();
1056 }
1057
BLE_MCI_WAKEUP_DONE4_IRQHandler(void)1058 WEAK void BLE_MCI_WAKEUP_DONE4_IRQHandler(void)
1059 { BLE_MCI_WAKEUP_DONE4_DriverIRQHandler();
1060 }
1061
BLE_MCI_WAKEUP_DONE5_IRQHandler(void)1062 WEAK void BLE_MCI_WAKEUP_DONE5_IRQHandler(void)
1063 { BLE_MCI_WAKEUP_DONE5_DriverIRQHandler();
1064 }
1065
BLE_MCI_WAKEUP_DONE6_IRQHandler(void)1066 WEAK void BLE_MCI_WAKEUP_DONE6_IRQHandler(void)
1067 { BLE_MCI_WAKEUP_DONE6_DriverIRQHandler();
1068 }
1069
BLE_MCI_WAKEUP_DONE7_IRQHandler(void)1070 WEAK void BLE_MCI_WAKEUP_DONE7_IRQHandler(void)
1071 { BLE_MCI_WAKEUP_DONE7_DriverIRQHandler();
1072 }
1073
BLE_MCI_WAKEUP0_IRQHandler(void)1074 WEAK void BLE_MCI_WAKEUP0_IRQHandler(void)
1075 { BLE_MCI_WAKEUP0_DriverIRQHandler();
1076 }
1077
BLE_MCI_WAKEUP1_IRQHandler(void)1078 WEAK void BLE_MCI_WAKEUP1_IRQHandler(void)
1079 { BLE_MCI_WAKEUP1_DriverIRQHandler();
1080 }
1081
BLE_MCI_INT0_IRQHandler(void)1082 WEAK void BLE_MCI_INT0_IRQHandler(void)
1083 { BLE_MCI_INT0_DriverIRQHandler();
1084 }
1085
BLE_MCI_INT1_IRQHandler(void)1086 WEAK void BLE_MCI_INT1_IRQHandler(void)
1087 { BLE_MCI_INT1_DriverIRQHandler();
1088 }
1089
BLE_MCI_INT2_IRQHandler(void)1090 WEAK void BLE_MCI_INT2_IRQHandler(void)
1091 { BLE_MCI_INT2_DriverIRQHandler();
1092 }
1093
BLE_MCI_INT3_IRQHandler(void)1094 WEAK void BLE_MCI_INT3_IRQHandler(void)
1095 { BLE_MCI_INT3_DriverIRQHandler();
1096 }
1097
BLE_MCI_INT4_IRQHandler(void)1098 WEAK void BLE_MCI_INT4_IRQHandler(void)
1099 { BLE_MCI_INT4_DriverIRQHandler();
1100 }
1101
BLE_MCI_INT5_IRQHandler(void)1102 WEAK void BLE_MCI_INT5_IRQHandler(void)
1103 { BLE_MCI_INT5_DriverIRQHandler();
1104 }
1105
BLE_MCI_INT6_IRQHandler(void)1106 WEAK void BLE_MCI_INT6_IRQHandler(void)
1107 { BLE_MCI_INT6_DriverIRQHandler();
1108 }
1109
BLE_MCI_INT7_IRQHandler(void)1110 WEAK void BLE_MCI_INT7_IRQHandler(void)
1111 { BLE_MCI_INT7_DriverIRQHandler();
1112 }
1113
PIN0_INT_IRQHandler(void)1114 WEAK void PIN0_INT_IRQHandler(void)
1115 { PIN0_INT_DriverIRQHandler();
1116 }
1117
PIN1_INT_IRQHandler(void)1118 WEAK void PIN1_INT_IRQHandler(void)
1119 { PIN1_INT_DriverIRQHandler();
1120 }
1121
ELS_IRQHandler(void)1122 WEAK void ELS_IRQHandler(void)
1123 { ELS_DriverIRQHandler();
1124 }
1125
ELS_GDET_IRQ_IRQHandler(void)1126 WEAK void ELS_GDET_IRQ_IRQHandler(void)
1127 { ELS_GDET_IRQ_DriverIRQHandler();
1128 }
1129
ELS_GDET_ERR_IRQHandler(void)1130 WEAK void ELS_GDET_ERR_IRQHandler(void)
1131 { ELS_GDET_ERR_DriverIRQHandler();
1132 }
1133
PKC_IRQHandler(void)1134 WEAK void PKC_IRQHandler(void)
1135 { PKC_DriverIRQHandler();
1136 }
1137
PKC_ERR_IRQHandler(void)1138 WEAK void PKC_ERR_IRQHandler(void)
1139 { PKC_ERR_DriverIRQHandler();
1140 }
1141
CDOG_IRQHandler(void)1142 WEAK void CDOG_IRQHandler(void)
1143 { CDOG_DriverIRQHandler();
1144 }
1145
GAU_GPDAC_INT_FUNC11_IRQHandler(void)1146 WEAK void GAU_GPDAC_INT_FUNC11_IRQHandler(void)
1147 { GAU_GPDAC_INT_FUNC11_DriverIRQHandler();
1148 }
1149
GAU_ACOMP_INT_WKUP11_IRQHandler(void)1150 WEAK void GAU_ACOMP_INT_WKUP11_IRQHandler(void)
1151 { GAU_ACOMP_INT_WKUP11_DriverIRQHandler();
1152 }
1153
GAU_ACOMP_INT_FUNC11_IRQHandler(void)1154 WEAK void GAU_ACOMP_INT_FUNC11_IRQHandler(void)
1155 { GAU_ACOMP_INT_FUNC11_DriverIRQHandler();
1156 }
1157
GAU_GPADC1_INT_FUNC11_IRQHandler(void)1158 WEAK void GAU_GPADC1_INT_FUNC11_IRQHandler(void)
1159 { GAU_GPADC1_INT_FUNC11_DriverIRQHandler();
1160 }
1161
GAU_GPADC0_INT_FUNC11_IRQHandler(void)1162 WEAK void GAU_GPADC0_INT_FUNC11_IRQHandler(void)
1163 { GAU_GPADC0_INT_FUNC11_DriverIRQHandler();
1164 }
1165
USIM_IRQHandler(void)1166 WEAK void USIM_IRQHandler(void)
1167 { USIM_DriverIRQHandler();
1168 }
1169
OCOTP_IRQHandler(void)1170 WEAK void OCOTP_IRQHandler(void)
1171 { OCOTP_DriverIRQHandler();
1172 }
1173
ENET_IRQHandler(void)1174 WEAK void ENET_IRQHandler(void)
1175 { ENET_DriverIRQHandler();
1176 }
1177
ENET_TIMER_IRQHandler(void)1178 WEAK void ENET_TIMER_IRQHandler(void)
1179 { ENET_TIMER_DriverIRQHandler();
1180 }
1181
BOD_1_85_INT_IRQHandler(void)1182 WEAK void BOD_1_85_INT_IRQHandler(void)
1183 { BOD_1_85_INT_DriverIRQHandler();
1184 }
1185
BOD_1_85_NEG_IRQHandler(void)1186 WEAK void BOD_1_85_NEG_IRQHandler(void)
1187 { BOD_1_85_NEG_DriverIRQHandler();
1188 }
1189
ITRC_IRQHandler(void)1190 WEAK void ITRC_IRQHandler(void)
1191 { ITRC_DriverIRQHandler();
1192 }
1193
BTU_HOST_TRIGGER0_IRQHandler(void)1194 WEAK void BTU_HOST_TRIGGER0_IRQHandler(void)
1195 { BTU_HOST_TRIGGER0_DriverIRQHandler();
1196 }
1197
BTU_HOST_TRIGGER1_IRQHandler(void)1198 WEAK void BTU_HOST_TRIGGER1_IRQHandler(void)
1199 { BTU_HOST_TRIGGER1_DriverIRQHandler();
1200 }
1201
BTU_HOST_TRIGGER2_IRQHandler(void)1202 WEAK void BTU_HOST_TRIGGER2_IRQHandler(void)
1203 { BTU_HOST_TRIGGER2_DriverIRQHandler();
1204 }
1205
TRNG_IRQHandler(void)1206 WEAK void TRNG_IRQHandler(void)
1207 { TRNG_DriverIRQHandler();
1208 }
1209
AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_IRQHandler(void)1210 WEAK void AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_IRQHandler(void)
1211 { AHB_MEM_ACC_CHECKER_VIO_INT_C_OR_DriverIRQHandler();
1212 }
1213
AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_IRQHandler(void)1214 WEAK void AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_IRQHandler(void)
1215 { AHB_MEM_ACC_CHECKER_VIO_INT_S_OR_DriverIRQHandler();
1216 }
1217
WL_ACC_INT_IRQHandler(void)1218 WEAK void WL_ACC_INT_IRQHandler(void)
1219 { WL_ACC_INT_DriverIRQHandler();
1220 }
1221
BLE_ACC_INT_IRQHandler(void)1222 WEAK void BLE_ACC_INT_IRQHandler(void)
1223 { BLE_ACC_INT_DriverIRQHandler();
1224 }
1225
GDMA_IRQHandler(void)1226 WEAK void GDMA_IRQHandler(void)
1227 { GDMA_DriverIRQHandler();
1228 }
1229
1230 //*****************************************************************************
1231
1232 #if defined (DEBUG)
1233 #pragma GCC pop_options
1234 #endif // (DEBUG)
1235