Strange interrupt handler problem on STM32H7
Another day, another bug....
I'm trying to use ADC3 with BDMA on H753.
Started from some cube-generated code that assigned BDMA channel 0 to ADC3.
Allocated memory in SRAM4. Added interrupt handler for BDMA_Channel0 and ADC3.
When I start the ADC3, I hit the default interrupt handler - as if the proper handler is not defined.
ICSR = 0x891 this means the active interrupt is 0x91.
0x91 - 16 = 129 which is exactly BDMA_Channel0_IRQn.
And there's the handler for it. But this handler is not hit. Why??
DMA_HandleTypeDef hdma_adc3;
ADC_HandleTypeDef hadc3;
void ADC3_IRQHandler(void)
{
HAL_ADC_IRQHandler(&hadc3);
}
void BDMA_Channel0_IRQHandler(void)
{
HAL_DMA_IRQHandler(&hdma_adc3);
}I've checked the listing and the vector table, the vector indeed points to my BDMA_Channel0_IRQHandler.
VTOR looks correct (systick works, and the default handler is there as well).
Same behavior when the code is in internal flash or AXI RAM. Caches NOT enabled.
So how comes that the default handler is called?
Is there an example of ADC3 in DMA mode (BDMA) for STM32H7x3?