Jump to content

Recommended Posts

Posted

Dear community,

we are using a LTDC graphics driver on STM32H7 microcontroller and use configuration and initialization in the attached.

We are using RGB565 mode.

We find the display is working properly.

However, we would like to try using graphics accelerations, particularly those provided by the fillarea() function


However, it is not clear to us at the configuration level how to enable them.

Trying to trace back to the whole definition level it seems to us that this define is the one that can enable hardware accelerations but adding it to the configuration returns us error.

#define GDISP_DRIVER_LIST GDISPVMT_STM32LTDC

Can you give us any guidance on this?

Best regards

 

F.

STM32LTDC.ZIP gfxconf.h

Posted

Happy to hear that you have the STM32LTDC driver up and running :)

The hardware accelerated area filling is handled by the DMA2D peripheral.
From the µGFX side of things, the only thing you have to do is setting `STM32LTDC_USE_DMA2D` define to `GFXON`.

More information regarding the STM32LTDC driver can be found in the corresponding driver readme: https://git.ugfx.io/uGFX/ugfx/src/branch/master/drivers/gdisp/STM32LTDC/readme.md

Note: We strongly recommend that you use the latest master branch of the official µGFX v2.x git repository if you're using the LTDC driver. It has been reworked/improved substantially since the last official release.

Posted (edited)

I think we have some problem in the cascade of #defines coming from gfxconf.h

Unclear why even if the define you mentioned is enabled , within the fillarea() the sections that invoke the fill acceleration present in “gdisp_lld_STM32LTDC.c” are not enabled in my case.

image.png.9065eee990707b819c057125a8e6b42c.png

 

I quickly solved it by removing the #if conditions (not much time to investigate why this happens)

It seems that this define present in “gdisp_driver.h” wins

image.png.f1f814db9f8296c0f27768c5a573ff4a.png

 

 

F.

 

Edited by ForTest
Posted

Just had a quick look and the STM32LTDC_USE_DMA2D define/setting seems to work as intended.

Firstly, make sure that you define STM32LTDC_USE_DMA2D as GFXON (i.e. not just defining it, but also assigning the value to it).
Secondly, have you tried setting STM32LTDC_USE_DMA2D to GFXON in your build system (makefile, cmake, ...) instead of gfxconf.h?

Posted

Have a look at the command(s) passed to the compiler to verify that STM32LTDC_USE_DMA2D=GFXON is being passed as expected.

This should definitely work (both based one existing customer projects as well as a quick test on our end).

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...