cancel
Showing results for 
Search instead for 
Did you mean: 

DMA2D configuration error with cached containers

i2399
Associate II

Hello,

I have a screen with a scrollable container which items are cached custom containers.

Everything works fine except that every once in a while the UI stops working and I am stuck with a DMA2D configuration error which is not handled by the touchgfx core. The workaround was to enable the configuration error interrupt flag and to call the transfer complete callback even if the error occurs, so that the touchgfx task doesn't block forever. I can sometimes see some glitches in the graphic when this situation occurs but at the moment I can surive with that.
The problem arise either with copy or fill DMA operations.

TouchGFX v2.31 and v2.32 behave the same, apparently v2.32 shows the problem less frequently but that might just be random.
CPU: STM32H750 and external SRAM for the 2 framebuffers.

I am attaching a screenshot of the DMA2D regiters captured after one of those situations occured.

i2399_0-1724327164068.png

 

Thanks!
Ivan

10 REPLIES 10

Hello @i2399,

Does the UI stop working while you are interacting with it, or does it happen with no interaction from the user?

Could please also share the error message that you receive?  

And, what do you mean by TouchGFX v2.32? Do you mean TouchGFX 4.23.1 and TouchGFX 4.23.2? 

Is it possible to test your project with the latest version of TouchGFX (4.24.1)?

 

Mohammad MORADI
ST Software Developer | TouchGFX

Hello Mohammad,

th UI stops working always when interacting with it.
Sorry about the release versions, I don't know why my memory reformatted them like that but you understood correctly: the two TouchGFX versions were 4.23.1 and 4.23.2.

What do you mean by the error message that I receive? The only anomaly that I have is in the the DMA2D registers.

As soon as I'll be able to test the latest TouchGFX release I will let you know.

Best regards,

Ivan

Hey Ivan,

No worries. By the error message, I meant the DMA2D configuration error that you mentioned. It would be nice to get the call stack, the hardfault (if it happens), and the code section where the program stops working. 

Looking forward to hearing about your experience with the latest version.

Best regards,

Mohammad MORADI
ST Software Developer | TouchGFX

Hello @i2399 ,

 

Have you been able to move forward with your project?
If one of Mohammad's comment helped you solve your issue, I invite you to select it as "best answer". :smiling_face_with_smiling_eyes:

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)

Unfortunately I have been very busy with another project and didn't have the time to keep investigating the issue.

I will keep you posted.

Regards,
Ivan

Hello @i2399 ,

 

No problem!

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)
i2399
Associate II

Hello, finally back on this project.

Working now with touchgfx 4.24.2, it seems that the custom containers caching is giving no performance improvement against the non-cache situation. It's almost like the cache availability is not took into consideration by the touchgfx engine.

I don't think I changed anything into my code, just converted it from 4.23.2 to 4.24.2 and regenerated with CubeMX and designer. 

I also double checked the code and everything seems ok (bitmap cache area setting, bitmaps creation and assignement to the containers, and container cache enabling).

Do you think I am missing something or is there an issue with this framework release?

Best regards,
Ivan

i2399
Associate II

Hello everyone,

I now tried to update the project to the last 4.25 version. I regenerated with CubeMX and with the new designer.

I am facing a bigger issue now that I am not being able to resolve: I have a first presentation screen with 2 interactions, the first one is a wait interactions that when finished triggers the switch to the application main screen, this is exactly what was perfectly working before the 4.25 update.
The main screen starts to build (I can see the program enters the setup functions of the new screen), but then the display is never updated and I am stuck showing the presentation screen.

The framebuffer semaphore is not free and TouchGFX task is blocked waiting on the semaphore.
How is that possible? There is no error on DMA2D side.

Should I maybe open a specific thread on this new issue?

Best regards,

Ivan 

i2399
Associate II

Update: I found out that I had an old ARM CMSIS pack, updated to the last one available and switched to FreeRTOS V2. Now my project works again, I am just dealing with heavy flickering now but I'll try to adjust some SRAM/TFT parameters and see what I can get.

Best regards,

Ivan