Skip to main content
BVu
Associate III
April 15, 2021
Solved

STM32H745, MDMA_IRQHandler() is missing in stm32h7xx_it.c

  • April 15, 2021
  • 2 replies
  • 1842 views

I register MDMA call backs, for example XferBufferCpltCallback, XferBlockCpltCallback, etc. using the HAL_MDMA_RegisterCallback() function. But the callbacks never got hit. These callbacks are called from stm32h7xx_hal_mdma.c/HAL_MDMA_IRQHandler(). HAL_MDMA_IRQHandler() in turn is called from stm32h7xx_it.c/MDMA_IRQHandler(). However, in my source tree , both CM4 and CM7, DMA_IRQHandler() is not in stm32h7xx_it.c as generated from CubeMX 6.1.1. And MDMA ISR is not in the vector table in startup_stm32h745bitx.s

I have looked at NVIC1, NVIC2, MDMA in CubeMX and can't find anything that would get MDMA_IRQHandler() to be generated. I would aprreciate it if someone let me know how to solve this problem.

This topic has been closed for replies.
Best answer by Khouloud OTHMAN

Hi @BVu​ ,

Actually, this issue is reproduced only with H7 Dual Core, there is no problem with H7 Single Core devices.

Taking the example of STM32H743 MCU, MDMA global interrupt could be enabled through the NVIC Interrupt Table:

0693W00000AM4LHQA1.png 

Thus, MDMA_IRQHandler () will be correctly generated in the stm32h7xx_it.c file.

I hope this answers question. If this is the case, please close this topic by choosing Select as Best. This will help other users find that answer faster.

Do not hesitate to raise any feedback or issue.

Khouloud.

2 replies

Technical Moderator
April 16, 2021

Hello @BVu​ ,

Thanks for reported this issue.

I added the topic "STM32CubeMX" to your question in order to be reviewed by our CubeMX team.

Hi @Khouloud OTHMAN​ , @Khouloud ZEMMELI​ ,

Can you please help @BVu​ and provide a status on this reported issue.

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
Khouloud OTHMAN
Associate
April 20, 2021

Hi @BVu​ ,

Thanks for your feedback and for raising this issue, you're right there is not an option in CubeMX in order to add MDMA IRQ handler in the generated Code for H7 Dual Core devices.

This a known problem and it was already reported to our development team to be fixed as soon as possible.  I'll surely keep you posted with updates.

Sorry for any inconvenience that this may cause.

Thanks a lot for you contribution.

Khouloud.

BVu
BVuAuthor
Associate III
April 20, 2021

Hi @Khouloud OTHMAN​,

Thanks for confirming. Is the issue limited to the dual core H7? Or the singe core H7 is affected as well?

Khouloud OTHMAN
Khouloud OTHMANBest answer
Associate
April 21, 2021

Hi @BVu​ ,

Actually, this issue is reproduced only with H7 Dual Core, there is no problem with H7 Single Core devices.

Taking the example of STM32H743 MCU, MDMA global interrupt could be enabled through the NVIC Interrupt Table:

0693W00000AM4LHQA1.png 

Thus, MDMA_IRQHandler () will be correctly generated in the stm32h7xx_it.c file.

I hope this answers question. If this is the case, please close this topic by choosing Select as Best. This will help other users find that answer faster.

Do not hesitate to raise any feedback or issue.

Khouloud.