cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX task stuck at DMA transfer

hel_christoph
Associate

Hello there,

I have a problem with a stuck TouchGFX task. When the fault occurs, the TouchGFX task uses almost 100% CPU time and completly prevents lower priority tasks from executing. It seems to be stuck at a DMA transfer, altering between LockFreeDMA_Queue::isFull() and DMA_Interface::addToQueue()

How to cause the fault

I'm using a FreeRTOS queue which is emptied in the model tick function. The queue content decides whether an (cached) image should be displayed or not. To simulate a high TouchGFX task usage (~50%), about 50 different images (60x60 pixel), some text and some widgets will be changed every 25 ms. Within two hours the TouchGFX task will get stuck.

Do you have an idea how to solve this, an workaround or any other help? I appreciate any answer - if you need further informations please ask.

Additionaly system information:

TouchGFX 4.20

CubeIDE 1.10.1

STM32H725IGT

Debug trace is alternating between these two functions when the TouchGFX task is executed

0693W00000Y8AREQA3.png

2 REPLIES 2
hel_christoph
Associate

For some reason, the DMA interrupt is not firing anymore. As a result the DMA_Inferface fails trying to initiate a new transfer and locks the TouchGFX task.

Now i need to figure out why the DMA interrupt will not trigger anymore.