cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to display Text using FreeRTOS, TouchGFX and Custom LCD

pitbull
Associate III

Hello Everyone,

Earlier we have successfully developed a variant using STM32F746 Discovery board but now we have shifted towards our own developed PCB with custom LCD Display 800 * 480.

Our new PCB uses MT25Q128A external flash for storing images, text and font used by TouchGFX and we are using single buffer allocation in external SDRAM for framebuffer. We are using different pins for QuadSPI communication so had to develop custom external loader for this. We have tested the external loader for various images and it works fine.

When we started inputting texts in TouchGFX the system would wait infinitely in xQueueSemaphoreTake() function so we suspected something might be wrong with loading from external flash so we created another project this time stored everything in internal flash, again the result was same, the TouchGFX hangs while using texts.

After searching through the community we came across following links:

https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/ui-stuck-in-takeframebuffersemaphore/td-p/203677/page/7

Here it is suggested to  try to change the line in stm32h7xx_hal_dma2d.c, in the function, but is related to H7 series.

Same thread also suggested changing MPU Config

pitbull_0-1736834760700.png

 

We had disabled MPU in our project but even after enabling it the result was unaffected.

 

pitbull_1-1736834760419.png

 

Please guide me where I am doing wrong.

Thankyou 

 

Regards,

Pitbull

3 REPLIES 3
pitbull
Associate III

Hello Everyone,

Earlier we have successfully developed a variant using STM32F746 Discovery board but now we have shifted towards our own developed PCB with custom LCD Display 800 * 480.

Our new PCB uses MT25Q128A external flash for storing images, text and font used by TouchGFX and we are using single buffer allocation in external SDRAM for framebuffer. We are using different pins for QuadSPI communication so had to develop custom external loader for this. We have tested the external loader for various images and it works fine.

When we started inputting texts in TouchGFX the system would wait infinitely in xQueueSemaphoreTake() function so we suspected something might be wrong with loading from external flash so we created another project this time stored everything in internal flash, again the result was same, the TouchGFX hangs while using texts.

After searching through the community we came across following links:

https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/ui-stuck-in-takeframebuffersemaphore/td-p/203677/page/7

Here it is suggested to  try to change the line in stm32h7xx_hal_dma2d.c, in the function, but is related to H7 series.

Same thread also suggested changing MPU Config

pitbull_0-1736832798007.png

We had disabled MPU in our project but even after enabling it the result was unaffected.

 

pitbull_1-1736832860313.png

Please guide me where I am doing wrong.

Thankyou 

 

Regards,

Pitbull

Hi.

The issue about MPU in the topic you refer to is to disable prefetching outside of the QSPI range.
This is important and should be done. Normally this gives an error after running a while (could be hours).

Try moving texts and fonts to internal flash for a test. This is done in the linker script.

Also check the DMA2D for errors. One error is the configuration error. There is maybe a handler for this in the top of TouchGFXGeneratedHAL.

It can also be a DMA2D Transfer error. This comes if there is a error on the memory subsystem during the transfers. 

You can check this by looking at the DMA2D registers (in the ISR register).

If you get this, you do not get the Transfer Complete interrupt, and the process stops.

Hope it helps.

Hii Fleming,

 

Already checked by moving fonts and texts in internal flash. Facing the same issue.
Will check for the DMA2D registers and update you accordingly.

 

Thankyou for your quick response.

 

Regards, 

Pitbull