stm32_isr.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. /*
  2. ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. */
  13. /**
  14. * @file STM32F4xx/stm32_isr.h
  15. * @brief STM32F4xx ISR handler header.
  16. *
  17. * @addtogroup STM32F4xx_ISR
  18. * @{
  19. */
  20. #ifndef STM32_ISR_H
  21. #define STM32_ISR_H
  22. /*===========================================================================*/
  23. /* Driver constants. */
  24. /*===========================================================================*/
  25. /**
  26. * @name ISR names and numbers remapping
  27. * @{
  28. */
  29. /*
  30. * CAN units.
  31. */
  32. #define STM32_CAN1_TX_HANDLER Vector8C
  33. #define STM32_CAN1_RX0_HANDLER Vector90
  34. #define STM32_CAN1_RX1_HANDLER Vector94
  35. #define STM32_CAN1_SCE_HANDLER Vector98
  36. #define STM32_CAN2_TX_HANDLER Vector13C
  37. #define STM32_CAN2_RX0_HANDLER Vector140
  38. #define STM32_CAN2_RX1_HANDLER Vector144
  39. #define STM32_CAN2_SCE_HANDLER Vector148
  40. #define STM32_CAN1_TX_NUMBER 19
  41. #define STM32_CAN1_RX0_NUMBER 20
  42. #define STM32_CAN1_RX1_NUMBER 21
  43. #define STM32_CAN1_SCE_NUMBER 22
  44. #define STM32_CAN2_TX_NUMBER 63
  45. #define STM32_CAN2_RX0_NUMBER 64
  46. #define STM32_CAN2_RX1_NUMBER 65
  47. #define STM32_CAN2_SCE_NUMBER 66
  48. /*
  49. * I2C units.
  50. */
  51. #define STM32_I2C1_EVENT_HANDLER VectorBC
  52. #define STM32_I2C1_ERROR_HANDLER VectorC0
  53. #define STM32_I2C1_EVENT_NUMBER 31
  54. #define STM32_I2C1_ERROR_NUMBER 32
  55. #define STM32_I2C2_EVENT_HANDLER VectorC4
  56. #define STM32_I2C2_ERROR_HANDLER VectorC8
  57. #define STM32_I2C2_EVENT_NUMBER 33
  58. #define STM32_I2C2_ERROR_NUMBER 34
  59. #define STM32_I2C3_EVENT_HANDLER Vector160
  60. #define STM32_I2C3_ERROR_HANDLER Vector164
  61. #define STM32_I2C3_EVENT_NUMBER 72
  62. #define STM32_I2C3_ERROR_NUMBER 73
  63. /*
  64. * OTG units.
  65. */
  66. #define STM32_OTG1_HANDLER Vector14C
  67. #define STM32_OTG2_HANDLER Vector174
  68. #define STM32_OTG2_EP1OUT_HANDLER Vector168
  69. #define STM32_OTG2_EP1IN_HANDLER Vector16C
  70. #define STM32_OTG1_NUMBER 67
  71. #define STM32_OTG2_NUMBER 77
  72. #define STM32_OTG2_EP1OUT_NUMBER 74
  73. #define STM32_OTG2_EP1IN_NUMBER 75
  74. /*
  75. * SDIO unit.
  76. */
  77. #define STM32_SDIO_HANDLER Vector104
  78. #define STM32_SDIO_NUMBER 49
  79. /*
  80. * TIM units.
  81. */
  82. #define STM32_TIM1_UP_HANDLER VectorA4
  83. #define STM32_TIM1_CC_HANDLER VectorAC
  84. #define STM32_TIM2_HANDLER VectorB0
  85. #define STM32_TIM3_HANDLER VectorB4
  86. #define STM32_TIM4_HANDLER VectorB8
  87. #define STM32_TIM5_HANDLER Vector108
  88. #define STM32_TIM6_HANDLER Vector118
  89. #define STM32_TIM7_HANDLER Vector11C
  90. #define STM32_TIM8_UP_HANDLER VectorF0
  91. #define STM32_TIM8_CC_HANDLER VectorF8
  92. #define STM32_TIM9_HANDLER VectorA0
  93. #define STM32_TIM10_HANDLER VectorA4 /* Note: same as STM32_TIM1_UP */
  94. #define STM32_TIM11_HANDLER VectorA8
  95. #define STM32_TIM12_HANDLER VectorEC
  96. #define STM32_TIM13_HANDLER VectorF0 /* Note: same as STM32_TIM8_UP */
  97. #define STM32_TIM14_HANDLER VectorF4
  98. #define STM32_TIM1_UP_NUMBER 25
  99. #define STM32_TIM1_CC_NUMBER 27
  100. #define STM32_TIM2_NUMBER 28
  101. #define STM32_TIM3_NUMBER 29
  102. #define STM32_TIM4_NUMBER 30
  103. #define STM32_TIM5_NUMBER 50
  104. #define STM32_TIM6_NUMBER 54
  105. #define STM32_TIM7_NUMBER 55
  106. #define STM32_TIM8_UP_NUMBER 44
  107. #define STM32_TIM8_CC_NUMBER 46
  108. #define STM32_TIM9_NUMBER 24
  109. #define STM32_TIM10_NUMBER 25 /* Note: same as STM32_TIM1_UP */
  110. #define STM32_TIM11_NUMBER 26
  111. #define STM32_TIM12_NUMBER 43
  112. #define STM32_TIM13_NUMBER 44 /* Note: same as STM32_TIM8_UP */
  113. #define STM32_TIM14_NUMBER 45
  114. /*
  115. * LPTIM units.
  116. */
  117. #define STM32_LPTIM1_HANDLER Vector1C4
  118. #define STM32_LPTIM1_NUMBER 97
  119. /*
  120. * USART units.
  121. */
  122. #define STM32_USART1_HANDLER VectorD4
  123. #define STM32_USART2_HANDLER VectorD8
  124. #define STM32_USART3_HANDLER VectorDC
  125. #define STM32_UART4_HANDLER Vector110
  126. #define STM32_UART5_HANDLER Vector114
  127. #define STM32_USART6_HANDLER Vector15C
  128. #define STM32_UART7_HANDLER Vector188
  129. #define STM32_UART8_HANDLER Vector18C
  130. #define STM32_USART1_NUMBER 37
  131. #define STM32_USART2_NUMBER 38
  132. #define STM32_USART3_NUMBER 39
  133. #define STM32_UART4_NUMBER 52
  134. #define STM32_UART5_NUMBER 53
  135. #define STM32_USART6_NUMBER 71
  136. #define STM32_UART7_NUMBER 82
  137. #define STM32_UART8_NUMBER 83
  138. /*
  139. * Ethernet
  140. */
  141. #define ETH_IRQHandler Vector134
  142. /*
  143. * FSMC
  144. */
  145. #define STM32_FSMC_HANDLER Vector100
  146. #define STM32_FSMC_NUMBER 48
  147. /*
  148. * LTDC
  149. */
  150. #define STM32_LTDC_EV_HANDLER Vector1A0
  151. #define STM32_LTDC_ER_HANDLER Vector1A4
  152. #define STM32_LTDC_EV_NUMBER 88
  153. #define STM32_LTDC_ER_NUMBER 89
  154. /*
  155. * DMA2D
  156. */
  157. #define STM32_DMA2D_HANDLER Vector1A8
  158. #define STM32_DMA2D_NUMBER 90
  159. /** @} */
  160. /*===========================================================================*/
  161. /* Driver pre-compile time settings. */
  162. /*===========================================================================*/
  163. /**
  164. * @name Configuration options
  165. * @{
  166. */
  167. /**
  168. * @brief EXTI0 interrupt priority level setting.
  169. */
  170. #if !defined(STM32_IRQ_EXTI0_PRIORITY) || defined(__DOXYGEN__)
  171. #define STM32_IRQ_EXTI0_PRIORITY 6
  172. #endif
  173. /**
  174. * @brief EXTI1 interrupt priority level setting.
  175. */
  176. #if !defined(STM32_IRQ_EXTI1_PRIORITY) || defined(__DOXYGEN__)
  177. #define STM32_IRQ_EXTI1_PRIORITY 6
  178. #endif
  179. /**
  180. * @brief EXTI2 interrupt priority level setting.
  181. */
  182. #if !defined(STM32_IRQ_EXTI2_PRIORITY) || defined(__DOXYGEN__)
  183. #define STM32_IRQ_EXTI2_PRIORITY 6
  184. #endif
  185. /**
  186. * @brief EXTI3 interrupt priority level setting.
  187. */
  188. #if !defined(STM32_IRQ_EXTI3_PRIORITY) || defined(__DOXYGEN__)
  189. #define STM32_IRQ_EXTI3_PRIORITY 6
  190. #endif
  191. /**
  192. * @brief EXTI4 interrupt priority level setting.
  193. */
  194. #if !defined(STM32_IRQ_EXTI4_PRIORITY) || defined(__DOXYGEN__)
  195. #define STM32_IRQ_EXTI4_PRIORITY 6
  196. #endif
  197. /**
  198. * @brief EXTI5..9 interrupt priority level setting.
  199. */
  200. #if !defined(STM32_IRQ_EXTI5_9_PRIORITY) || defined(__DOXYGEN__)
  201. #define STM32_IRQ_EXTI5_9_PRIORITY 6
  202. #endif
  203. /**
  204. * @brief EXTI10..15 interrupt priority level setting.
  205. */
  206. #if !defined(STM32_IRQ_EXTI10_15_PRIORITY) || defined(__DOXYGEN__)
  207. #define STM32_IRQ_EXTI10_15_PRIORITY 6
  208. #endif
  209. /** @} */
  210. /*===========================================================================*/
  211. /* Derived constants and error checks. */
  212. /*===========================================================================*/
  213. /*===========================================================================*/
  214. /* Driver data structures and types. */
  215. /*===========================================================================*/
  216. /*===========================================================================*/
  217. /* Driver macros. */
  218. /*===========================================================================*/
  219. /*===========================================================================*/
  220. /* External declarations. */
  221. /*===========================================================================*/
  222. #ifdef __cplusplus
  223. extern "C" {
  224. #endif
  225. void irqInit(void);
  226. void irqDeinit(void);
  227. #ifdef __cplusplus
  228. }
  229. #endif
  230. #endif /* STM32_ISR_H */
  231. /** @} */