cancel
Showing results for 
Search instead for 
Did you mean: 

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

ChrisShaw
Associate II

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?
2 REPLIES 2
cstrobbe
Associate

Hi, did you find a solution?

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.