cancel
Showing results for 
Search instead for 
Did you mean: 

Strange effect when widget is pressed

MPast.1
Senior II

Hi everybody,

 In my custom board I discover a strange effect when I interact with widget.

The latest widget redraw has always a lots of wrong pixels while the previous one is redrawed correctly.

I'm using an STM32H743VIT6, with touchGFX 4.23.2 and Stm32cube ide 1.15.0.

Assets are load from an external QSPI memory

This is the first time I see this strange behaviour and I would like to understand the cause.

Does some has an idea? IS it software or should be hardware?

Some suggestion?

At the following link, I upload a small video to show you the effect (link is available until April 16, 2024):

https://fex.net/s/rveymxr 

 

thanks in advance

1 ACCEPTED SOLUTION

Accepted Solutions

If you enabled data cache you need to invalidate the cache using SCB_InvalidateDCache_by_Addr.

View solution in original post

5 REPLIES 5

If you enabled data cache you need to invalidate the cache using SCB_InvalidateDCache_by_Addr.

Hello @MPast.1 ,

As you know there can be multiple causes for this issue. Here are my suggestions:

  1. Are you using a Double framebuffer or Single framebuffer? If you are using the double, can you ensure that you send the correct one to display and not the one currently being drawn to
  2. What type of display interface are you using? If you have memory in the display, can you confirm that the correct data is saved there?
  3. It would be nice to disable any optimizations like caching or hardware accelerations and then examine your framebuffer to check if the data is correctly written to it.
  4. There could also be a synchronization issue with sending the framebuffer to the display and drawing the new frame if you are using a single framebuffer.
  5. I don't think the problem stems from reading the data from the flash because, as you mentioned, the previously drawn data appears correct. So, focus on the new updated parts

Looking forward to hearing from you

Mohammad MORADI
ST Software Developer | TouchGFX

HI @unsigned_char_array,

I disabled DCache from configurator and everything works correctly

Hi @Mohammad MORADI ESFAHANIASL , sorry for the late:

I answer you point by point:

  1. I'm using Single buffer.
  2. I'm using a display that admit various interfaces: for configuration I 'm using SPI port and when it is ready, I  unblock the initialization process and I let TouchGfx take the control using RGB565 interface.
  3. I Tryed to remove any kind of optimization from compiler (but nothing changes), but when I Disabled "CPU DCache" I solved the problem definitivly.
  4. solving the problem with the previous solution, I'm thinking witch 4th point is not relevant.
  5. There are not problems regarding QSPI access and remapping function. It's the only thing it works perfectly from the begging

Thank you

best regards

Hello @MPast.1 ,

Glad to hear you managed to fix the issue 

Best regards,

Mohammad MORADI
ST Software Developer | TouchGFX