PageRenderTime 28ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/Src/stm32f7xx_it.c

https://bitbucket.org/oh5fsz/asig-stm32f7-dsp
C | 398 lines | 114 code | 74 blank | 210 comment | 4 complexity | a4480d70d1d591d6ec2c743e774bb783 MD5 | raw file
  1. /**
  2. ******************************************************************************
  3. * @file stm32f7xx_it.c
  4. * @brief Interrupt Service Routines.
  5. ******************************************************************************
  6. *
  7. * COPYRIGHT(c) 2018 STMicroelectronics
  8. *
  9. * Redistribution and use in source and binary forms, with or without modification,
  10. * are permitted provided that the following conditions are met:
  11. * 1. Redistributions of source code must retain the above copyright notice,
  12. * this list of conditions and the following disclaimer.
  13. * 2. Redistributions in binary form must reproduce the above copyright notice,
  14. * this list of conditions and the following disclaimer in the documentation
  15. * and/or other materials provided with the distribution.
  16. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  17. * may be used to endorse or promote products derived from this software
  18. * without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  23. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  24. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  26. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  27. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  28. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  29. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30. *
  31. ******************************************************************************
  32. */
  33. /* Includes ------------------------------------------------------------------*/
  34. #include "stm32f7xx_hal.h"
  35. #include "stm32f7xx.h"
  36. #include "stm32f7xx_it.h"
  37. #include "cmsis_os.h"
  38. /* USER CODE BEGIN 0 */
  39. /* USER CODE END 0 */
  40. /* External variables --------------------------------------------------------*/
  41. extern DMA_HandleTypeDef hdma_adc1;
  42. extern ADC_HandleTypeDef hadc1;
  43. extern DMA_HandleTypeDef hdma_dac1;
  44. extern DMA_HandleTypeDef hdma_dac2;
  45. extern DAC_HandleTypeDef hdac;
  46. extern DMA_HandleTypeDef hdma_sai1_a;
  47. extern DMA_HandleTypeDef hdma_sai1_b;
  48. extern DMA_HandleTypeDef hdma_sai2_a;
  49. extern DMA_HandleTypeDef hdma_sai2_b;
  50. extern TIM_HandleTypeDef htim2;
  51. extern TIM_HandleTypeDef htim6;
  52. extern DMA_HandleTypeDef hdma_uart5_rx;
  53. extern DMA_HandleTypeDef hdma_uart5_tx;
  54. extern UART_HandleTypeDef huart1;
  55. extern TIM_HandleTypeDef htim1;
  56. /******************************************************************************/
  57. /* Cortex-M7 Processor Interruption and Exception Handlers */
  58. /******************************************************************************/
  59. /**
  60. * @brief This function handles Non maskable interrupt.
  61. */
  62. void NMI_Handler(void)
  63. {
  64. /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
  65. /* USER CODE END NonMaskableInt_IRQn 0 */
  66. /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
  67. /* USER CODE END NonMaskableInt_IRQn 1 */
  68. }
  69. /**
  70. * @brief This function handles Hard fault interrupt.
  71. */
  72. void HardFault_Handler(void)
  73. {
  74. /* USER CODE BEGIN HardFault_IRQn 0 */
  75. /* USER CODE END HardFault_IRQn 0 */
  76. while (1)
  77. {
  78. /* USER CODE BEGIN W1_HardFault_IRQn 0 */
  79. /* USER CODE END W1_HardFault_IRQn 0 */
  80. }
  81. /* USER CODE BEGIN HardFault_IRQn 1 */
  82. /* USER CODE END HardFault_IRQn 1 */
  83. }
  84. /**
  85. * @brief This function handles Memory management fault.
  86. */
  87. void MemManage_Handler(void)
  88. {
  89. /* USER CODE BEGIN MemoryManagement_IRQn 0 */
  90. /* USER CODE END MemoryManagement_IRQn 0 */
  91. while (1)
  92. {
  93. /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
  94. /* USER CODE END W1_MemoryManagement_IRQn 0 */
  95. }
  96. /* USER CODE BEGIN MemoryManagement_IRQn 1 */
  97. /* USER CODE END MemoryManagement_IRQn 1 */
  98. }
  99. /**
  100. * @brief This function handles Pre-fetch fault, memory access fault.
  101. */
  102. void BusFault_Handler(void)
  103. {
  104. /* USER CODE BEGIN BusFault_IRQn 0 */
  105. /* USER CODE END BusFault_IRQn 0 */
  106. while (1)
  107. {
  108. /* USER CODE BEGIN W1_BusFault_IRQn 0 */
  109. /* USER CODE END W1_BusFault_IRQn 0 */
  110. }
  111. /* USER CODE BEGIN BusFault_IRQn 1 */
  112. /* USER CODE END BusFault_IRQn 1 */
  113. }
  114. /**
  115. * @brief This function handles Undefined instruction or illegal state.
  116. */
  117. void UsageFault_Handler(void)
  118. {
  119. /* USER CODE BEGIN UsageFault_IRQn 0 */
  120. /* USER CODE END UsageFault_IRQn 0 */
  121. while (1)
  122. {
  123. /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
  124. /* USER CODE END W1_UsageFault_IRQn 0 */
  125. }
  126. /* USER CODE BEGIN UsageFault_IRQn 1 */
  127. /* USER CODE END UsageFault_IRQn 1 */
  128. }
  129. /**
  130. * @brief This function handles Debug monitor.
  131. */
  132. void DebugMon_Handler(void)
  133. {
  134. /* USER CODE BEGIN DebugMonitor_IRQn 0 */
  135. /* USER CODE END DebugMonitor_IRQn 0 */
  136. /* USER CODE BEGIN DebugMonitor_IRQn 1 */
  137. /* USER CODE END DebugMonitor_IRQn 1 */
  138. }
  139. /**
  140. * @brief This function handles System tick timer.
  141. */
  142. void SysTick_Handler(void)
  143. {
  144. /* USER CODE BEGIN SysTick_IRQn 0 */
  145. /* USER CODE END SysTick_IRQn 0 */
  146. osSystickHandler();
  147. /* USER CODE BEGIN SysTick_IRQn 1 */
  148. /* USER CODE END SysTick_IRQn 1 */
  149. }
  150. /******************************************************************************/
  151. /* STM32F7xx Peripheral Interrupt Handlers */
  152. /* Add here the Interrupt Handlers for the used peripherals. */
  153. /* For the available peripheral interrupt handler names, */
  154. /* please refer to the startup file (startup_stm32f7xx.s). */
  155. /******************************************************************************/
  156. /**
  157. * @brief This function handles DMA1 stream0 global interrupt.
  158. */
  159. void DMA1_Stream0_IRQHandler(void)
  160. {
  161. /* USER CODE BEGIN DMA1_Stream0_IRQn 0 */
  162. /* USER CODE END DMA1_Stream0_IRQn 0 */
  163. HAL_DMA_IRQHandler(&hdma_uart5_rx);
  164. /* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
  165. /* USER CODE END DMA1_Stream0_IRQn 1 */
  166. }
  167. /**
  168. * @brief This function handles DMA1 stream5 global interrupt.
  169. */
  170. void DMA1_Stream5_IRQHandler(void)
  171. {
  172. /* USER CODE BEGIN DMA1_Stream5_IRQn 0 */
  173. /* USER CODE END DMA1_Stream5_IRQn 0 */
  174. HAL_DMA_IRQHandler(&hdma_dac1);
  175. /* USER CODE BEGIN DMA1_Stream5_IRQn 1 */
  176. /* USER CODE END DMA1_Stream5_IRQn 1 */
  177. }
  178. /**
  179. * @brief This function handles DMA1 stream6 global interrupt.
  180. */
  181. void DMA1_Stream6_IRQHandler(void)
  182. {
  183. /* USER CODE BEGIN DMA1_Stream6_IRQn 0 */
  184. /* USER CODE END DMA1_Stream6_IRQn 0 */
  185. HAL_DMA_IRQHandler(&hdma_dac2);
  186. /* USER CODE BEGIN DMA1_Stream6_IRQn 1 */
  187. /* USER CODE END DMA1_Stream6_IRQn 1 */
  188. }
  189. /**
  190. * @brief This function handles ADC1, ADC2 and ADC3 global interrupts.
  191. */
  192. void ADC_IRQHandler(void)
  193. {
  194. /* USER CODE BEGIN ADC_IRQn 0 */
  195. /* USER CODE END ADC_IRQn 0 */
  196. HAL_ADC_IRQHandler(&hadc1);
  197. /* USER CODE BEGIN ADC_IRQn 1 */
  198. /* USER CODE END ADC_IRQn 1 */
  199. }
  200. /**
  201. * @brief This function handles TIM1 update interrupt and TIM10 global interrupt.
  202. */
  203. void TIM1_UP_TIM10_IRQHandler(void)
  204. {
  205. /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 0 */
  206. /* USER CODE END TIM1_UP_TIM10_IRQn 0 */
  207. HAL_TIM_IRQHandler(&htim1);
  208. /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 1 */
  209. /* USER CODE END TIM1_UP_TIM10_IRQn 1 */
  210. }
  211. /**
  212. * @brief This function handles TIM2 global interrupt.
  213. */
  214. void TIM2_IRQHandler(void)
  215. {
  216. /* USER CODE BEGIN TIM2_IRQn 0 */
  217. /* USER CODE END TIM2_IRQn 0 */
  218. HAL_TIM_IRQHandler(&htim2);
  219. /* USER CODE BEGIN TIM2_IRQn 1 */
  220. /* USER CODE END TIM2_IRQn 1 */
  221. }
  222. /**
  223. * @brief This function handles USART1 global interrupt.
  224. */
  225. void USART1_IRQHandler(void)
  226. {
  227. /* USER CODE BEGIN USART1_IRQn 0 */
  228. /* USER CODE END USART1_IRQn 0 */
  229. HAL_UART_IRQHandler(&huart1);
  230. /* USER CODE BEGIN USART1_IRQn 1 */
  231. /* USER CODE END USART1_IRQn 1 */
  232. }
  233. /**
  234. * @brief This function handles EXTI line[15:10] interrupts.
  235. */
  236. void EXTI15_10_IRQHandler(void)
  237. {
  238. /* USER CODE BEGIN EXTI15_10_IRQn 0 */
  239. /* USER CODE END EXTI15_10_IRQn 0 */
  240. HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_14);
  241. /* USER CODE BEGIN EXTI15_10_IRQn 1 */
  242. /* USER CODE END EXTI15_10_IRQn 1 */
  243. }
  244. /**
  245. * @brief This function handles DMA1 stream7 global interrupt.
  246. */
  247. void DMA1_Stream7_IRQHandler(void)
  248. {
  249. /* USER CODE BEGIN DMA1_Stream7_IRQn 0 */
  250. /* USER CODE END DMA1_Stream7_IRQn 0 */
  251. HAL_DMA_IRQHandler(&hdma_uart5_tx);
  252. /* USER CODE BEGIN DMA1_Stream7_IRQn 1 */
  253. /* USER CODE END DMA1_Stream7_IRQn 1 */
  254. }
  255. /**
  256. * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts.
  257. */
  258. void TIM6_DAC_IRQHandler(void)
  259. {
  260. /* USER CODE BEGIN TIM6_DAC_IRQn 0 */
  261. /* USER CODE END TIM6_DAC_IRQn 0 */
  262. HAL_DAC_IRQHandler(&hdac);
  263. HAL_TIM_IRQHandler(&htim6);
  264. /* USER CODE BEGIN TIM6_DAC_IRQn 1 */
  265. /* USER CODE END TIM6_DAC_IRQn 1 */
  266. }
  267. /**
  268. * @brief This function handles DMA2 stream0 global interrupt.
  269. */
  270. void DMA2_Stream0_IRQHandler(void)
  271. {
  272. /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
  273. /* USER CODE END DMA2_Stream0_IRQn 0 */
  274. HAL_DMA_IRQHandler(&hdma_adc1);
  275. /* USER CODE BEGIN DMA2_Stream0_IRQn 1 */
  276. /* USER CODE END DMA2_Stream0_IRQn 1 */
  277. }
  278. /**
  279. * @brief This function handles DMA2 stream3 global interrupt.
  280. */
  281. void DMA2_Stream3_IRQHandler(void)
  282. {
  283. /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
  284. /* USER CODE END DMA2_Stream3_IRQn 0 */
  285. HAL_DMA_IRQHandler(&hdma_sai1_a);
  286. /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
  287. /* USER CODE END DMA2_Stream3_IRQn 1 */
  288. }
  289. /**
  290. * @brief This function handles DMA2 stream4 global interrupt.
  291. */
  292. void DMA2_Stream4_IRQHandler(void)
  293. {
  294. /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */
  295. /* USER CODE END DMA2_Stream4_IRQn 0 */
  296. HAL_DMA_IRQHandler(&hdma_sai2_a);
  297. /* USER CODE BEGIN DMA2_Stream4_IRQn 1 */
  298. /* USER CODE END DMA2_Stream4_IRQn 1 */
  299. }
  300. /**
  301. * @brief This function handles DMA2 stream5 global interrupt.
  302. */
  303. void DMA2_Stream5_IRQHandler(void)
  304. {
  305. /* USER CODE BEGIN DMA2_Stream5_IRQn 0 */
  306. /* USER CODE END DMA2_Stream5_IRQn 0 */
  307. HAL_DMA_IRQHandler(&hdma_sai1_b);
  308. /* USER CODE BEGIN DMA2_Stream5_IRQn 1 */
  309. /* USER CODE END DMA2_Stream5_IRQn 1 */
  310. }
  311. /**
  312. * @brief This function handles DMA2 stream6 global interrupt.
  313. */
  314. void DMA2_Stream6_IRQHandler(void)
  315. {
  316. /* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
  317. /* USER CODE END DMA2_Stream6_IRQn 0 */
  318. HAL_DMA_IRQHandler(&hdma_sai2_b);
  319. /* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
  320. /* USER CODE END DMA2_Stream6_IRQn 1 */
  321. }
  322. /* USER CODE BEGIN 1 */
  323. /* USER CODE END 1 */
  324. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/