2019-10-24 11:48 PM
Hi,
I’m using the licenced version of TouchGFX V4.9.2 in my project. The code runs on STM32F777 and segger emBOS OS.
Occasionally the TouchGFX task falls into an endless loop, waiting for DMA_Queue::isFull() to return FALSE while in DMA_Interface::addToQueue() function.
The only way to get out of this state is to reboot the hardware.
I tried to the below two steps to get out of lock-up state without rebooting the system, but didn’t succeed and TouchGFX code goes to lock-up state again.
1- disable DMA2D and LTDC interrupts and de-initialise them and then terminate the TochGFX task and de-initialise the LTCD
2- to initialise DMA2D and LTDC peripherals a create the GFX task
Any idea why this is happening and if there is a way to get out of this state without system reboot.
Thanks
2019-10-30 05:20 AM
Hi,
It's been a while since i ran this version but i think that maybe we found a bug somewhere along the way where, if you were to place a textarea as the very last element in your view, something would happen to the semaphore protecting one of the framebuffers.
Can you verify?
/Martin
2019-10-30 05:21 AM
In other words, you could try upgrading your application to 4.12.3 and see if the issue is still there.
/Martin
2019-10-30 07:19 PM
Hi Marin,
Correct, I’ve a textarea which is the top most element of my view. The textarea is used as digital clock so the text gets updated every second and the rest of screen is almost static waiting for button events.
I found out TouchGFX V4.10.0 has similar issue so I implemented the recommended fix to check if it rectifies the issue on V4.9.3 too and let you know the results.
If problem still there then I’ll upgrade to V4.12.3.
Thanks, Khalil
2019-10-30 11:54 PM
The suggested fix in the "TouchGFX Known Issues" didn't work on V4.9.3 then I upgraded to V4.12.3 still the same problem. TouchGFX core stays in addToQueue() function waiting for Queue to be available.
Attached is the screenshot of the Keil-IDE screen while in this state which contains:
2019-10-31 05:33 AM
Hi,
Strange, we fixed the issue for 4.12.0 specifically. I will try to verify! In the meantime, could you change the z-order of your textarea so that it is not the topmost element?
/Martin
2019-11-01 01:51 AM
Hi,
The z-order change didn’t fix the issue either.
When application in the main screen the only object that invalidates (redraws) regularly is the digital clock's textarea, maybe that’s why z-order change didn’t help.
Khalil
2019-11-03 09:22 PM
Hi Martin,
While you are verifying the issue, is there a way to reset the TouchGFX core without rebooting the h/w?
I tried terminating the GUITask, resetting LDTC and DMA2D peripherals and interrupts, then recreating the task and enabling the interrupts. But it didn’t help as the “dma�? object’s scope is global so the core goes into the same hang state.
Thanks, Khalil