stm32_isr.h 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  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 STM32F1xx/stm32_isr.h
  15. * @brief STM32F3xx ISR handler header.
  16. *
  17. * @addtogroup STM32F1xx_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. /*
  60. * OTG units.
  61. */
  62. #define STM32_OTG1_HANDLER Vector14C
  63. #define STM32_OTG1_NUMBER 67
  64. /*
  65. * SDIO unit.
  66. */
  67. #define STM32_SDIO_HANDLER Vector104
  68. #define STM32_SDIO_NUMBER 49
  69. /*
  70. * TIM units.
  71. */
  72. #define STM32_TIM1_UP_HANDLER VectorA4
  73. #define STM32_TIM1_CC_HANDLER VectorAC
  74. #define STM32_TIM2_HANDLER VectorB0
  75. #define STM32_TIM3_HANDLER VectorB4
  76. #define STM32_TIM4_HANDLER VectorB8
  77. #define STM32_TIM5_HANDLER Vector108
  78. #define STM32_TIM6_HANDLER Vector118
  79. #define STM32_TIM7_HANDLER Vector11C
  80. #define STM32_TIM8_UP_HANDLER VectorF0
  81. #define STM32_TIM8_CC_HANDLER VectorF8
  82. #define STM32_TIM9_HANDLER VectorA0 /* Note: same as STM32_TIM1_BRK */
  83. #define STM32_TIM10_HANDLER VectorA4 /* Note: same as STM32_TIM1_UP */
  84. #define STM32_TIM11_HANDLER VectorA8 /* Note: same as STM32_TIM1_TRG_COM */
  85. #define STM32_TIM12_HANDLER VectorEC /* Note: same as STM32_TIM8_BRK */
  86. #define STM32_TIM13_HANDLER VectorF0 /* Note: same as STM32_TIM8_UP */
  87. #define STM32_TIM14_HANDLER VectorF4 /* Note: same as STM32_TIM8_TRG_COM */
  88. #define STM32_TIM1_UP_NUMBER 25
  89. #define STM32_TIM1_CC_NUMBER 27
  90. #define STM32_TIM2_NUMBER 28
  91. #define STM32_TIM3_NUMBER 29
  92. #define STM32_TIM4_NUMBER 30
  93. #define STM32_TIM5_NUMBER 50
  94. #define STM32_TIM6_NUMBER 54
  95. #define STM32_TIM7_NUMBER 55
  96. #define STM32_TIM8_UP_NUMBER 44
  97. #define STM32_TIM8_CC_NUMBER 46
  98. #define STM32_TIM9_NUMBER 24 /* Note: same as STM32_TIM1_BRK */
  99. #define STM32_TIM10_NUMBER 25 /* Note: same as STM32_TIM1_UP */
  100. #define STM32_TIM11_NUMBER 26 /* Note: same as STM32_TIM1_TRG_COM */
  101. #define STM32_TIM12_NUMBER 43 /* Note: same as STM32_TIM8_BRK */
  102. #define STM32_TIM13_NUMBER 44 /* Note: same as STM32_TIM8_UP */
  103. #define STM32_TIM14_NUMBER 45 /* Note: same as STM32_TIM8_TRG_COM */
  104. /*
  105. * USART units.
  106. */
  107. #define STM32_USART1_HANDLER VectorD4
  108. #define STM32_USART2_HANDLER VectorD8
  109. #define STM32_USART3_HANDLER VectorDC
  110. #define STM32_UART4_HANDLER Vector110
  111. #define STM32_UART5_HANDLER Vector114
  112. #define STM32_USART1_NUMBER 37
  113. #define STM32_USART2_NUMBER 38
  114. #define STM32_USART3_NUMBER 39
  115. #define STM32_UART4_NUMBER 52
  116. #define STM32_UART5_NUMBER 53
  117. /*
  118. * USB units.
  119. */
  120. #define STM32_USB1_HP_HANDLER Vector8C
  121. #define STM32_USB1_LP_HANDLER Vector90
  122. #define STM32_USB1_HP_NUMBER 19
  123. #define STM32_USB1_LP_NUMBER 20
  124. /*
  125. * RTC unit
  126. */
  127. #define STM32_RTC1_HANDLER Vector4C
  128. #define STM32_RTC1_NUMBER 3
  129. /** @} */
  130. /*===========================================================================*/
  131. /* Driver pre-compile time settings. */
  132. /*===========================================================================*/
  133. /**
  134. * @name Configuration options
  135. * @{
  136. */
  137. /**
  138. * @brief EXTI0 interrupt priority level setting.
  139. */
  140. #if !defined(STM32_IRQ_EXTI0_PRIORITY) || defined(__DOXYGEN__)
  141. #define STM32_IRQ_EXTI0_PRIORITY 6
  142. #endif
  143. /**
  144. * @brief EXTI1 interrupt priority level setting.
  145. */
  146. #if !defined(STM32_IRQ_EXTI1_PRIORITY) || defined(__DOXYGEN__)
  147. #define STM32_IRQ_EXTI1_PRIORITY 6
  148. #endif
  149. /**
  150. * @brief EXTI2 interrupt priority level setting.
  151. */
  152. #if !defined(STM32_IRQ_EXTI2_PRIORITY) || defined(__DOXYGEN__)
  153. #define STM32_IRQ_EXTI2_PRIORITY 6
  154. #endif
  155. /**
  156. * @brief EXTI3 interrupt priority level setting.
  157. */
  158. #if !defined(STM32_IRQ_EXTI3_PRIORITY) || defined(__DOXYGEN__)
  159. #define STM32_IRQ_EXTI3_PRIORITY 6
  160. #endif
  161. /**
  162. * @brief EXTI4 interrupt priority level setting.
  163. */
  164. #if !defined(STM32_IRQ_EXTI4_PRIORITY) || defined(__DOXYGEN__)
  165. #define STM32_IRQ_EXTI4_PRIORITY 6
  166. #endif
  167. /**
  168. * @brief EXTI9..5 interrupt priority level setting.
  169. */
  170. #if !defined(STM32_IRQ_EXTI5_9_PRIORITY) || defined(__DOXYGEN__)
  171. #define STM32_IRQ_EXTI5_9_PRIORITY 6
  172. #endif
  173. /**
  174. * @brief EXTI15..10 interrupt priority level setting.
  175. */
  176. #if !defined(STM32_IRQ_EXTI10_15_PRIORITY) || defined(__DOXYGEN__)
  177. #define STM32_IRQ_EXTI10_15_PRIORITY 6
  178. #endif
  179. /**
  180. * @brief EXTI16 interrupt priority level setting.
  181. */
  182. #if !defined(STM32_IRQ_EXTI16_PRIORITY) || defined(__DOXYGEN__)
  183. #define STM32_IRQ_EXTI16_PRIORITY 6
  184. #endif
  185. /**
  186. * @brief EXTI17 interrupt priority level setting.
  187. */
  188. #if !defined(STM32_IRQ_EXTI17_PRIORITY) || defined(__DOXYGEN__)
  189. #define STM32_IRQ_EXTI17_PRIORITY 6
  190. #endif
  191. /**
  192. * @brief EXTI18 interrupt priority level setting.
  193. */
  194. #if !defined(STM32_IRQ_EXTI18_PRIORITY) || defined(__DOXYGEN__)
  195. #define STM32_IRQ_EXTI18_PRIORITY 6
  196. #endif
  197. /**
  198. * @brief EXTI19 interrupt priority level setting.
  199. */
  200. #if !defined(STM32_IRQ_EXTI19_PRIORITY) || defined(__DOXYGEN__)
  201. #define STM32_IRQ_EXTI19_PRIORITY 6
  202. #endif
  203. /** @} */
  204. /*===========================================================================*/
  205. /* Derived constants and error checks. */
  206. /*===========================================================================*/
  207. /*===========================================================================*/
  208. /* Driver data structures and types. */
  209. /*===========================================================================*/
  210. /*===========================================================================*/
  211. /* Driver macros. */
  212. /*===========================================================================*/
  213. /*===========================================================================*/
  214. /* External declarations. */
  215. /*===========================================================================*/
  216. #ifdef __cplusplus
  217. extern "C" {
  218. #endif
  219. void irqInit(void);
  220. void irqDeinit(void);
  221. #ifdef __cplusplus
  222. }
  223. #endif
  224. #endif /* STM32_ISR_H */
  225. /** @} */