ref: 37eb3f365bd6cb97ccf5809e56d59b420ee7e9a6
dir: /demos/stm32f429_disco/vectors.c/
/** \file vectors.c * \brief STM32F4x vector table and __Default_Handler() * \details STM32F4x vector table and __Default_Handler() * \author Freddie Chopin, http://www.freddiechopin.info/ * \date 2012-03-15 */ /****************************************************************************** * chip: STM32F4x * compiler: arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 * 20110921 (release) [ARM/embedded-4_6-branch revision 182083] ******************************************************************************/ /*------------------------------------------------------------------------*/ /** * \brief Default interrupt handler. * \details Default interrupt handler, used for interrupts that don't have their * own handler defined. */ /*-------------------------------------------------------------------------*/ static void __Default_Handler(void) __attribute__((interrupt)); static void __Default_Handler(void) { while (1) ; } /* +=============================================================================+ | assign all unhandled interrupts to the default handler +=============================================================================+ */ // Non-maskable interrupt (RCC clock security system) void NMI_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // All class of fault void HardFault_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Memory management void MemManage_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Pre-fetch fault, memory access fault void BusFault_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Undefined instruction or illegal state void UsageFault_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Reserved 0x1C void __Reserved_0x1C_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Reserved 0x20 void __Reserved_0x20_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Reserved 0x24 void __Reserved_0x24_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Reserved 0x28 void __Reserved_0x28_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // System service call via SWI instruction void SVC_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Debug monitor void DebugMon_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Reserved 0x34 void __Reserved_0x34_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Pendable request for system service void PendSV_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // System tick timer void SysTick_Handler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Window WatchDog void WWDG_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // PVD through EXTI Line detection void PVD_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Tamper and TimeStamps through the EXTI line void TAMP_STAMP_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // RTC Wakeup through the EXTI line void RTC_WKUP_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // FLASH void FLASH_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // RCC void RCC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // EXTI Line0 void EXTI0_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // EXTI Line1 void EXTI1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // EXTI Line2 void EXTI2_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // EXTI Line3 void EXTI3_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // EXTI Line4 void EXTI4_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 0 void DMA1_Stream0_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 1 void DMA1_Stream1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 2 void DMA1_Stream2_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 3 void DMA1_Stream3_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 4 void DMA1_Stream4_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 5 void DMA1_Stream5_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream 6 void DMA1_Stream6_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // ADC1, ADC2 and ADC3s void ADC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN1 TX void CAN1_TX_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN1 RX0 void CAN1_RX0_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN1 RX1 void CAN1_RX1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN1 SCE void CAN1_SCE_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // External Line[9:5]s void EXTI9_5_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM1 Break and TIM9 void TIM1_BRK_TIM9_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM1 Update and TIM10 void TIM1_UP_TIM10_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM1 Trigger and Commutation and TIM11 void TIM1_TRG_COM_TIM11_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM1 Capture Compare void TIM1_CC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM2 void TIM2_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM3 void TIM3_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM4 void TIM4_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // I2C1 Event void I2C1_EV_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // I2C1 Error void I2C1_ER_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // I2C2 Event void I2C2_EV_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // I2C2 Error void I2C2_ER_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SPI1 void SPI1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SPI2 void SPI2_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USART1 void USART1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USART2 void USART2_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USART3 void USART3_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // External Line[15:10]s void EXTI15_10_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // RTC Alarm (A and B) through EXTI Line void RTC_Alarm_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USB OTG FS Wakeup through EXTI line void OTG_FS_WKUP_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM8 Break and TIM12 void TIM8_BRK_TIM12_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM8 Update and TIM13 void TIM8_UP_TIM13_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM8 Trigger and Commutation and TIM14 void TIM8_TRG_COM_TIM14_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM8 Capture Compare void TIM8_CC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA1 Stream7 void DMA1_Stream7_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // FSMC void FSMC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SDIO void SDIO_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM5 void TIM5_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SPI3 void SPI3_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // UART4 void UART4_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // UART5 void UART5_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM6 and DAC1&2 underrun errors void TIM6_DAC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // TIM7 void TIM7_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 0 void DMA2_Stream0_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 1 void DMA2_Stream1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 2 void DMA2_Stream2_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 3 void DMA2_Stream3_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 4 void DMA2_Stream4_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Ethernet void ETH_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Ethernet Wakeup through EXTI line void ETH_WKUP_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN2 TX void CAN2_TX_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN2 RX0 void CAN2_RX0_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN2 RX1 void CAN2_RX1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CAN2 SCE void CAN2_SCE_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USB OTG FS void OTG_FS_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 5 void DMA2_Stream5_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 6 void DMA2_Stream6_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2 Stream 7 void DMA2_Stream7_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USART6 void USART6_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // I2C3 event void I2C3_EV_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // I2C3 error void I2C3_ER_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USB OTG HS End Point 1 Out void OTG_HS_EP1_OUT_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USB OTG HS End Point 1 In void OTG_HS_EP1_IN_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USB OTG HS Wakeup through EXTI void OTG_HS_WKUP_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // USB OTG HS void OTG_HS_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DCMI void DCMI_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // CRYP crypto void CRYP_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // Hash and Rng void HASH_RNG_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // FPU void FPU_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // UART7 void UART7_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // UART8 void UART8_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SPI4 void SPI4_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SPI5 void SPI5_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SPI6 void SPI6_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // SAI1 void SAI1_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // LTDC void LTDC_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // LTDC_ER void LTDC_ER_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); // DMA2D void DMA2D_IRQHandler(void) __attribute__((interrupt, weak, alias("__Default_Handler"))); /* +=============================================================================+ | Vector table +=============================================================================+ */ extern const char __main_stack_end; // imported main stack end (from linker script) void Reset_Handler(void); // import the address of Reset_Handler() void (*const vectors[])(void) __attribute__((section(".vectors"))) = { (void (*)(void)) & __main_stack_end, // Main stack end address Reset_Handler, // Reset NMI_Handler, // Non-maskable interrupt (RCC clock security system) HardFault_Handler, // All class of fault MemManage_Handler, // Memory management BusFault_Handler, // Pre-fetch fault, memory access fault UsageFault_Handler, // Undefined instruction or illegal state __Reserved_0x1C_Handler, // Reserved 0x1C __Reserved_0x20_Handler, // Reserved 0x20 __Reserved_0x24_Handler, // Reserved 0x24 __Reserved_0x28_Handler, // Reserved 0x28 SVC_Handler, // System service call via SWI instruction DebugMon_Handler, // Debug monitor __Reserved_0x34_Handler, // Reserved 0x34 PendSV_Handler, // Pendable request for system service SysTick_Handler, // System tick timer WWDG_IRQHandler, /* Window WatchDog */ PVD_IRQHandler, /* PVD through EXTI Line detection */ TAMP_STAMP_IRQHandler, /* Tamper and TimeStamps through the EXTI line */ RTC_WKUP_IRQHandler, /* RTC Wakeup through the EXTI line */ FLASH_IRQHandler, /* FLASH */ RCC_IRQHandler, /* RCC */ EXTI0_IRQHandler, /* EXTI Line0 */ EXTI1_IRQHandler, /* EXTI Line1 */ EXTI2_IRQHandler, /* EXTI Line2 */ EXTI3_IRQHandler, /* EXTI Line3 */ EXTI4_IRQHandler, /* EXTI Line4 */ DMA1_Stream0_IRQHandler, /* DMA1 Stream 0 */ DMA1_Stream1_IRQHandler, /* DMA1 Stream 1 */ DMA1_Stream2_IRQHandler, /* DMA1 Stream 2 */ DMA1_Stream3_IRQHandler, /* DMA1 Stream 3 */ DMA1_Stream4_IRQHandler, /* DMA1 Stream 4 */ DMA1_Stream5_IRQHandler, /* DMA1 Stream 5 */ DMA1_Stream6_IRQHandler, /* DMA1 Stream 6 */ ADC_IRQHandler, /* ADC1, ADC2 and ADC3s */ CAN1_TX_IRQHandler, /* CAN1 TX */ CAN1_RX0_IRQHandler, /* CAN1 RX0 */ CAN1_RX1_IRQHandler, /* CAN1 RX1 */ CAN1_SCE_IRQHandler, /* CAN1 SCE */ EXTI9_5_IRQHandler, /* External Line[9:5]s */ TIM1_BRK_TIM9_IRQHandler, /* TIM1 Break and TIM9 */ TIM1_UP_TIM10_IRQHandler, /* TIM1 Update and TIM10 */ TIM1_TRG_COM_TIM11_IRQHandler, /* TIM1 Trigger and Commutation and TIM11 */ TIM1_CC_IRQHandler, /* TIM1 Capture Compare */ TIM2_IRQHandler, /* TIM2 */ TIM3_IRQHandler, /* TIM3 */ TIM4_IRQHandler, /* TIM4 */ I2C1_EV_IRQHandler, /* I2C1 Event */ I2C1_ER_IRQHandler, /* I2C1 Error */ I2C2_EV_IRQHandler, /* I2C2 Event */ I2C2_ER_IRQHandler, /* I2C2 Error */ SPI1_IRQHandler, /* SPI1 */ SPI2_IRQHandler, /* SPI2 */ USART1_IRQHandler, /* USART1 */ USART2_IRQHandler, /* USART2 */ USART3_IRQHandler, /* USART3 */ EXTI15_10_IRQHandler, /* External Line[15:10]s */ RTC_Alarm_IRQHandler, /* RTC Alarm (A and B) through EXTI Line */ OTG_FS_WKUP_IRQHandler, /* USB OTG FS Wakeup through EXTI line */ TIM8_BRK_TIM12_IRQHandler, /* TIM8 Break and TIM12 */ TIM8_UP_TIM13_IRQHandler, /* TIM8 Update and TIM13 */ TIM8_TRG_COM_TIM14_IRQHandler, /* TIM8 Trigger and Commutation and TIM14 */ TIM8_CC_IRQHandler, /* TIM8 Capture Compare */ DMA1_Stream7_IRQHandler, /* DMA1 Stream7 */ FSMC_IRQHandler, /* FSMC */ SDIO_IRQHandler, /* SDIO */ TIM5_IRQHandler, /* TIM5 */ SPI3_IRQHandler, /* SPI3 */ UART4_IRQHandler, /* UART4 */ UART5_IRQHandler, /* UART5 */ TIM6_DAC_IRQHandler, /* TIM6 and DAC1&2 underrun errors */ TIM7_IRQHandler, /* TIM7 */ DMA2_Stream0_IRQHandler, /* DMA2 Stream 0 */ DMA2_Stream1_IRQHandler, /* DMA2 Stream 1 */ DMA2_Stream2_IRQHandler, /* DMA2 Stream 2 */ DMA2_Stream3_IRQHandler, /* DMA2 Stream 3 */ DMA2_Stream4_IRQHandler, /* DMA2 Stream 4 */ ETH_IRQHandler, /* Ethernet */ ETH_WKUP_IRQHandler, /* Ethernet Wakeup through EXTI line */ CAN2_TX_IRQHandler, /* CAN2 TX */ CAN2_RX0_IRQHandler, /* CAN2 RX0 */ CAN2_RX1_IRQHandler, /* CAN2 RX1 */ CAN2_SCE_IRQHandler, /* CAN2 SCE */ OTG_FS_IRQHandler, /* USB OTG FS */ DMA2_Stream5_IRQHandler, /* DMA2 Stream 5 */ DMA2_Stream6_IRQHandler, /* DMA2 Stream 6 */ DMA2_Stream7_IRQHandler, /* DMA2 Stream 7 */ USART6_IRQHandler, /* USART6 */ I2C3_EV_IRQHandler, /* I2C3 event */ I2C3_ER_IRQHandler, /* I2C3 error */ OTG_HS_EP1_OUT_IRQHandler, /* USB OTG HS End Point 1 Out */ OTG_HS_EP1_IN_IRQHandler, /* USB OTG HS End Point 1 In */ OTG_HS_WKUP_IRQHandler, /* USB OTG HS Wakeup through EXTI */ OTG_HS_IRQHandler, /* USB OTG HS */ DCMI_IRQHandler, /* DCMI */ CRYP_IRQHandler, /* CRYP crypto */ HASH_RNG_IRQHandler, /* Hash and Rng */ FPU_IRQHandler, /* FPU */ UART7_IRQHandler, /* UART7 */ UART8_IRQHandler, /* UART8 */ SPI4_IRQHandler, /* SPI4 */ SPI5_IRQHandler, /* SPI5 */ SPI6_IRQHandler, /* SPI6 */ SAI1_IRQHandler, /* SAI1 */ LTDC_IRQHandler, /* LTDC */ LTDC_ER_IRQHandler, /* LTDC error */ DMA2D_IRQHandler /* DMA2D */ }; /****************************************************************************** * END OF FILE ******************************************************************************/