stm32_isr.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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 STM32F0xx/stm32_isr.h
  15. * @brief STM32F0xx ISR handler header.
  16. *
  17. * @addtogroup STM32F0xx_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_UNIFIED_HANDLER VectorB8
  33. #define STM32_CAN1_UNIFIED_NUMBER 30
  34. /*
  35. * I2C units.
  36. */
  37. #define STM32_I2C1_GLOBAL_HANDLER Vector9C
  38. #define STM32_I2C1_GLOBAL_NUMBER 23
  39. #define STM32_I2C2_GLOBAL_HANDLER VectorA0
  40. #define STM32_I2C2_GLOBAL_NUMBER 24
  41. /*
  42. * TIM units.
  43. */
  44. #define STM32_TIM1_UP_HANDLER Vector74
  45. #define STM32_TIM1_CC_HANDLER Vector78
  46. #define STM32_TIM2_HANDLER Vector7C
  47. #define STM32_TIM3_HANDLER Vector80
  48. #define STM32_TIM6_HANDLER Vector84
  49. #define STM32_TIM7_HANDLER Vector88
  50. #define STM32_TIM14_HANDLER Vector8C
  51. #define STM32_TIM15_HANDLER Vector90
  52. #define STM32_TIM16_HANDLER Vector94
  53. #define STM32_TIM17_HANDLER Vector98
  54. #define STM32_TIM1_UP_NUMBER 13
  55. #define STM32_TIM1_CC_NUMBER 14
  56. #define STM32_TIM2_NUMBER 15
  57. #define STM32_TIM3_NUMBER 16
  58. #define STM32_TIM6_NUMBER 17
  59. #define STM32_TIM7_NUMBER 18
  60. #define STM32_TIM14_NUMBER 19
  61. #define STM32_TIM15_NUMBER 20
  62. #define STM32_TIM16_NUMBER 21
  63. #define STM32_TIM17_NUMBER 22
  64. /*
  65. * USART units.
  66. */
  67. #define STM32_USART1_HANDLER VectorAC
  68. #define STM32_USART2_HANDLER VectorB0
  69. #define STM32_USART3_8_HANDLER VectorB4
  70. #define STM32_USART1_NUMBER 27
  71. #define STM32_USART2_NUMBER 28
  72. #define STM32_USART3_8_NUMBER 29
  73. /*
  74. * USB units.
  75. */
  76. #define STM32_USB1_LP_HANDLER VectorBC
  77. #define STM32_USB1_LP_NUMBER 31
  78. #define STM32_USB1_HP_HANDLER VectorBC
  79. #define STM32_USB1_HP_NUMBER 31
  80. /** @} */
  81. /*===========================================================================*/
  82. /* Driver pre-compile time settings. */
  83. /*===========================================================================*/
  84. /**
  85. * @name Configuration options
  86. * @{
  87. */
  88. /**
  89. * @brief EXTI0..1 interrupt priority level setting.
  90. */
  91. #if !defined(STM32_IRQ_EXTI0_1_PRIORITY) || defined(__DOXYGEN__)
  92. #define STM32_IRQ_EXTI0_1_PRIORITY 3
  93. #endif
  94. /**
  95. * @brief EXTI2..3 interrupt priority level setting.
  96. */
  97. #if !defined(STM32_IRQ_EXTI2_3_PRIORITY) || defined(__DOXYGEN__)
  98. #define STM32_IRQ_EXTI2_3_PRIORITY 3
  99. #endif
  100. /**
  101. * @brief EXTI4..15 interrupt priority level setting.
  102. */
  103. #if !defined(STM32_IRQ_EXTI4_15_PRIORITY) || defined(__DOXYGEN__)
  104. #define STM32_IRQ_EXTI4_15_PRIORITY 3
  105. #endif
  106. /**
  107. * @brief EXTI16 interrupt priority level setting.
  108. */
  109. #if !defined(STM32_IRQ_EXTI16_PRIORITY) || defined(__DOXYGEN__)
  110. #define STM32_IRQ_EXTI16_PRIORITY 3
  111. #endif
  112. /**
  113. * @brief EXTI17,19,20 interrupt priority level setting.
  114. */
  115. #if !defined(STM32_IRQ_EXTI17_20_PRIORITY) || defined(__DOXYGEN__)
  116. #define STM32_IRQ_EXTI17_20_PRIORITY 3
  117. #endif
  118. /**
  119. * @brief EXTI21,22 interrupt priority level setting.
  120. */
  121. #if !defined(STM32_IRQ_EXTI21_22_PRIORITY) || defined(__DOXYGEN__)
  122. #define STM32_IRQ_EXTI21_22_PRIORITY 3
  123. #endif
  124. /** @} */
  125. /*===========================================================================*/
  126. /* Derived constants and error checks. */
  127. /*===========================================================================*/
  128. /*===========================================================================*/
  129. /* Driver data structures and types. */
  130. /*===========================================================================*/
  131. /*===========================================================================*/
  132. /* Driver macros. */
  133. /*===========================================================================*/
  134. /*===========================================================================*/
  135. /* External declarations. */
  136. /*===========================================================================*/
  137. #ifdef __cplusplus
  138. extern "C" {
  139. #endif
  140. void irqInit(void);
  141. void irqDeinit(void);
  142. #ifdef __cplusplus
  143. }
  144. #endif
  145. #endif /* STM32_ISR_H */
  146. /** @} */