1 /*
2 * Copyright (c) 2009-2024, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19 /*
20 * This file is derivative of CMSIS V5.6.0 startup_ARMv81MML.c
21 * Git SHA: b5f0603d6a584d1724d952fd8b0737458b90d62b
22 */
23
24 #include "stm32u5xx.h"
25
26 /*----------------------------------------------------------------------------
27 External References
28 *----------------------------------------------------------------------------*/
29 extern uint32_t __INITIAL_SP;
30 extern uint32_t __STACK_LIMIT;
31
32 extern __NO_RETURN void __PROGRAM_START(void);
33
34 /*----------------------------------------------------------------------------
35 Internal References
36 *----------------------------------------------------------------------------*/
37 __NO_RETURN void Reset_Handler (void);
38
39 /*----------------------------------------------------------------------------
40 Exception / Interrupt Handler
41 *----------------------------------------------------------------------------*/
42 #define DEFAULT_IRQ_HANDLER(handler_name) \
43 __NO_RETURN void __WEAK handler_name(void); \
44 void handler_name(void) { \
45 while(1); \
46 }
47
48 /* Exceptions */
49 DEFAULT_IRQ_HANDLER(NMI_Handler)
50 DEFAULT_IRQ_HANDLER(HardFault_Handler)
51 DEFAULT_IRQ_HANDLER(MemManage_Handler)
52 DEFAULT_IRQ_HANDLER(BusFault_Handler)
53 DEFAULT_IRQ_HANDLER(UsageFault_Handler)
54 DEFAULT_IRQ_HANDLER(SecureFault_Handler)
55 DEFAULT_IRQ_HANDLER(SVC_Handler)
56 DEFAULT_IRQ_HANDLER(DebugMon_Handler)
57 DEFAULT_IRQ_HANDLER(PendSV_Handler)
58 DEFAULT_IRQ_HANDLER(SysTick_Handler)
59
60 DEFAULT_IRQ_HANDLER(WWDG_IRQHandler)
61 DEFAULT_IRQ_HANDLER(PVD_AVD_IRQHandler)
62 DEFAULT_IRQ_HANDLER(RTC_IRQHandler)
63 DEFAULT_IRQ_HANDLER(RTC_IRQHandler_S)
64 DEFAULT_IRQ_HANDLER(TAMP_IRQHandler)
65 DEFAULT_IRQ_HANDLER(RAMCFG_IRQHandler)
66 DEFAULT_IRQ_HANDLER(FLASH_IRQHandler)
67 DEFAULT_IRQ_HANDLER(FLASH_IRQHandler_S)
68 DEFAULT_IRQ_HANDLER(GTZC_IRQHandler)
69 DEFAULT_IRQ_HANDLER(RCC_IRQHandler)
70 DEFAULT_IRQ_HANDLER(RCC_IRQHandler_S)
71 DEFAULT_IRQ_HANDLER(EXTI0_IRQHandler)
72 DEFAULT_IRQ_HANDLER(EXTI1_IRQHandler)
73 DEFAULT_IRQ_HANDLER(EXTI2_IRQHandler)
74 DEFAULT_IRQ_HANDLER(EXTI3_IRQHandler)
75 DEFAULT_IRQ_HANDLER(EXTI4_IRQHandler)
76 DEFAULT_IRQ_HANDLER(EXTI5_IRQHandler)
77 DEFAULT_IRQ_HANDLER(EXTI6_IRQHandler)
78 DEFAULT_IRQ_HANDLER(EXTI7_IRQHandler)
79 DEFAULT_IRQ_HANDLER(EXTI8_IRQHandler)
80 DEFAULT_IRQ_HANDLER(EXTI9_IRQHandler)
81 DEFAULT_IRQ_HANDLER(EXTI10_IRQHandler)
82 DEFAULT_IRQ_HANDLER(EXTI11_IRQHandler)
83 DEFAULT_IRQ_HANDLER(EXTI12_IRQHandler)
84 DEFAULT_IRQ_HANDLER(EXTI13_IRQHandler)
85 DEFAULT_IRQ_HANDLER(EXTI14_IRQHandler)
86 DEFAULT_IRQ_HANDLER(EXTI15_IRQHandler)
87 DEFAULT_IRQ_HANDLER(IWDG_IRQHandler)
88 #ifdef STM32U585xx
89 DEFAULT_IRQ_HANDLER(SAES_IRQHandler)
90 #endif
91 DEFAULT_IRQ_HANDLER(GPDMA1_Channel0_IRQHandler)
92 DEFAULT_IRQ_HANDLER(GPDMA1_Channel1_IRQHandler)
93 DEFAULT_IRQ_HANDLER(GPDMA1_Channel2_IRQHandler)
94 DEFAULT_IRQ_HANDLER(GPDMA1_Channel3_IRQHandler)
95 DEFAULT_IRQ_HANDLER(GPDMA1_Channel4_IRQHandler)
96 DEFAULT_IRQ_HANDLER(GPDMA1_Channel5_IRQHandler)
97 DEFAULT_IRQ_HANDLER(GPDMA1_Channel6_IRQHandler)
98 DEFAULT_IRQ_HANDLER(GPDMA1_Channel7_IRQHandler)
99 DEFAULT_IRQ_HANDLER(ADC1_IRQHandler)
100 DEFAULT_IRQ_HANDLER(DAC1_IRQHandler)
101 DEFAULT_IRQ_HANDLER(FDCAN1_IT0_IRQHandler)
102 DEFAULT_IRQ_HANDLER(FDCAN1_IT1_IRQHandler)
103 DEFAULT_IRQ_HANDLER(TIM1_BRK_IRQHandler)
104 DEFAULT_IRQ_HANDLER(TIM1_UP_IRQHandler)
105 DEFAULT_IRQ_HANDLER(TIM1_TRG_COM_IRQHandler)
106 DEFAULT_IRQ_HANDLER(TIM1_CC_IRQHandler)
107 DEFAULT_IRQ_HANDLER(TIM2_IRQHandler)
108 DEFAULT_IRQ_HANDLER(TIM3_IRQHandler)
109 DEFAULT_IRQ_HANDLER(TIM4_IRQHandler)
110 DEFAULT_IRQ_HANDLER(TIM5_IRQHandler)
111 DEFAULT_IRQ_HANDLER(TIM6_IRQHandler)
112 DEFAULT_IRQ_HANDLER(TIM7_IRQHandler)
113 DEFAULT_IRQ_HANDLER(TIM8_BRK_IRQHandler)
114 DEFAULT_IRQ_HANDLER(TIM8_UP_IRQHandler)
115 DEFAULT_IRQ_HANDLER(TIM8_TRG_COM_IRQHandler)
116 DEFAULT_IRQ_HANDLER(TIM8_CC_IRQHandler)
117 DEFAULT_IRQ_HANDLER(I2C1_EV_IRQHandler)
118 DEFAULT_IRQ_HANDLER(I2C1_ER_IRQHandler)
119 DEFAULT_IRQ_HANDLER(I2C2_EV_IRQHandler)
120 DEFAULT_IRQ_HANDLER(I2C2_ER_IRQHandler)
121 DEFAULT_IRQ_HANDLER(SPI1_IRQHandler)
122 DEFAULT_IRQ_HANDLER(SPI2_IRQHandler)
123 DEFAULT_IRQ_HANDLER(USART1_IRQHandler)
124 DEFAULT_IRQ_HANDLER(USART2_IRQHandler)
125 DEFAULT_IRQ_HANDLER(USART3_IRQHandler)
126 DEFAULT_IRQ_HANDLER(UART4_IRQHandler)
127 DEFAULT_IRQ_HANDLER(UART5_IRQHandler)
128 DEFAULT_IRQ_HANDLER(LPUART1_IRQHandler)
129 DEFAULT_IRQ_HANDLER(LPTIM1_IRQHandler)
130 DEFAULT_IRQ_HANDLER(LPTIM2_IRQHandler)
131 DEFAULT_IRQ_HANDLER(TIM15_IRQHandler)
132 DEFAULT_IRQ_HANDLER(TIM16_IRQHandler)
133 DEFAULT_IRQ_HANDLER(TIM17_IRQHandler)
134 DEFAULT_IRQ_HANDLER(COMP_IRQHandler)
135 DEFAULT_IRQ_HANDLER(OTG_FS_IRQHandler)
136 DEFAULT_IRQ_HANDLER(CRS_IRQHandler)
137 DEFAULT_IRQ_HANDLER(FMC_IRQHandler)
138 DEFAULT_IRQ_HANDLER(OCTOSPI1_IRQHandler)
139 DEFAULT_IRQ_HANDLER(PWR_S3WU_IRQHandler)
140 DEFAULT_IRQ_HANDLER(SDMMC1_IRQHandler)
141 DEFAULT_IRQ_HANDLER(SDMMC2_IRQHandler)
142
143 DEFAULT_IRQ_HANDLER(DMA2_Channel1_IRQHandler)
144 DEFAULT_IRQ_HANDLER(GPDMA1_Channel8_IRQHandler)
145 DEFAULT_IRQ_HANDLER(GPDMA1_Channel9_IRQHandler)
146 DEFAULT_IRQ_HANDLER(GPDMA1_Channel10_IRQHandler)
147 DEFAULT_IRQ_HANDLER(GPDMA1_Channel11_IRQHandler)
148 DEFAULT_IRQ_HANDLER(GPDMA1_Channel12_IRQHandler)
149 DEFAULT_IRQ_HANDLER(GPDMA1_Channel13_IRQHandler)
150 DEFAULT_IRQ_HANDLER(GPDMA1_Channel14_IRQHandler)
151 DEFAULT_IRQ_HANDLER(GPDMA1_Channel15_IRQHandler)
152 DEFAULT_IRQ_HANDLER(I2C3_EV_IRQHandler)
153 DEFAULT_IRQ_HANDLER(I2C3_ER_IRQHandler)
154 DEFAULT_IRQ_HANDLER(SAI1_IRQHandler)
155 DEFAULT_IRQ_HANDLER(SAI2_IRQHandler)
156 DEFAULT_IRQ_HANDLER(TSC_IRQHandler)
157 #ifdef STM32U585xx
158 DEFAULT_IRQ_HANDLER(AES_IRQHandler)
159 #endif
160 DEFAULT_IRQ_HANDLER(RNG_IRQHandler)
161 DEFAULT_IRQ_HANDLER(FPU_IRQHandler)
162 DEFAULT_IRQ_HANDLER(HASH_IRQHandler)
163 #ifdef STM32U585xx
164 DEFAULT_IRQ_HANDLER(PKA_IRQHandler)
165 #endif
166 DEFAULT_IRQ_HANDLER(LPTIM3_IRQHandler)
167 DEFAULT_IRQ_HANDLER(SPI3_IRQHandler)
168 DEFAULT_IRQ_HANDLER(I2C4_ER_IRQHandler)
169 DEFAULT_IRQ_HANDLER(I2C4_EV_IRQHandler)
170 DEFAULT_IRQ_HANDLER(MDF1_FLT0_IRQHandler)
171 DEFAULT_IRQ_HANDLER(MDF1_FLT1_IRQHandler)
172 DEFAULT_IRQ_HANDLER(MDF1_FLT2_IRQHandler)
173 DEFAULT_IRQ_HANDLER(MDF1_FLT3_IRQHandler)
174 DEFAULT_IRQ_HANDLER(UCPD1_IRQHandler)
175 DEFAULT_IRQ_HANDLER(ICACHE_IRQHandler)
176 #ifdef STM32U585xx
177 DEFAULT_IRQ_HANDLER(OTFDEC1_IRQHandler)
178 DEFAULT_IRQ_HANDLER(OTFDEC2_IRQHandler)
179 #endif
180 DEFAULT_IRQ_HANDLER(LPTIM4_IRQHandler)
181 DEFAULT_IRQ_HANDLER(DCACHE1_IRQHandler)
182 DEFAULT_IRQ_HANDLER(ADF1_IRQHandler)
183 DEFAULT_IRQ_HANDLER(ADC4_IRQHandler)
184 DEFAULT_IRQ_HANDLER(LPDMA1_Channel0_IRQHandler)
185 DEFAULT_IRQ_HANDLER(LPDMA1_Channel1_IRQHandler)
186 DEFAULT_IRQ_HANDLER(LPDMA1_Channel2_IRQHandler)
187 DEFAULT_IRQ_HANDLER(LPDMA1_Channel3_IRQHandler)
188 DEFAULT_IRQ_HANDLER(DMA2D_IRQHandler)
189 DEFAULT_IRQ_HANDLER(DCMI_PSSI_IRQHandler)
190 DEFAULT_IRQ_HANDLER(OCTOSPI2_IRQHandler)
191 DEFAULT_IRQ_HANDLER(MDF1_FLT4_IRQHandler)
192 DEFAULT_IRQ_HANDLER(MDF1_FLT5_IRQHandler)
193 DEFAULT_IRQ_HANDLER(CORDIC_IRQHandler)
194 DEFAULT_IRQ_HANDLER(FMAC_IRQHandler)
195
196 /*----------------------------------------------------------------------------
197 Exception / Interrupt Vector table
198 *----------------------------------------------------------------------------*/
199
200 #if defined ( __GNUC__ )
201 #pragma GCC diagnostic push
202 #pragma GCC diagnostic ignored "-Wpedantic"
203 #endif
204
205 extern const VECTOR_TABLE_Type __VECTOR_TABLE[];
206 const VECTOR_TABLE_Type __VECTOR_TABLE[] __VECTOR_TABLE_ATTRIBUTE = {
207 (VECTOR_TABLE_Type)(&__INITIAL_SP),/* Initial Stack Pointer */
208 Reset_Handler, /* Reset Handler */
209 NMI_Handler, /* -14: NMI Handler */
210 HardFault_Handler, /* -13: Hard Fault Handler */
211 MemManage_Handler, /* -12: MPU Fault Handler */
212 BusFault_Handler, /* -11: Bus Fault Handler */
213 UsageFault_Handler, /* -10: Usage Fault Handler */
214 SecureFault_Handler, /* -9: Secure Fault Handler */
215 0, /* Reserved */
216 0, /* Reserved */
217 0, /* Reserved */
218 SVC_Handler, /* -5: SVCall Handler */
219 DebugMon_Handler, /* -4: Debug Monitor Handler */
220 0, /* Reserved */
221 PendSV_Handler, /* -2: PendSV Handler */
222 SysTick_Handler, /* -1: SysTick Handler */
223 WWDG_IRQHandler, /* 0: Window WatchDog */
224 PVD_AVD_IRQHandler, /* 1: PVD/AVD through EXTI Line detection Interrupt */
225 RTC_IRQHandler, /* 2: RTC non-secure interrupt */
226 RTC_IRQHandler_S, /* 3: RTC secure interrupt */
227 TAMP_IRQHandler, /* 4: Tamper non-secure interrupt */
228 RAMCFG_IRQHandler, /* 5: RAMCFG global */
229 FLASH_IRQHandler, /* 6: FLASH non-secure global interrupt */
230 FLASH_IRQHandler_S, /* 7: FLASH secure global interrupt */
231 GTZC_IRQHandler, /* 8: Global TrustZone Controller interrupt */
232 RCC_IRQHandler, /* 9: RRCC non-secure global interrupts */
233 RCC_IRQHandler_S, /* 10: RRCC secure global interrupts */
234 EXTI0_IRQHandler, /* 11: REXTI Line0 */
235 EXTI1_IRQHandler, /* 12: REXTI Line1 */
236 EXTI2_IRQHandler, /* 13: REXTI Line2 */
237 EXTI3_IRQHandler, /* 14: REXTI Line3 */
238 EXTI4_IRQHandler, /* 15: REXTI Line4 */
239 EXTI5_IRQHandler, /* 16: REXTI Line5 */
240 EXTI6_IRQHandler, /* 17: REXTI Line6 */
241 EXTI7_IRQHandler, /* 18: REXTI Line7 */
242 EXTI8_IRQHandler, /* 19: REXTI Line8 */
243 EXTI9_IRQHandler, /* 20: REXTI Line9 */
244 EXTI10_IRQHandler, /* 21: EXTI Line10 */
245 EXTI11_IRQHandler, /* 22: EXTI Line11 */
246 EXTI12_IRQHandler, /* 23: EXTI Line12 */
247 EXTI13_IRQHandler, /* 24: EXTI Line13 */
248 EXTI14_IRQHandler, /* 25: EXTI Line14 */
249 EXTI15_IRQHandler, /* 26: EXTI Line15 */
250 IWDG_IRQHandler, /* 27: IWDG global interrupt */
251 #ifdef STM32U585xx
252 SAES_IRQHandler, /* 28:Secure AES global interrupt */
253 #else
254 0, /* 28: Reserved */
255 #endif
256 GPDMA1_Channel0_IRQHandler, /* 29: GPDMA1 Channel 0 global interrupt */
257 GPDMA1_Channel1_IRQHandler, /* 30: GPDMA1 Channel 1 global interrupt */
258 GPDMA1_Channel2_IRQHandler, /* 31: GPDMA1 Channel 2 global interrupt */
259 GPDMA1_Channel3_IRQHandler, /* 32: GPDMA1 Channel 3 global interrupt */
260 GPDMA1_Channel4_IRQHandler, /* 33: GPDMA1 Channel 4 global interrupt */
261 GPDMA1_Channel5_IRQHandler, /* 34: GPDMA1 Channel 5 global interrupt */
262 GPDMA1_Channel6_IRQHandler, /* 35: GPDMA1 Channel 6 global interrupt */
263 GPDMA1_Channel7_IRQHandler, /* 36: GPDMA1 Channel 7 global interrupt */
264 ADC1_IRQHandler, /* 37: ADC1 global interrupt */
265 DAC1_IRQHandler, /* 38: DAC1 global interrupt */
266 FDCAN1_IT0_IRQHandler, /* 39: FDCAN1 Interrupt 0 */
267 FDCAN1_IT1_IRQHandler, /* 40: FDCAN1 Interrupt 1 */
268 TIM1_BRK_IRQHandler, /* 41: TIM1 Break */
269 TIM1_UP_IRQHandler, /* 42: TIM1 Update */
270 TIM1_TRG_COM_IRQHandler, /* 43: TIM1 Trigger and Commutation */
271 TIM1_CC_IRQHandler, /* 44: TIM1 Capture Compare */
272 TIM2_IRQHandler, /* 45: TIM2 */
273 TIM3_IRQHandler, /* 46: TIM3 */
274 TIM4_IRQHandler, /* 47: TIM4 */
275 TIM5_IRQHandler, /* 48: TIM5 */
276 TIM6_IRQHandler, /* 49: TIM6 */
277 TIM7_IRQHandler, /* 50: TIM7 */
278 TIM8_BRK_IRQHandler, /* 51: TIM8 Break */
279 TIM8_UP_IRQHandler, /* 52: TIM8 Update */
280 TIM8_TRG_COM_IRQHandler, /* 53: TIM8 Trigger and Commutation */
281 TIM8_CC_IRQHandler, /* 54: TIM8 Capture Compare */
282 I2C1_EV_IRQHandler, /* 55: I2C1 Event */
283 I2C1_ER_IRQHandler, /* 56: I2C1 Error */
284 I2C2_EV_IRQHandler, /* 57: I2C2 Event */
285 I2C2_ER_IRQHandler, /* 58: I2C2 Error */
286 SPI1_IRQHandler, /* 59: SPI1 */
287 SPI2_IRQHandler, /* 60: SPI2 */
288 USART1_IRQHandler, /* 61: USART1 */
289 USART2_IRQHandler, /* 62: USART2 */
290 USART3_IRQHandler, /* 63: USART3 */
291 UART4_IRQHandler, /* 64: UART4 */
292 UART5_IRQHandler, /* 65: UART5 */
293 LPUART1_IRQHandler, /* 66: LP UART1 */
294 LPTIM1_IRQHandler, /* 67: LP TIM1 */
295 LPTIM2_IRQHandler, /* 68: LP TIM2 */
296 TIM15_IRQHandler, /* 69: TIM15 */
297 TIM16_IRQHandler, /* 70: TIM16 */
298 TIM17_IRQHandler, /* 71: TIM17 */
299 COMP_IRQHandler, /* 72: COMP1&2 */
300 OTG_FS_IRQHandler, /* 73: USB OTG FS global interrupt */
301 CRS_IRQHandler, /* 74: CRS */
302 FMC_IRQHandler, /* 75: FMC */
303 OCTOSPI1_IRQHandler, /* 76: OctoSPI1 global interrupt */
304 PWR_S3WU_IRQHandler, /* 77: PWR wake up from Stop3 interrupt */
305 SDMMC1_IRQHandler, /* 78: SDMMC1 global interrupt */
306 SDMMC2_IRQHandler, /* 79: SDMMC2 global interrupt*/
307 GPDMA1_Channel8_IRQHandler, /* 80: GPDMA1 Channel 8 global interrupt*/
308 GPDMA1_Channel9_IRQHandler, /* 81: GPDMA1 Channel 9 global interrupt*/
309 GPDMA1_Channel10_IRQHandler, /* 82: GPDMA1 Channel 10 global interrupt*/
310 GPDMA1_Channel11_IRQHandler, /* 83: GPDMA1 Channel 11 global interrupt*/
311 GPDMA1_Channel12_IRQHandler, /* 84: GPDMA1 Channel 12 global interrupt*/
312 GPDMA1_Channel13_IRQHandler, /* 85: GPDMA1 Channel 13 global interrupt*/
313 GPDMA1_Channel14_IRQHandler, /* 86: GPDMA1 Channel 14 global interrupt*/
314 GPDMA1_Channel15_IRQHandler, /* 87: GPDMA1 Channel 15 global interrupt*/
315 I2C3_EV_IRQHandler, /* 88: I2C3 event */
316 I2C3_ER_IRQHandler, /* 89: I2C3 error */
317 SAI1_IRQHandler, /* 90: Serial Audio Interface 1 global interrupt */
318 SAI2_IRQHandler, /* 91: Serial Audio Interface 2 global interrupt */
319 TSC_IRQHandler, /* 92: Touch Sense Controller global interrupt */
320 #ifdef STM32U585xx
321 AES_IRQHandler, /* 93: AES global interrupt */
322 #else
323 0, /* 93: Reserved */
324 #endif
325 RNG_IRQHandler, /* 94: RNG global interrupt */
326 FPU_IRQHandler, /* 95: FPU */
327 HASH_IRQHandler, /* 96: HASH global interrupt */
328 #ifdef STM32U585xx
329 PKA_IRQHandler, /* 97: PKA global interrupt */
330 #else
331 0, /* 97: Reserved */
332 #endif
333 LPTIM3_IRQHandler, /* 98: LP TIM3 */
334 SPI3_IRQHandler, /* 99: SPI3 */
335 I2C4_ER_IRQHandler, /* 100: I2C4 error */
336 I2C4_EV_IRQHandler, /* 101: I2C4 event */
337 MDF1_FLT0_IRQHandler, /* 102: MDF1 Filter 0 global interrupt */
338 MDF1_FLT1_IRQHandler, /* 103: MDF1 Filter 1 global interrupt */
339 MDF1_FLT2_IRQHandler, /* 104: MDF1 Filter 2 global interrupt */
340 MDF1_FLT3_IRQHandler, /* 105: MDF1 Filter 3 global interrupt */
341 UCPD1_IRQHandler, /* 106: UCPD1 global interrupt */
342 ICACHE_IRQHandler, /* 107: Instruction cache global interrupt*/
343 #ifdef STM32U585xx
344 OTFDEC1_IRQHandler, /* 108: OTFDEC1 global interrupt */
345 OTFDEC2_IRQHandler, /* 108: OTFDEC2 global interrupt */
346 #else
347 0, /* 108: Reserved */
348 0, /* 109: Reserved */
349 #endif
350 LPTIM4_IRQHandler, /* 110: LPTIM4 global interrupt */
351 DCACHE1_IRQHandler, /* 111: Data cache global interrupt */
352 ADF1_IRQHandler, /* 112: ADF interrupt */
353 ADC4_IRQHandler, /* 113: ADC4 (12bits) global interrupt */
354 LPDMA1_Channel0_IRQHandler, /* 114: LPDMA1 SmartRun Channel 0 global interrupt */
355 LPDMA1_Channel1_IRQHandler, /* 115: LPDMA1 SmartRun Channel 0 global interrupt */
356 LPDMA1_Channel2_IRQHandler, /* 116: LPDMA1 SmartRun Channel 0 global interrupt */
357 LPDMA1_Channel3_IRQHandler, /* 117: LPDMA1 SmartRun Channel 0 global interrupt */
358 DMA2D_IRQHandler, /* 118: DMA2D global interrupt */
359 DCMI_PSSI_IRQHandler, /* 119: DCMI/PSSI global interrupt */
360 OCTOSPI2_IRQHandler, /* 120: OCTOSPI2 global interrupt */
361 MDF1_FLT4_IRQHandler, /* 121: MDF1 Filter 4 global interrupt */
362 MDF1_FLT5_IRQHandler, /* 122: MDF1 Filter 5 global interrupt */
363 CORDIC_IRQHandler, /* 123: CORDIC global interrupt */
364 FMAC_IRQHandler, /* 124: FMAC global interrupt */
365 };
366 #if defined ( __GNUC__ )
367 #pragma GCC diagnostic pop
368 #endif
369
370 /*----------------------------------------------------------------------------
371 Reset Handler called on controller reset
372 *----------------------------------------------------------------------------*/
Reset_Handler(void)373 void Reset_Handler(void)
374 {
375 __set_PSP((uint32_t)(&__INITIAL_SP));
376
377 __set_MSPLIM((uint32_t)(&__STACK_LIMIT));
378 __set_PSPLIM((uint32_t)(&__STACK_LIMIT));
379
380 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
381 __IO uint32_t tmp;
382
383 /* disable IRQ is removed */
384 /*__disable_irq();*/
385 /* Tamp IRQ prio is set to highest , and IRQ is enabled */
386 NVIC_SetPriority(TAMP_IRQn, 0);
387 NVIC_EnableIRQ(TAMP_IRQn);
388
389 SCB->VTOR = (uint32_t) &__VECTOR_TABLE[0];
390 /* Lock Secure Vector Table */
391 /* Enable SYSCFG interface clock */
392 RCC->APB3ENR |= RCC_APB3ENR_SYSCFGEN;
393 /* Delay after an RCC peripheral clock enabling */
394 tmp = RCC->APB3ENR;
395 (void)tmp;
396 SYSCFG->CSLCKR |= SYSCFG_CSLCKR_LOCKSVTAIRCR;
397 #endif
398 SystemInit(); /* CMSIS System Initialization */
399 __PROGRAM_START(); /* Enter PreMain (C library entry point) */
400 }
401