2020-11-05 07:45 AM
Hello,
I am using a 8080 screen and FMC module as an interface to LCD screen.
I have created a project using CubeMX (6.0.1) and Touch GFX (4.15).
In GFX there is only one startup screen and only one button.
I am not using OS. The project was generated and compiles with no errors.
So I have MX_TouchGFX_Process(); function call in a while cycle.
I found from manual that a tick driver should be implemented to generate VSync signal.
Ok. I have added a signalVSync call into SysTick interrupt to call each 100ms. The signalVSync inside has vsync_sem = 1; code. It is void OSWrappers::signalVSync().
I have set a breakpoint to flushFrameBuffer but it is never hit.
I have added a touchgfx::HAL::getInstance()->taskEntry(); in the main code. (Through extern C wrapper). Still no call to flushFrameBuffer.
Please tell me what places should i check? Never used that library before.
Thanks,
Solved! Go to Solution.
2020-11-08 09:22 PM
Hello,
Do you happen to have this line of code ?
lockDMAToFrontPorch(true);
If yes, set the parameter to false and try again.
For the OSWrapper you can refer to any Application Template available in TouchGFX Designer.
The Application Template F412G-DISCO in TouchGFX Designer uses FMC display interface, you can use it as a reference to help you in your development as well.
/Alexandre
2020-11-06 05:02 AM
I have checked through debugger that the project is stuck in lockFrameBufferEv function.
The call stack looks the following:
lockFrameBufferEv
fillREctERKNS_4RECT_9colortype
BOx4drawERKNS
Screen5JISMOCERKNS_4RectEPNS_8Drawable
taskEntryEv
So the button is drawn but the library can't get access to framebuffer.
I see that OSWrappers::takeFrameBufferSemaphore never called.
How the library is organized internally? Maybe i need to redefine some OSWrapper functions?
What else i need to check?
2020-11-06 05:24 AM
I have checked that OSWrappers::takeFrameBufferSemaphore is never get called.
waitForVSync is called once.
2020-11-08 09:22 PM
Hello,
Do you happen to have this line of code ?
lockDMAToFrontPorch(true);
If yes, set the parameter to false and try again.
For the OSWrapper you can refer to any Application Template available in TouchGFX Designer.
The Application Template F412G-DISCO in TouchGFX Designer uses FMC display interface, you can use it as a reference to help you in your development as well.
/Alexandre
2020-11-10 08:18 AM
Hello Alexandre RENOUX
Thanks for reply.
It worked.
Now i see that flush framebuffer is called.
It has all zeros. But i will check everything.
Maybe i missed to add something.
Thanks for help!!
2020-11-12 05:46 PM
If your question is answered, please close this topic by choosing Select as Best.
/Alexandre