cancel
Showing results for 
Search instead for 
Did you mean: 

WWDG_IRQHandler during screen change

ALomb
Senior

CubeMx IDE 1.0.1 - Custom board base on STM32F746IGT and 7'' LCD 1024x600.

TouchGFX application consists of two screen. Each screen have text and one button. Each button change screen with slide transition (east and west) .

After a few clicks, during screens transition application crashes.

Using the debugger, after crash, I suspend execution.

The PC is in "Infinite_Loop" and call stack in the follow:

0690X000009YeeUQAS.png

What could be the problem ?

8 REPLIES 8
cameronf
Senior

It probably was another unhandled IRQ triggering but when you end up in the Default_Handler your debugger will say it's the WWDG_IRQHandler in the call stack. If you don't have a HardFault_Handler defined that seems like the most likely culprit. If you don't have it defined you can define it to see if it lands there and then can take a look at the hard fault status registers to get a better idea to what might be happening. If it's not a hardfault, I would take a step back and try to see if you have any IRQs that might be firing but are not handled.

Martin KJELDSEN
Chief III

Yeah, i'd also check that your interrupt vector table is correct. Are you expecting a specific interrupt, or don't you know what might be happening? In any case, it is only hitting the weak symbol and then going to the default handler.

ALomb
Senior

I do not expect a specific interruption. I don't know what could happen!

I have verified that problem occurs only during the screens transition.

I have HardFault_Handler defined, but it does not triggered when problem occurs.

What can I still verify?

This is the configuration of the NVIC.

0690X000009Yg1tQAC.png

ALomb
Senior

Following the post "Drawing a TGFX box widget in big screen (800x480) causing crash" I tried to use Use NoDMA class and application no longer crashes.

Of course transition speed has been significantly reduced.

I also tried hal.lockDMAToFrontPorch(true) without success!

What can I do now to solve ?

ALomb
Senior

I restored the DMA and reduced the frequency of the LTDC from 48MHZ to 24MHz and the crash no longer occurs!

However, when the crash occurs, I have verified IPSR register content. The IPSR register contents [0x00000069] say that following interrupt occurred:

HardFault, BusFault and UsageFault. I have enabled related callback functions, but these are not called!

Martin KJELDSEN
Chief III

Hi @Community member​,

I'm back from vacation, what's your status on this?

/Martin

ALomb
Senior

Hi @Martin KJELDSEN​,

I also back from vacation :pensive_face:

I have not investigated this problem anymore.

Is it normal that a too high frequency of the LTDC causes the crash?

/Antonello

You should not be getting hard faults. Maybe buffer under/overruns due to frequency setings, but i wouldn't expect a hardfault.