// // Copyright (c) 2015 Liviu Ionescu. // This file was automatically generated by the xPacks scripts. // // The list of external handlers is from the ARM assembly startup files. // ---------------------------------------------------------------------------- #include "ExceptionHandlers.h" // ---------------------------------------------------------------------------- void __attribute__((weak)) Default_Handler(void); // Forward declaration of the specific IRQ handlers. These are aliased // to the Default_Handler, which is a 'forever' loop. When the application // defines a handler (with the same name), this will automatically take // precedence over these weak definitions void __attribute__ ((weak, alias ("Default_Handler"))) WWDG_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) PVD_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TAMP_STAMP_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) RTC_WKUP_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) FLASH_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) RCC_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI0_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI2_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI3_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI4_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream0_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream2_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream3_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream4_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream5_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream6_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) ADC_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN1_TX_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN1_RX0_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN1_RX1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN1_SCE_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI9_5_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM1_BRK_TIM9_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM1_UP_TIM10_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM1_TRG_COM_TIM11_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM1_CC_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM2_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM3_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM4_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) I2C1_EV_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) I2C1_ER_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) I2C2_EV_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) I2C2_ER_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) SPI1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) SPI2_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) USART1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) USART2_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) USART3_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) EXTI15_10_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) RTC_Alarm_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) OTG_FS_WKUP_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM8_BRK_TIM12_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM8_UP_TIM13_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM8_TRG_COM_TIM14_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM8_CC_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA1_Stream7_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) FMC_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) SDIO_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM5_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) SPI3_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) UART4_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) UART5_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM6_DAC_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) TIM7_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream0_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream2_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream3_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream4_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) ETH_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) ETH_WKUP_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN2_TX_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN2_RX0_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN2_RX1_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) CAN2_SCE_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) OTG_FS_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream5_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream6_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DMA2_Stream7_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) USART6_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) I2C3_EV_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) I2C3_ER_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) OTG_HS_EP1_OUT_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) OTG_HS_EP1_IN_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) OTG_HS_WKUP_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) OTG_HS_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) DCMI_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) HASH_RNG_IRQHandler(void); void __attribute__ ((weak, alias ("Default_Handler"))) FPU_IRQHandler(void); // ---------------------------------------------------------------------------- extern unsigned int _estack; typedef void (* const pHandler)(void); // ---------------------------------------------------------------------------- // The table of interrupt handlers. It has an explicit section name // and relies on the linker script to place it at the correct location // in memory. __attribute__ ((section(".isr_vector"),used)) pHandler __isr_vectors[] = { // Cortex-M Core Handlers (pHandler) &_estack, // The initial stack pointer Reset_Handler, // The reset handler NMI_Handler, // The NMI handler HardFault_Handler, // The hard fault handler #if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) MemManage_Handler, // The MPU fault handler BusFault_Handler, // The bus fault handler UsageFault_Handler, // The usage fault handler #else 0, // Reserved 0, // Reserved 0, // Reserved #endif 0, // Reserved 0, // Reserved 0, // Reserved 0, // Reserved SVC_Handler, // SVCall handler #if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) DebugMon_Handler, // Debug monitor handler #else 0, // Reserved #endif 0, // Reserved PendSV_Handler, // The PendSV handler SysTick_Handler, // The SysTick handler // ---------------------------------------------------------------------- // External Interrupts 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 FMC_IRQHandler, // FMC 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 0, // Reserved HASH_RNG_IRQHandler, // Hash and Rng FPU_IRQHandler, // FPU }; // ---------------------------------------------------------------------------- // Processor ends up here if an unexpected interrupt occurs or a // specific handler is not present in the application code. // When in DEBUG, trigger a debug exception to clearly notify // the user of the exception and help identify the cause. void __attribute__ ((section(".after_vectors"))) Default_Handler(void) { #if defined(DEBUG) __DEBUG_BKPT(); #endif while (1) { } } // ----------------------------------------------------------------------------