2023-03-29 02:00 PM
Hello,
I am currently testing my custom board that utilizes the STM32H7B3IIT6 MCU. Since it is a custom board, I generated the code via CubeMX with the TouchGFX 4.20.0 software package. When I try to run the firmware, I noticed that I never entered the model::tick() function in the Model.cpp function. I ran the debugger and, in the taskEntry code, I have a function OSWrappers::waitForVSync() and the firmware stays in that function. It never gets past there.
This function exists in my "custom board" bring up where I used the STM32H7B3I-EVAL evaluation board and it does not get stuck in it. I acknowledge that TouchGFX know the evaluation board's pinout and specific configuration. My custom board cannot use that, so I copied the files from the evaluation board's working code and pasted them into my custom board project.
I have attached my .ioc file for reference, along with the snippet of my taskEntry code.
void TouchGFXHAL::taskEntry()
{
enableLCDControllerInterrupt();
enableInterrupts();
OSWrappers::waitForVSync();
backPorchExited();
/* Assert display enable LCD_DISP_CTRL pin */
//HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
/* Assert back light LCD_BL_CTRL pin */
//HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
for (;;)
{
OSWrappers::waitForVSync();
backPorchExited();
}
}
When I went into the waitForVSync() function, I notice I specifically get stuck in this portion of the function:
osMessageQueueGet(vsync_queue, &dummyGet, 0, osWaitForever)
void OSWrappers::waitForVSync()
{
uint32_t dummyGet;
// First make sure the queue is empty, by trying to remove an element with 0 timeout.
osMessageQueueGet(vsync_queue, &dummyGet, 0, 0);
// Then, wait for next VSYNC to occur.
osMessageQueueGet(vsync_queue, &dummyGet, 0, osWaitForever);
}
Can anyone help me diagnose what would cause this?
For further info, I am using a Rocktech RK043FN66HS-CTG display, which is capable of doing up to RGB888. In the firmware, I am limiting it to RGB565 for testing.
Solved! Go to Solution.
2023-03-30 08:36 AM
Hello Everyone,
I solved the issue. It was a discrepency between the LTDC and the TouchGFX Software Package configuration settings in the CubeMX. One was RGB888 and the other was RGB565. Once I aligned those, the issue went away.
2023-03-30 08:36 AM
Hello Everyone,
I solved the issue. It was a discrepency between the LTDC and the TouchGFX Software Package configuration settings in the CubeMX. One was RGB888 and the other was RGB565. Once I aligned those, the issue went away.