cancel
Showing results for 
Search instead for 
Did you mean: 

FLASH IRQ handler not triggered on STM32H753.

Petró Máté
Associate II

Hy.

I have a little problem. I developed an Ethernet based remote firmware update for the STM32H753 uC (rev. V) in a custom board.

The processor erases the BANK2, and than programs it with the new firmware. When the programmed firmware checks correctly, a BANK swap occures and the the processor resets itself.

This bootloader works fine on some hardware, but my problem is that there are hardwares when I call the 'HAL_FLASHEx_Erase_IT()' function (which returns HAL_OK), the 'FLASH_IRQHandler' not triggered.

It's very strange that there are two identical hardwares, and one works fine all the time and the other fails all the time.

I could really use some help,

Thanks.

Petró.

2 REPLIES 2
TDK
Guru

To fire an interrupt, a few things need to happen:

  • The interrupt needs enabled within the peripheral (FLASH in this case).
  • The corresponding NVIC interrupt needs enabled.
  • The interrupt flag needs to fire (you don't say which event you want to fire, but there is a flag for it).
  • Interrupts need enabled globally.
  • The code must be in the main loop or in an interrupt with lower preemption priority.

Check those. One or more isn't happening.

If you feel a post has answered your question, please click "Accept as Solution".
Pavel A.
Evangelist III

There's some errata for flash interface and bank switching (especially 2.2.8).

Are you sure that none of your "hardwares" are rev. Y?