stm32_isr.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  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 STM32F37x/stm32_isr.h
  15. * @brief STM32F37x ISR handler header.
  16. *
  17. * @addtogroup STM32F37x_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_CAN1_TX_NUMBER 19
  37. #define STM32_CAN1_RX0_NUMBER 20
  38. #define STM32_CAN1_RX1_NUMBER 21
  39. #define STM32_CAN1_SCE_NUMBER 22
  40. /*
  41. * I2C units.
  42. */
  43. #define STM32_I2C1_EVENT_HANDLER VectorBC
  44. #define STM32_I2C1_ERROR_HANDLER VectorC0
  45. #define STM32_I2C1_EVENT_NUMBER 31
  46. #define STM32_I2C1_ERROR_NUMBER 32
  47. #define STM32_I2C2_EVENT_HANDLER VectorC4
  48. #define STM32_I2C2_ERROR_HANDLER VectorC8
  49. #define STM32_I2C2_EVENT_NUMBER 33
  50. #define STM32_I2C2_ERROR_NUMBER 34
  51. /*
  52. * TIM units.
  53. */
  54. #define STM32_TIM2_HANDLER VectorB0
  55. #define STM32_TIM3_HANDLER VectorB4
  56. #define STM32_TIM4_HANDLER VectorB8
  57. #define STM32_TIM5_HANDLER Vector108
  58. #define STM32_TIM6_HANDLER Vector118
  59. #define STM32_TIM7_HANDLER Vector11C
  60. #define STM32_TIM12_HANDLER VectorEC
  61. #define STM32_TIM13_HANDLER VectorF0
  62. #define STM32_TIM14_HANDLER VectorF4
  63. #define STM32_TIM15_HANDLER VectorA0
  64. #define STM32_TIM16_HANDLER VectorA4
  65. #define STM32_TIM17_HANDLER VectorA8
  66. #define STM32_TIM18_HANDLER VectorAC
  67. #define STM32_TIM19_HANDLER Vector178
  68. #define STM32_TIM2_NUMBER 28
  69. #define STM32_TIM3_NUMBER 29
  70. #define STM32_TIM4_NUMBER 30
  71. #define STM32_TIM5_NUMBER 50
  72. #define STM32_TIM6_NUMBER 54
  73. #define STM32_TIM7_NUMBER 55
  74. #define STM32_TIM12_NUMBER 43
  75. #define STM32_TIM13_NUMBER 44
  76. #define STM32_TIM14_NUMBER 45
  77. #define STM32_TIM15_NUMBER 24
  78. #define STM32_TIM16_NUMBER 25
  79. #define STM32_TIM17_NUMBER 26
  80. #define STM32_TIM18_NUMBER 27
  81. #define STM32_TIM19_NUMBER 78
  82. /*
  83. * USART units.
  84. */
  85. #define STM32_USART1_HANDLER VectorD4
  86. #define STM32_USART2_HANDLER VectorD8
  87. #define STM32_USART3_HANDLER VectorDC
  88. #define STM32_USART1_NUMBER 37
  89. #define STM32_USART2_NUMBER 38
  90. #define STM32_USART3_NUMBER 39
  91. /*
  92. * USB units.
  93. */
  94. #define STM32_USB1_HP_HANDLER Vector168
  95. #define STM32_USB1_LP_HANDLER Vector16C
  96. #define STM32_USB1_HP_NUMBER 74
  97. #define STM32_USB1_LP_NUMBER 75
  98. /** @} */
  99. /*===========================================================================*/
  100. /* Driver pre-compile time settings. */
  101. /*===========================================================================*/
  102. /**
  103. * @name Configuration options
  104. * @{
  105. */
  106. /**
  107. * @brief EXTI0 interrupt priority level setting.
  108. */
  109. #if !defined(STM32_IRQ_EXTI0_PRIORITY) || defined(__DOXYGEN__)
  110. #define STM32_IRQ_EXTI0_PRIORITY 6
  111. #endif
  112. /**
  113. * @brief EXTI1 interrupt priority level setting.
  114. */
  115. #if !defined(STM32_IRQ_EXTI1_PRIORITY) || defined(__DOXYGEN__)
  116. #define STM32_IRQ_EXTI1_PRIORITY 6
  117. #endif
  118. /**
  119. * @brief EXTI2 interrupt priority level setting.
  120. */
  121. #if !defined(STM32_IRQ_EXTI2_PRIORITY) || defined(__DOXYGEN__)
  122. #define STM32_IRQ_EXTI2_PRIORITY 6
  123. #endif
  124. /**
  125. * @brief EXTI3 interrupt priority level setting.
  126. */
  127. #if !defined(STM32_IRQ_EXTI3_PRIORITY) || defined(__DOXYGEN__)
  128. #define STM32_IRQ_EXTI3_PRIORITY 6
  129. #endif
  130. /**
  131. * @brief EXTI4 interrupt priority level setting.
  132. */
  133. #if !defined(STM32_IRQ_EXTI4_PRIORITY) || defined(__DOXYGEN__)
  134. #define STM32_IRQ_EXTI4_PRIORITY 6
  135. #endif
  136. /**
  137. * @brief EXTI5..9 interrupt priority level setting.
  138. */
  139. #if !defined(STM32_IRQ_EXTI5_9_PRIORITY) || defined(__DOXYGEN__)
  140. #define STM32_IRQ_EXTI5_9_PRIORITY 6
  141. #endif
  142. /**
  143. * @brief EXTI10..15 interrupt priority level setting.
  144. */
  145. #if !defined(STM32_IRQ_EXTI10_15_PRIORITY) || defined(__DOXYGEN__)
  146. #define STM32_IRQ_EXTI10_15_PRIORITY 6
  147. #endif
  148. /**
  149. * @brief EXTI16 interrupt priority level setting.
  150. */
  151. #if !defined(STM32_IRQ_EXTI16_PRIORITY) || defined(__DOXYGEN__)
  152. #define STM32_IRQ_EXTI16_PRIORITY 6
  153. #endif
  154. /**
  155. * @brief EXTI17 interrupt priority level setting.
  156. */
  157. #if !defined(STM32_IRQ_EXTI17_PRIORITY) || defined(__DOXYGEN__)
  158. #define STM32_IRQ_EXTI17_PRIORITY 6
  159. #endif
  160. /**
  161. * @brief EXTI18 interrupt priority level setting.
  162. */
  163. #if !defined(STM32_IRQ_EXTI18_PRIORITY) || defined(__DOXYGEN__)
  164. #define STM32_IRQ_EXTI18_PRIORITY 6
  165. #endif
  166. /**
  167. * @brief EXTI19 interrupt priority level setting.
  168. */
  169. #if !defined(STM32_IRQ_EXTI19_PRIORITY) || defined(__DOXYGEN__)
  170. #define STM32_IRQ_EXTI19_PRIORITY 6
  171. #endif
  172. /**
  173. * @brief EXTI20 interrupt priority level setting.
  174. */
  175. #if !defined(STM32_IRQ_EXTI20_PRIORITY) || defined(__DOXYGEN__)
  176. #define STM32_IRQ_EXTI20_PRIORITY 6
  177. #endif
  178. /**
  179. * @brief EXTI21..22 interrupt priority level setting.
  180. */
  181. #if !defined(STM32_IRQ_EXTI21_22_PRIORITY) || defined(__DOXYGEN__)
  182. #define STM32_IRQ_EXTI21_22_PRIORITY 6
  183. #endif
  184. /** @} */
  185. /*===========================================================================*/
  186. /* Derived constants and error checks. */
  187. /*===========================================================================*/
  188. /*===========================================================================*/
  189. /* Driver data structures and types. */
  190. /*===========================================================================*/
  191. /*===========================================================================*/
  192. /* Driver macros. */
  193. /*===========================================================================*/
  194. /*===========================================================================*/
  195. /* External declarations. */
  196. /*===========================================================================*/
  197. #ifdef __cplusplus
  198. extern "C" {
  199. #endif
  200. void irqInit(void);
  201. void irqDeinit(void);
  202. #ifdef __cplusplus
  203. }
  204. #endif
  205. #endif /* STM32_ISR_H */
  206. /** @} */