Skip to main content
Associate II
June 23, 2023
Question

STM32H750 Sharing use of hardware JPEG decoder and DMA2D between my app and TouchGFX

  • June 23, 2023
  • 1 reply
  • 1553 views

Hi,

I'm using TouchGFX to develop an application, using mostly static screens. But I have a requirement to produce a runtime splash screen and idle screen from user-supplied images read from SD card or stored in flash. I can do this without too much problem, and have it working with either BMP or JPEG images from both sources.

But to use the hardware acceleration peripherals (JPEG and DMA2D) I have had to disable their use in the TouchGFX configuration.

  • For the JPEG hardware, the TouchGFX-generated code contains the fixed-name callbacks such as HAL_JPEG_DataReadyCallback, HAL_JPEG_GetDataCallback etc. Obviously there are linker errors if we both implement these functions and I can't see a way to 'hook into' their generated functions. If I disable JPEG hardware in TouchGFX, does that only affect its performance when using video? And what is the performance hit over software support?
  • For the DMA2D, the graphics application stops after I have used DMA2D (in a different configuration to that used by TouchGFX perhaps?). I've tried re-configuring the peripheral to the same as the MX_DMA2D_Init() function generated in main.c. This did not help. Is there a way to use this peripheral without impacting TouchGFX? If I disable TouchGFX from using it, what is the performance hit and what is the effect?
  • Is it maybe possible to perform any JPEG conversion during boot time, before the peripherals are configured for TouchGFX, and thus 'share' the peripherals that way?
This topic has been closed for replies.

1 reply

Associate
March 4, 2024

Hi, did you find a solution?

ChrisShawAuthor
Associate II
March 4, 2024

Short answer - no.

I think it only affects performance in TouchGFX with video decoding though. Nothing noticeable otherwise, and all graphics resources directly used by TouchGFX are pre-compiled into the necessary bitmaps anyway. So I use the JPEG decoder and set TouchGFX to use software support - which it never uses.