cancel
Showing results for 
Search instead for 
Did you mean: 

Lockup inside tick function

GMeta.1
Associate II

I am using Touchgfx version 4.19.1 with an STM32CubeIDE version of 1.12.1 (have also tried 1.13.2). The basis is a template from EDT (EVK070006B) which runs on an STM32F746.

I have noticed that after maybe a couple of hours the GUI freezes and is hence unresponsive. For the release build I am using the watchdog which is kicked within the tick() function in the Model. For debug (no watchdog) I can see that all the FreeRTOS tasks are running fine except for the defaultTask which is why the tick doesn't happen. There is only limited source code for the Touchgfx drivers, so I can't say much why it locks up but it looks like it is waiting (indefinitely) on a semaphore for the frame buffer and hence not in any part of my code. Someone else looks like they had a similar problem: crash-in-touchgfx-draw-function-waiting-on-framebuffer-semaphore but this doesn't look like it was resolved properly? I have tried increasing the priority of the defaultTask and also given it oodles of stack to play with.

Here's a screenshot from the debugger when I pause during the lockup...

GMeta1_0-1695572801359.png

 

1 REPLY 1
GMeta.1
Associate II

Here is another stack trace where it is apparently stuck in TextAreaWithWildcardBase:
There is no source for this so can't debug it with help from ST. I have tried a workaround to use a timeout in the call to xSemaphoreTake but it doesn't make any difference because the touchGFX library code is locking up presumably in the above function.

 

EVK070006B_neps2 Debug [STM32 C/C++ Application]
EVK070006B.elf
Thread #1 [1] 1 (RUNNING) (Suspended : Signal : SIGINT:Interrupt)
OTG_FS_IRQHandler() at stm32f7xx_it.c:265 0x801462c
<signal handler called>() at 0xffffffed
touchgfx::TextAreaWithWildcardBase::draw(touchgfx::Rect const&) const at 0x8082606
touchgfx::Screen::JSMOC() at 0x8086304
touchgfx::Screen::startSMOC() at 0x808635a
touchgfx::Screen::draw() at 0x8086388
touchgfx::Application::draw() at 0x808490c
touchgfx::Application::drawCachedAreas() at 0x8085702
touchgfx::HAL::tick() at 0x807e162
touchgfx::HAL::backPorchExited() at HAL.hpp:619 0x8069c4e
<...more frames...>
arm-none-eabi-gdb (10.2.90.20210621)
ST-LINK (ST-LINK GDB server)
RTOS Proxy