cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFXTask created using tasks and queues in freertos (cubemx) is getting executed only once

MPath.4
Associate II

I am using STM32H750VB Custom Board. It has 16bpp parallel RGB interface with an TFT LCD of resolution 800x480. As I have no external memory, I am using RAM_D1 of 512KB as framebuffer resulting in, as per the calculation, resolution area of 800x300 in TOUCHGFX screen.  Single buffer with allocation by address(0x24000000)  is used in CUBEMX.

QUADSPI flash used is of 16MB and have created partition of 2MB of application code and rest for the asset of TOUCHGFX . Every precaution which needs to be taken care of in LD file is done. 

When the code is generated, touchgfx_taskEntry(); is called from TouchGFX_Task(); which contains hal.taskEntry(). Have modified taskEntry() as given below in TouchGFXHAL.cpp :

void TouchGFXHAL::taskEntry()

{

enableLCDControllerInterrupt();

enableInterrupts();

 

OSWrappers::waitForVSync();

backPorchExited();

 

 

for (;;)

{

OSWrappers::waitForVSync();

backPorchExited();

}

}

TouchGFX_Task() specifications are:

priority :ospriority normal

stack size : 4096 words

code generator : external

parameter, buffer name, control block : NULL

Allocation : Dynamic

There are two other tasks along with TouchGFX_Task(). They are default task and idle generated by the software itself.

Other two tasks are running but TouchGFX_Task()(called only once).

So problem is, this gets called only once.

Also, one major problem I noticed is that TouchGFXGeneratedHAL::endFrame(); is not called.

Can anyone please help me with this?

 

CUBEMX VERSION       :         6.9.1

CUBEIDE VERSION       :        1.13.1

TOUCHGFX VERSION   :        4.22.0

2 REPLIES 2
MPath.4
Associate II

I need the solution please someone help.

Can anyone please help with my Custom Board?