Associate III
April 19, 2025
Solved
STM32CubeMX 6.13.0 not generating calls to HAL_DMA_IRQHandler in GPDMA1_Channel0_IRQHandler
- April 19, 2025
- 1 reply
- 1051 views
In our project we are using GPDMA for SAI transfers:
STM32CubeMX 6.13.0
STM32Cube_FW_U5_V1.7.0
STM32U535RE target
X-CUBE-FREERTOS 1.3.0 (FreeRTOS 10.6.2)
Description of the behaviour:
- We this .ioc configuration STM32CubeMX does not create the calls to `HAL_DMA_IRQHandler`.
- Note: in the past the time base call also was not generated (TIM6)
- A different .ioc we were using for the NUCLEO board was producing the correct/expected code
Example of expected code:
void GPDMA1_Channel0_IRQHandler(void)
{
/* USER CODE BEGIN GPDMA1_Channel0_IRQn 0 */
/* USER CODE END GPDMA1_Channel0_IRQn 0 */
HAL_DMA_IRQHandler(&handle_GPDMA1_Channel0);
/* USER CODE BEGIN GPDMA1_Channel0_IRQn 1 */
/* USER CODE END GPDMA1_Channel0_IRQn 1 */
}Actually generated code (note the missing call):
void GPDMA1_Channel0_IRQHandler(void)
{
/* USER CODE BEGIN GPDMA1_Channel0_IRQn 0 */
/* USER CODE END GPDMA1_Channel0_IRQn 0 */
/* USER CODE BEGIN GPDMA1_Channel0_IRQn 1 */
/* USER CODE END GPDMA1_Channel0_IRQn 1 */
}Workaround:
void GPDMA1_Channel0_IRQHandler(void)
{
/* USER CODE BEGIN GPDMA1_Channel0_IRQn 0 */
HAL_DMA_IRQHandler(&handle_GPDMA1_Channel0);
// comment out generated code, so a future generation
// run does not create duplicate calls
#if 0
/* USER CODE END GPDMA1_Channel0_IRQn 0 */
/* USER CODE BEGIN GPDMA1_Channel0_IRQn 1 */
#endif
/* USER CODE END GPDMA1_Channel0_IRQn 1 */
}
