cancel
Showing results for 
Search instead for 
Did you mean: 

How can I debug problems related to TouchGFX?

SGonc.1
Associate

I've ported TouchGFX on custom HW, but it doesn't work (

I created class related from HAL, initialized TouchGFX and executed taskEntry().

It is done in the next way:

static LCD4bpp           oled;
static TAPI_Btn_c        btnCtrl(keys);
static NoDMA             dma;
static NoTouchController tc;
uint32_t arFrameBuff[8192 / 4 + 1];
 
void touchgfx_init()
{
    HAL& hal = touchgfx_generic_init<TAPI_HAL_c>(dma, oled, tc, 256, 64, 0, 0);
    hal.setFrameBufferStartAddress((uint16_t*)arFrameBuff, 4, false, true);
    hal.setButtonController(&btnCtrl); //Enable button controller
 
    hal.lockDMAToFrontPorch(false);// Allow DMA transfers to start immediately
    hal.enableMCULoadCalculation(false);
}
 
...
 
void RunMainTask(void const* args)
{
	touchgfx_init();
	touchgfx::HAL::getInstance()->taskEntry(); // Never returns
}

I see that periodically is executed touchgfx::OSWrappers::signalVSync(), one time OSWrappers::takeFrameBufferSemaphore() and TAPI_Btn_c::sample().

I can not see other activities from TouchGFX.

I understood that possible I initialized something incorrectly, but can not to debug it.

Could somebody suggest some solution or a way how I can debug this issue?

1 REPLY 1
SGonc.1
Associate

Fixed.

I use OSWrappers_cmsis.cpp wrapper. It initializes semaphore 'frame_buffer_sem' and takes it. It is issue, There the semaphore should be released.

Possible my solution helps somebody.