dRonin  adbada4
dRonin firmware
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vectors_stm32f4xx.c
Go to the documentation of this file.
1 
12 /*
13  * This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation; either version 3 of the License, or
16  * (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful, but
19  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
20  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  * for more details.
22  *
23  * You should have received a copy of the GNU General Public License along
24  * with this program; if not, see <http://www.gnu.org/licenses/>
25  */
26 
28 typedef const void (vector)(void);
29 
31 static void
33 {
34  for (;;) ;
35 }
36 
38 #define HANDLER(_name) extern vector _name __attribute__((weak, alias("default_io_handler")))
39 
40 HANDLER(WWDG_IRQHandler); // Window WatchDog
41 HANDLER(PVD_IRQHandler); // PVD through EXTI Line detection
42 HANDLER(TAMP_STAMP_IRQHandler); // Tamper and TimeStamps through the EXTI line
43 HANDLER(RTC_WKUP_IRQHandler); // RTC Wakeup through the EXTI line
44 HANDLER(FLASH_IRQHandler); // FLASH
45 HANDLER(RCC_IRQHandler); // RCC
46 HANDLER(EXTI0_IRQHandler); // EXTI Line0
47 HANDLER(EXTI1_IRQHandler); // EXTI Line1
48 HANDLER(EXTI2_IRQHandler); // EXTI Line2
49 HANDLER(EXTI3_IRQHandler); // EXTI Line3
50 HANDLER(EXTI4_IRQHandler); // EXTI Line4
51 HANDLER(DMA1_Stream0_IRQHandler); // DMA1 Stream 0
52 HANDLER(DMA1_Stream1_IRQHandler); // DMA1 Stream 1
53 HANDLER(DMA1_Stream2_IRQHandler); // DMA1 Stream 2
54 HANDLER(DMA1_Stream3_IRQHandler); // DMA1 Stream 3
55 HANDLER(DMA1_Stream4_IRQHandler); // DMA1 Stream 4
56 HANDLER(DMA1_Stream5_IRQHandler); // DMA1 Stream 5
57 HANDLER(DMA1_Stream6_IRQHandler); // DMA1 Stream 6
58 HANDLER(ADC_IRQHandler); // ADC1, ADC2 and ADC3s
59 HANDLER(CAN1_TX_IRQHandler); // CAN1 TX
60 HANDLER(CAN1_RX0_IRQHandler); // CAN1 RX0
61 HANDLER(CAN1_RX1_IRQHandler); // CAN1 RX1
62 HANDLER(CAN1_SCE_IRQHandler); // CAN1 SCE
63 HANDLER(EXTI9_5_IRQHandler); // External Line[9:5]s
64 HANDLER(TIM1_BRK_TIM9_IRQHandler); // TIM1 Break and TIM9
65 HANDLER(TIM1_UP_TIM10_IRQHandler); // TIM1 Update and TIM10
66 HANDLER(TIM1_TRG_COM_TIM11_IRQHandler); // TIM1 Trigger and Commutation and TIM11
67 HANDLER(TIM1_CC_IRQHandler); // TIM1 Capture Compare
68 HANDLER(TIM2_IRQHandler); // TIM2
69 HANDLER(TIM3_IRQHandler); // TIM3
70 HANDLER(TIM4_IRQHandler); // TIM4
71 HANDLER(I2C1_EV_IRQHandler); // I2C1 Event
72 HANDLER(I2C1_ER_IRQHandler); // I2C1 Error
73 HANDLER(I2C2_EV_IRQHandler); // I2C2 Event
74 HANDLER(I2C2_ER_IRQHandler); // I2C2 Error
75 HANDLER(SPI1_IRQHandler); // SPI1
76 HANDLER(SPI2_IRQHandler); // SPI2
77 HANDLER(USART1_IRQHandler); // USART1
78 HANDLER(USART2_IRQHandler); // USART2
79 HANDLER(USART3_IRQHandler); // USART3
80 HANDLER(EXTI15_10_IRQHandler); // External Line[15:10]s
81 HANDLER(RTC_Alarm_IRQHandler); // RTC Alarm (A and B) through EXTI Line
82 HANDLER(OTG_FS_WKUP_IRQHandler); // USB OTG FS Wakeup through EXTI line
83 HANDLER(TIM8_BRK_TIM12_IRQHandler); // TIM8 Break and TIM12
84 HANDLER(TIM8_UP_TIM13_IRQHandler); // TIM8 Update and TIM13
85 HANDLER(TIM8_TRG_COM_TIM14_IRQHandler); // TIM8 Trigger and Commutation and TIM14
86 HANDLER(TIM8_CC_IRQHandler); // TIM8 Capture Compare
87 HANDLER(DMA1_Stream7_IRQHandler); // DMA1 Stream7
88 HANDLER(FSMC_IRQHandler); // FSMC
89 HANDLER(SDIO_IRQHandler); // SDIO
90 HANDLER(TIM5_IRQHandler); // TIM5
91 HANDLER(SPI3_IRQHandler); // SPI3
92 HANDLER(USART4_IRQHandler); // UART4
93 HANDLER(USART5_IRQHandler); // UART5
94 HANDLER(TIM6_DAC_IRQHandler); // TIM6 and DAC1&2 underrun errors
95 HANDLER(TIM7_IRQHandler); // TIM7
96 HANDLER(DMA2_Stream0_IRQHandler); // DMA2 Stream 0
97 HANDLER(DMA2_Stream1_IRQHandler); // DMA2 Stream 1
98 HANDLER(DMA2_Stream2_IRQHandler); // DMA2 Stream 2
99 HANDLER(DMA2_Stream3_IRQHandler); // DMA2 Stream 3
100 HANDLER(DMA2_Stream4_IRQHandler); // DMA2 Stream 4
101 HANDLER(ETH_IRQHandler); // Ethernet
102 HANDLER(ETH_WKUP_IRQHandler); // Ethernet Wakeup through EXTI line
103 HANDLER(CAN2_TX_IRQHandler); // CAN2 TX
104 HANDLER(CAN2_RX0_IRQHandler); // CAN2 RX0
105 HANDLER(CAN2_RX1_IRQHandler); // CAN2 RX1
106 HANDLER(CAN2_SCE_IRQHandler); // CAN2 SCE
107 HANDLER(OTG_FS_IRQHandler); // USB OTG FS
108 HANDLER(DMA2_Stream5_IRQHandler); // DMA2 Stream 5
109 HANDLER(DMA2_Stream6_IRQHandler); // DMA2 Stream 6
110 HANDLER(DMA2_Stream7_IRQHandler); // DMA2 Stream 7
111 HANDLER(USART6_IRQHandler); // USART6
112 HANDLER(I2C3_EV_IRQHandler); // I2C3 event
113 HANDLER(I2C3_ER_IRQHandler); // I2C3 error
114 HANDLER(OTG_HS_EP1_OUT_IRQHandler); // USB OTG HS End Point 1 Out
115 HANDLER(OTG_HS_EP1_IN_IRQHandler); // USB OTG HS End Point 1 In
116 HANDLER(OTG_HS_WKUP_IRQHandler); // USB OTG HS Wakeup through EXTI
117 HANDLER(OTG_HS_IRQHandler); // USB OTG HS
118 HANDLER(DCMI_IRQHandler); // DCMI
119 HANDLER(CRYP_IRQHandler); // CRYP crypto
120 HANDLER(HASH_RNG_IRQHandler); // Hash and Rng
121 HANDLER(FPU_IRQHandler); // FPU
122 
123 #if defined(STM32F446xx)
124 HANDLER(SPI4_IRQHandler); // SPI4
125 HANDLER(SAI1_IRQHandler); // SAI1
126 HANDLER(SAI2_IRQHandler); // SAI2
127 HANDLER(QuadSPI_IRQHandler); // QuadSPI
128 HANDLER(CEC_IRQHandler); // CEC
129 HANDLER(SPDIF_RX_IRQHandler); // SPDIF RX
130 HANDLER(FMPI2C1_Event_IRQHandler); // I2C 4 Event
131 HANDLER(FMPI2C1_Error_IRQHandler); // I2C 4 Error
132 #endif /* defined(STM32F446xx) */
133 
135 vector *io_vectors[] __attribute__((section(".io_vectors"))) = {
136  WWDG_IRQHandler, // Window WatchDog
137  PVD_IRQHandler, // PVD through EXTI Line detection
138  TAMP_STAMP_IRQHandler, // Tamper and TimeStamps through the EXTI line
139  RTC_WKUP_IRQHandler, // RTC Wakeup through the EXTI line
140  FLASH_IRQHandler, // FLASH
141  RCC_IRQHandler, // RCC
142  EXTI0_IRQHandler, // EXTI Line0
143  EXTI1_IRQHandler, // EXTI Line1
144  EXTI2_IRQHandler, // EXTI Line2
145  EXTI3_IRQHandler, // EXTI Line3
146  EXTI4_IRQHandler, // EXTI Line4
147  DMA1_Stream0_IRQHandler, // DMA1 Stream 0
148  DMA1_Stream1_IRQHandler, // DMA1 Stream 1
149  DMA1_Stream2_IRQHandler, // DMA1 Stream 2
150  DMA1_Stream3_IRQHandler, // DMA1 Stream 3
151  DMA1_Stream4_IRQHandler, // DMA1 Stream 4
152  DMA1_Stream5_IRQHandler, // DMA1 Stream 5
153  DMA1_Stream6_IRQHandler, // DMA1 Stream 6
154  ADC_IRQHandler, // ADC1, ADC2 and ADC3s
155  CAN1_TX_IRQHandler, // CAN1 TX
156  CAN1_RX0_IRQHandler, // CAN1 RX0
157  CAN1_RX1_IRQHandler, // CAN1 RX1
158  CAN1_SCE_IRQHandler, // CAN1 SCE
159  EXTI9_5_IRQHandler, // External Line[9:5]s
160  TIM1_BRK_TIM9_IRQHandler, // TIM1 Break and TIM9
161  TIM1_UP_TIM10_IRQHandler, // TIM1 Update and TIM10
162  TIM1_TRG_COM_TIM11_IRQHandler, // TIM1 Trigger and Commutation and TIM11
163  TIM1_CC_IRQHandler, // TIM1 Capture Compare
164  TIM2_IRQHandler, // TIM2
165  TIM3_IRQHandler, // TIM3
166  TIM4_IRQHandler, // TIM4
167  I2C1_EV_IRQHandler, // I2C1 Event
168  I2C1_ER_IRQHandler, // I2C1 Error
169  I2C2_EV_IRQHandler, // I2C2 Event
170  I2C2_ER_IRQHandler, // I2C2 Error
171  SPI1_IRQHandler, // SPI1
172  SPI2_IRQHandler, // SPI2
173  USART1_IRQHandler, // USART1
174  USART2_IRQHandler, // USART2
175  USART3_IRQHandler, // USART3
176  EXTI15_10_IRQHandler, // External Line[15:10]s
177  RTC_Alarm_IRQHandler, // RTC Alarm (A and B) through EXTI Line
178  OTG_FS_WKUP_IRQHandler, // USB OTG FS Wakeup through EXTI line
179  TIM8_BRK_TIM12_IRQHandler, // TIM8 Break and TIM12
180  TIM8_UP_TIM13_IRQHandler, // TIM8 Update and TIM13
181  TIM8_TRG_COM_TIM14_IRQHandler, // TIM8 Trigger and Commutation and TIM14
182  TIM8_CC_IRQHandler, // TIM8 Capture Compare
183  DMA1_Stream7_IRQHandler, // DMA1 Stream7
184  FSMC_IRQHandler, // FSMC
185  SDIO_IRQHandler, // SDIO
186  TIM5_IRQHandler, // TIM5
187  SPI3_IRQHandler, // SPI3
188  USART4_IRQHandler, // UART4
189  USART5_IRQHandler, // UART5
190  TIM6_DAC_IRQHandler, // TIM6 and DAC1&2 underrun errors
191  TIM7_IRQHandler, // TIM7
192  DMA2_Stream0_IRQHandler, // DMA2 Stream 0
193  DMA2_Stream1_IRQHandler, // DMA2 Stream 1
194  DMA2_Stream2_IRQHandler, // DMA2 Stream 2
195  DMA2_Stream3_IRQHandler, // DMA2 Stream 3
196  DMA2_Stream4_IRQHandler, // DMA2 Stream 4
197  ETH_IRQHandler, // Ethernet
198  ETH_WKUP_IRQHandler, // Ethernet Wakeup through EXTI line
199  CAN2_TX_IRQHandler, // CAN2 TX
200  CAN2_RX0_IRQHandler, // CAN2 RX0
201  CAN2_RX1_IRQHandler, // CAN2 RX1
202  CAN2_SCE_IRQHandler, // CAN2 SCE
203  OTG_FS_IRQHandler, // USB OTG FS
204  DMA2_Stream5_IRQHandler, // DMA2 Stream 5
205  DMA2_Stream6_IRQHandler, // DMA2 Stream 6
206  DMA2_Stream7_IRQHandler, // DMA2 Stream 7
207  USART6_IRQHandler, // USART6
208  I2C3_EV_IRQHandler, // I2C3 event
209  I2C3_ER_IRQHandler, // I2C3 error
210  OTG_HS_EP1_OUT_IRQHandler, // USB OTG HS End Point 1 Out
211  OTG_HS_EP1_IN_IRQHandler, // USB OTG HS End Point 1 In
212  OTG_HS_WKUP_IRQHandler, // USB OTG HS Wakeup through EXTI
213  OTG_HS_IRQHandler, // USB OTG HS
214  DCMI_IRQHandler, // DCMI
215  CRYP_IRQHandler, // CRYP crypto
216  HASH_RNG_IRQHandler, // Hash and Rng
217  FPU_IRQHandler, // FPU
218 #if defined(STM32F446xx)
219  0, // Reserved
220  0, // Reserved
221  SPI4_IRQHandler, // SPI4
222  0, // Reserved
223  0, // Reserved
224  SAI1_IRQHandler, // SAI1
225  0, // Reserved
226  0, // Reserved
227  0, // Reserved
228  SAI2_IRQHandler, // SAI2
229  QuadSPI_IRQHandler, // QuadSPI
230  CEC_IRQHandler, // CEC
231  SPDIF_RX_IRQHandler, // SPDIF RX
232  FMPI2C1_Event_IRQHandler, // I2C 4 Event
233  FMPI2C1_Error_IRQHandler, // I2C 4 Error
234 #endif /* defined(STM32F446xx) */
235 };
236 
void TIM8_TRG_COM_TIM14_IRQHandler(void)
Definition: pios_tim.c:456
#define OTG_HS_EP1_IN_IRQHandler
#define FSMC_IRQHandler
void TIM1_UP_TIM10_IRQHandler(void)
Definition: pios_tim.c:339
#define I2C3_ER_IRQHandler
#define DMA1_Stream1_IRQHandler
#define DMA2_Stream4_IRQHandler
#define TIM1_CC_IRQHandler
void TIM1_TRG_COM_TIM11_IRQHandler(void)
Definition: pios_tim.c:352
#define DMA1_Stream5_IRQHandler
#define PVD_IRQHandler
#define DMA1_Stream0_IRQHandler
void TIM5_IRQHandler(void)
Definition: pios_tim.c:384
#define I2C2_EV_IRQHandler
#define TAMP_STAMP_IRQHandler
#define SPI1_IRQHandler
void USART1_IRQHandler(void)
void TIM8_BRK_TIM12_IRQHandler(void)
Definition: pios_tim.c:428
void TIM6_DAC_IRQHandler(void)
Definition: pios_tim.c:389
#define CAN1_TX_IRQHandler
#define SPI3_IRQHandler
#define DMA2_Stream3_IRQHandler
#define WWDG_IRQHandler
#define CAN2_SCE_IRQHandler
#define EXTI15_10_IRQHandler
#define USART6_IRQHandler
#define OTG_FS_WKUP_IRQHandler
#define FLASH_IRQHandler
#define DMA2_Stream7_IRQHandler
#define USART5_IRQHandler
#define RTC_WKUP_IRQHandler
#define HASH_RNG_IRQHandler
void TIM7_IRQHandler(void)
Definition: pios_tim.c:396
void OTG_FS_IRQHandler(void)
Definition: pios_usbhook.c:96
#define ETH_IRQHandler
#define HANDLER(_name)
#define CRYP_IRQHandler
#define DMA2_Stream0_IRQHandler
#define DMA1_Stream3_IRQHandler
#define CAN2_RX0_IRQHandler
#define SDIO_IRQHandler
#define I2C2_ER_IRQHandler
#define SPI2_IRQHandler
#define TIM2_IRQHandler
#define CAN1_RX1_IRQHandler
void TIM4_IRQHandler(void)
Definition: pios_tim.c:378
#define EXTI0_IRQHandler
const void( vector)(void)
#define TIM3_IRQHandler
#define DMA2_Stream1_IRQHandler
#define CAN1_RX0_IRQHandler
#define I2C1_ER_IRQHandler
#define FPU_IRQHandler
#define USART2_IRQHandler
static void default_io_handler(void)
#define I2C1_EV_IRQHandler
#define EXTI3_IRQHandler
#define USART3_IRQHandler
#define DCMI_IRQHandler
#define DMA1_Stream6_IRQHandler
#define DMA2_Stream2_IRQHandler
#define RTC_Alarm_IRQHandler
void TIM8_UP_TIM13_IRQHandler(void)
Definition: pios_tim.c:442
#define DMA2_Stream5_IRQHandler
void TIM8_CC_IRQHandler(void)
Definition: pios_tim.c:408
#define DMA2_Stream6_IRQHandler
#define OTG_HS_EP1_OUT_IRQHandler
#define EXTI9_5_IRQHandler
#define DMA1_Stream4_IRQHandler
#define USART4_IRQHandler
#define DMA1_Stream7_IRQHandler
#define ETH_WKUP_IRQHandler
#define EXTI1_IRQHandler
void TIM1_BRK_TIM9_IRQHandler(void)
Definition: pios_tim.c:325
#define OTG_HS_WKUP_IRQHandler
#define I2C3_EV_IRQHandler
#define EXTI4_IRQHandler
#define CAN2_TX_IRQHandler
#define OTG_HS_IRQHandler
#define RCC_IRQHandler
#define CAN1_SCE_IRQHandler
#define DMA1_Stream2_IRQHandler
#define CAN2_RX1_IRQHandler
typedef __attribute__
Definition: serial_4way.h:43
#define EXTI2_IRQHandler
#define ADC_IRQHandler