Associate III
February 17, 2021
Question
TouchGFX stop in takeFrameBufferSemaphore()
- February 17, 2021
- 2 replies
- 1231 views
Still can't start works with #TouchGFX.
Target: make that touchgfx called function TouchGFXGeneratedHAL::flushFrameBuffer(rect);
What I did:
- Start new project and select my chip (stm32f767z)
- switch on crc
- switch on dma2d, and define color model rgb565, enable global interrupt
- switch on touchgfx, define resolution 480x320, and color model rgb565, enable dma2d, custom tick, no os.
- enable TIM13 for generate Vsync for touchgfx and sent it to period 50ms, enabled nvic
- generate a code
- run touchgfx designer, put white background and some line on it.. Generate code
- define callback for timer
extern void touchgfx_signalVSyncTimer(void);
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM13) {
touchgfx_signalVSyncTimer();
}
}define function
extern "C" void touchgfx_signalVSyncTimer(void) {
HAL::getInstance()->vSync();
OSWrappers::signalVSync();
}Compile and debug, and check when it call flush.
When I pause app it shows next stack.
So it's waiting when FB semaphore released.... But it never happens.
I read everything on this forum, and in stackoverflow but nothing helped....
What I missed?
