Showing results for 
Search instead for 
Did you mean: 

Stuck with OSWrappers::takeFrameBufferSemaphore

Associate II

Well, hello, here I am again.

Today I would like to ask you about OSWrappers::takeFrameBufferSemaphore() method. Unfortunetly in our device we get some random 'hangs' after minutes or even hours of working. Inside this method TGFX waits for a semaphore to be released:

xSemaphoreTake(frame_buffer_sem, portMAX_DELAY);

TGFX works in a single thread so I guess it waits for DMA2D interrupt to signalize the task it can safely make further magic with framebuffer. But in our case it happens to wait for it for ever. The stack presents as following (I changed portMAX_DELAY to 5000 after which I performed BKPT):

0693W000006F90TQAS.pngI have no idea how to repair it or even debug.

I have found some info about problems with this lock here:

I added endFrame method in HAL:

void STM32F7HAL::endFrame()
    if (dma.isDMARunning())

But it did not help- although it helps somehow when changing portMAX_DELAY to for example 50 ms- then takeFrameBufferSemaphore exits and continues to work.

EDIT: well, it hanged anyway.

Any idea how to make it work?

TGFX Im using atm is 4.13 with some old OSWrappers and TGFXHALs (I compared it with the present ones and it's almost the same)

David S.


Hi, I have the same issue (i think).

Did you solve your problem? What was the solution?

BR David

Associate II

Well, we just updated everything and, meanwhile, we switched from F7 to H7 and since then we are not suffering from this problem anymore, I think. At least I havent heard of it since then.

To be honest I have no clue what was the reason of such behaviour.

Associate III

I seem to have the same issue now also om my H7 running TouchGFX 4.22. 

Are you still spared of these issues or have you maybe found a solution?

Hello @PontusL ,


This thread is old.

I advise you to create a new one with details about your issue : what hardware you are using, what is the problem your encounter, what is the version of your softwares, packs and drivers, what you have tried to solve the issue.



It had been revived before so I figured I'd might as well do it again. 

But sure, I'll create a new thread.