shithub: lwext4

ref: 37eb3f365bd6cb97ccf5809e56d59b420ee7e9a6
dir: /demos/stm32f429_disco/vectors.c/

View raw version
/** \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
******************************************************************************/