2 * \brief STM32F4x vector table and __Default_Handler()
\r
3 * \details STM32F4x vector table and __Default_Handler()
\r
4 * \author Freddie Chopin, http://www.freddiechopin.info/
\r
8 /******************************************************************************
\r
10 * compiler: arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2
\r
11 * 20110921 (release) [ARM/embedded-4_6-branch revision 182083]
\r
12 ******************************************************************************/
\r
14 /*------------------------------------------------------------------------*//**
\r
15 * \brief Default interrupt handler.
\r
16 * \details Default interrupt handler, used for interrupts that don't have their
\r
17 * own handler defined.
\r
18 *//*-------------------------------------------------------------------------*/
\r
20 static void __Default_Handler(void) __attribute__ ((interrupt));
\r
21 static void __Default_Handler(void)
\r
27 +=============================================================================+
\r
28 | assign all unhandled interrupts to the default handler
\r
29 +=============================================================================+
\r
32 // Non-maskable interrupt (RCC clock security system)
\r
33 void NMI_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
35 // All class of fault
\r
36 void HardFault_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
38 // Memory management
\r
39 void MemManage_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
41 // Pre-fetch fault, memory access fault
\r
42 void BusFault_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
44 // Undefined instruction or illegal state
\r
45 void UsageFault_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
48 void __Reserved_0x1C_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
51 void __Reserved_0x20_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
54 void __Reserved_0x24_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
57 void __Reserved_0x28_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
59 // System service call via SWI instruction
\r
60 void SVC_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
63 void DebugMon_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
66 void __Reserved_0x34_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
68 // Pendable request for system service
\r
69 void PendSV_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
71 // System tick timer
\r
72 void SysTick_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
75 void WWDG_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
77 // PVD through EXTI Line detection
\r
78 void PVD_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
80 // Tamper and TimeStamps through the EXTI line
\r
81 void TAMP_STAMP_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
83 // RTC Wakeup through the EXTI line
\r
84 void RTC_WKUP_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
87 void FLASH_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
90 void RCC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
93 void EXTI0_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
96 void EXTI1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
99 void EXTI2_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
102 void EXTI3_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
105 void EXTI4_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
108 void DMA1_Stream0_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
111 void DMA1_Stream1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
114 void DMA1_Stream2_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
117 void DMA1_Stream3_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
120 void DMA1_Stream4_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
123 void DMA1_Stream5_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
126 void DMA1_Stream6_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
128 // ADC1, ADC2 and ADC3s
\r
129 void ADC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
132 void CAN1_TX_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
135 void CAN1_RX0_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
138 void CAN1_RX1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
141 void CAN1_SCE_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
143 // External Line[9:5]s
\r
144 void EXTI9_5_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
146 // TIM1 Break and TIM9
\r
147 void TIM1_BRK_TIM9_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
149 // TIM1 Update and TIM10
\r
150 void TIM1_UP_TIM10_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
152 // TIM1 Trigger and Commutation and TIM11
\r
153 void TIM1_TRG_COM_TIM11_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
155 // TIM1 Capture Compare
\r
156 void TIM1_CC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
159 void TIM2_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
162 void TIM3_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
165 void TIM4_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
168 void I2C1_EV_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
171 void I2C1_ER_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
174 void I2C2_EV_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
177 void I2C2_ER_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
180 void SPI1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
183 void SPI2_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
186 void USART1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
189 void USART2_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
192 void USART3_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
194 // External Line[15:10]s
\r
195 void EXTI15_10_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
197 // RTC Alarm (A and B) through EXTI Line
\r
198 void RTC_Alarm_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
200 // USB OTG FS Wakeup through EXTI line
\r
201 void OTG_FS_WKUP_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
203 // TIM8 Break and TIM12
\r
204 void TIM8_BRK_TIM12_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
206 // TIM8 Update and TIM13
\r
207 void TIM8_UP_TIM13_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
209 // TIM8 Trigger and Commutation and TIM14
\r
210 void TIM8_TRG_COM_TIM14_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
212 // TIM8 Capture Compare
\r
213 void TIM8_CC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
216 void DMA1_Stream7_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
219 void FSMC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
222 void SDIO_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
225 void TIM5_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
228 void SPI3_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
231 void UART4_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
234 void UART5_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
236 // TIM6 and DAC1&2 underrun errors
\r
237 void TIM6_DAC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
240 void TIM7_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
243 void DMA2_Stream0_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
246 void DMA2_Stream1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
249 void DMA2_Stream2_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
252 void DMA2_Stream3_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
255 void DMA2_Stream4_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
258 void ETH_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
260 // Ethernet Wakeup through EXTI line
\r
261 void ETH_WKUP_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
264 void CAN2_TX_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
267 void CAN2_RX0_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
270 void CAN2_RX1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
273 void CAN2_SCE_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
276 void OTG_FS_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
279 void DMA2_Stream5_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
282 void DMA2_Stream6_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
285 void DMA2_Stream7_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
288 void USART6_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
291 void I2C3_EV_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
294 void I2C3_ER_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
296 // USB OTG HS End Point 1 Out
\r
297 void OTG_HS_EP1_OUT_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
299 // USB OTG HS End Point 1 In
\r
300 void OTG_HS_EP1_IN_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
302 // USB OTG HS Wakeup through EXTI
\r
303 void OTG_HS_WKUP_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
306 void OTG_HS_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
309 void DCMI_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
312 void CRYP_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
315 void HASH_RNG_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
318 void FPU_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
321 void UART7_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
324 void UART8_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
327 void SPI4_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
330 void SPI5_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
333 void SPI6_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
336 void SAI1_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
339 void LTDC_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
342 void LTDC_ER_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
345 void DMA2D_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));
\r
349 +=============================================================================+
\r
351 +=============================================================================+
\r
354 extern const char __main_stack_end; // imported main stack end (from linker script)
\r
356 void Reset_Handler(void); // import the address of Reset_Handler()
\r
358 void (* const vectors[])(void) __attribute__ ((section(".vectors"))) = {
\r
359 (void (*)(void))&__main_stack_end, // Main stack end address
\r
360 Reset_Handler, // Reset
\r
361 NMI_Handler, // Non-maskable interrupt (RCC clock security system)
\r
362 HardFault_Handler, // All class of fault
\r
363 MemManage_Handler, // Memory management
\r
364 BusFault_Handler, // Pre-fetch fault, memory access fault
\r
365 UsageFault_Handler, // Undefined instruction or illegal state
\r
366 __Reserved_0x1C_Handler, // Reserved 0x1C
\r
367 __Reserved_0x20_Handler, // Reserved 0x20
\r
368 __Reserved_0x24_Handler, // Reserved 0x24
\r
369 __Reserved_0x28_Handler, // Reserved 0x28
\r
370 SVC_Handler, // System service call via SWI instruction
\r
371 DebugMon_Handler, // Debug monitor
\r
372 __Reserved_0x34_Handler, // Reserved 0x34
\r
373 PendSV_Handler, // Pendable request for system service
\r
374 SysTick_Handler, // System tick timer
\r
376 WWDG_IRQHandler, /* Window WatchDog */
\r
377 PVD_IRQHandler, /* PVD through EXTI Line detection */
\r
378 TAMP_STAMP_IRQHandler, /* Tamper and TimeStamps through the EXTI line */
\r
379 RTC_WKUP_IRQHandler, /* RTC Wakeup through the EXTI line */
\r
380 FLASH_IRQHandler, /* FLASH */
\r
381 RCC_IRQHandler, /* RCC */
\r
382 EXTI0_IRQHandler, /* EXTI Line0 */
\r
383 EXTI1_IRQHandler, /* EXTI Line1 */
\r
384 EXTI2_IRQHandler, /* EXTI Line2 */
\r
385 EXTI3_IRQHandler, /* EXTI Line3 */
\r
386 EXTI4_IRQHandler, /* EXTI Line4 */
\r
387 DMA1_Stream0_IRQHandler, /* DMA1 Stream 0 */
\r
388 DMA1_Stream1_IRQHandler, /* DMA1 Stream 1 */
\r
389 DMA1_Stream2_IRQHandler, /* DMA1 Stream 2 */
\r
390 DMA1_Stream3_IRQHandler, /* DMA1 Stream 3 */
\r
391 DMA1_Stream4_IRQHandler, /* DMA1 Stream 4 */
\r
392 DMA1_Stream5_IRQHandler, /* DMA1 Stream 5 */
\r
393 DMA1_Stream6_IRQHandler, /* DMA1 Stream 6 */
\r
394 ADC_IRQHandler, /* ADC1, ADC2 and ADC3s */
\r
395 CAN1_TX_IRQHandler, /* CAN1 TX */
\r
396 CAN1_RX0_IRQHandler, /* CAN1 RX0 */
\r
397 CAN1_RX1_IRQHandler, /* CAN1 RX1 */
\r
398 CAN1_SCE_IRQHandler, /* CAN1 SCE */
\r
399 EXTI9_5_IRQHandler, /* External Line[9:5]s */
\r
400 TIM1_BRK_TIM9_IRQHandler, /* TIM1 Break and TIM9 */
\r
401 TIM1_UP_TIM10_IRQHandler, /* TIM1 Update and TIM10 */
\r
402 TIM1_TRG_COM_TIM11_IRQHandler, /* TIM1 Trigger and Commutation and TIM11 */
\r
403 TIM1_CC_IRQHandler, /* TIM1 Capture Compare */
\r
404 TIM2_IRQHandler, /* TIM2 */
\r
405 TIM3_IRQHandler, /* TIM3 */
\r
406 TIM4_IRQHandler, /* TIM4 */
\r
407 I2C1_EV_IRQHandler, /* I2C1 Event */
\r
408 I2C1_ER_IRQHandler, /* I2C1 Error */
\r
409 I2C2_EV_IRQHandler, /* I2C2 Event */
\r
410 I2C2_ER_IRQHandler, /* I2C2 Error */
\r
411 SPI1_IRQHandler, /* SPI1 */
\r
412 SPI2_IRQHandler, /* SPI2 */
\r
413 USART1_IRQHandler, /* USART1 */
\r
414 USART2_IRQHandler, /* USART2 */
\r
415 USART3_IRQHandler, /* USART3 */
\r
416 EXTI15_10_IRQHandler, /* External Line[15:10]s */
\r
417 RTC_Alarm_IRQHandler, /* RTC Alarm (A and B) through EXTI Line */
\r
418 OTG_FS_WKUP_IRQHandler, /* USB OTG FS Wakeup through EXTI line */
\r
419 TIM8_BRK_TIM12_IRQHandler, /* TIM8 Break and TIM12 */
\r
420 TIM8_UP_TIM13_IRQHandler, /* TIM8 Update and TIM13 */
\r
421 TIM8_TRG_COM_TIM14_IRQHandler, /* TIM8 Trigger and Commutation and TIM14 */
\r
422 TIM8_CC_IRQHandler, /* TIM8 Capture Compare */
\r
423 DMA1_Stream7_IRQHandler, /* DMA1 Stream7 */
\r
424 FSMC_IRQHandler, /* FSMC */
\r
425 SDIO_IRQHandler, /* SDIO */
\r
426 TIM5_IRQHandler, /* TIM5 */
\r
427 SPI3_IRQHandler, /* SPI3 */
\r
428 UART4_IRQHandler, /* UART4 */
\r
429 UART5_IRQHandler, /* UART5 */
\r
430 TIM6_DAC_IRQHandler, /* TIM6 and DAC1&2 underrun errors */
\r
431 TIM7_IRQHandler, /* TIM7 */
\r
432 DMA2_Stream0_IRQHandler, /* DMA2 Stream 0 */
\r
433 DMA2_Stream1_IRQHandler, /* DMA2 Stream 1 */
\r
434 DMA2_Stream2_IRQHandler, /* DMA2 Stream 2 */
\r
435 DMA2_Stream3_IRQHandler, /* DMA2 Stream 3 */
\r
436 DMA2_Stream4_IRQHandler, /* DMA2 Stream 4 */
\r
437 ETH_IRQHandler, /* Ethernet */
\r
438 ETH_WKUP_IRQHandler, /* Ethernet Wakeup through EXTI line */
\r
439 CAN2_TX_IRQHandler, /* CAN2 TX */
\r
440 CAN2_RX0_IRQHandler, /* CAN2 RX0 */
\r
441 CAN2_RX1_IRQHandler, /* CAN2 RX1 */
\r
442 CAN2_SCE_IRQHandler, /* CAN2 SCE */
\r
443 OTG_FS_IRQHandler, /* USB OTG FS */
\r
444 DMA2_Stream5_IRQHandler, /* DMA2 Stream 5 */
\r
445 DMA2_Stream6_IRQHandler, /* DMA2 Stream 6 */
\r
446 DMA2_Stream7_IRQHandler, /* DMA2 Stream 7 */
\r
447 USART6_IRQHandler, /* USART6 */
\r
448 I2C3_EV_IRQHandler, /* I2C3 event */
\r
449 I2C3_ER_IRQHandler, /* I2C3 error */
\r
450 OTG_HS_EP1_OUT_IRQHandler, /* USB OTG HS End Point 1 Out */
\r
451 OTG_HS_EP1_IN_IRQHandler, /* USB OTG HS End Point 1 In */
\r
452 OTG_HS_WKUP_IRQHandler, /* USB OTG HS Wakeup through EXTI */
\r
453 OTG_HS_IRQHandler, /* USB OTG HS */
\r
454 DCMI_IRQHandler, /* DCMI */
\r
455 CRYP_IRQHandler, /* CRYP crypto */
\r
456 HASH_RNG_IRQHandler, /* Hash and Rng */
\r
457 FPU_IRQHandler, /* FPU */
\r
458 UART7_IRQHandler, /* UART7 */
\r
459 UART8_IRQHandler, /* UART8 */
\r
460 SPI4_IRQHandler, /* SPI4 */
\r
461 SPI5_IRQHandler, /* SPI5 */
\r
462 SPI6_IRQHandler, /* SPI6 */
\r
463 SAI1_IRQHandler, /* SAI1 */
\r
464 LTDC_IRQHandler, /* LTDC */
\r
465 LTDC_ER_IRQHandler, /* LTDC error */
\r
466 DMA2D_IRQHandler /* DMA2D */
\r
471 /******************************************************************************
\r
473 ******************************************************************************/
\r