cancel
Showing results for 
Search instead for 
Did you mean: 

Infinite loop of touchgfx::HAL::getInstance()->taskEntry();

MaxMax
Associate II

Hi,

I'm debugging this problem for the major part of my weekend now, and could use a hint pointing me in the right direction, in order to not also spend the remaining part of the weekend on debugging.

After quite some struggle getting TouchGFX to work with CubeMX and TrueStudio, I get the software compiled. I configured all TouchGFX-parameters and enabled both LTDC and DMA2D interrupts in CubeMX. I already tested the LCD with manually copying a TouchGFX-generated image from the flash to the frame buffer using DMA2D, after the initialization-functions from the CubeMX-generated code, which works and displays as expected. My conclusion is, that LTDC and DMA2D are configured correctly.

When touchgfx::HAL::getInstance()->taskEntry() is called, TouchGFX enables the interrupts by calling STM32F7HAL::enableInterrupts(), and then disables them using void STM32F7HAL::disableInterrupts() shortly after, without any changes to the framebuffer. Inbetween LTDC_ER_IRQHandler() fires three times, even though only because of a line interrupt. Then, nothing happens any more.

Any ideas on what the problem could be?

Best regards,

Max

4 REPLIES 4
MaxMax
Associate II

Sorry, I found the problem. Actually, two different problems. One was the manual copying of the image, which triggered an external DMA interrupt that TouchGFX choked on, the second was just too little heap. I increased it from the CubeMX default 0x400 (I think) to 0x4000, and TouchGFX is actually drawing a screen.

Martin KJELDSEN
Chief III

Hi @MaxMax​,

Glad you found the problem. Anything we should dig deeper into or are you happy?

Best regards,

Martin

Hi Martin,

thank's a lot for the offer. The issue was just too little heap and a slight mix up of things on my side, so from my side there is no need to dig deeper. :smiling_face_with_smiling_eyes:

Sounds good :)