cancel
Showing results for 
Search instead for 
Did you mean: 

UI Corruption in TouchGFX + IAR (STM32H5)

Coccodrillo19
Associate II

Hi everyone,

 

I'm struggling with a critical synchronization issue between TouchGFX Designer (4.2x) and IAR Embedded Workbench (9.60.2) on an STM32H563 project.
Whenever I modify the UI (e.g., deleting a Button or adding a ToggleButton), TouchGFX correctly generates the new .cpp and .hpp files in the "generated/" folder.
However, upon flashing the device, the UI is completely corrupted:
- Images are replaced by random noise or other assets.
- Texts disappear
- Moving a widget "off-screen" instead of deleting it works, but adding new ones breaks everything again.

 

I'm using Nucleo-H563ZI with Riverdi screen.

I tried these steps without success:
- Delete IAR folders: Obj, BrowseInfo and regenerated
- Deleted TouchGFX/generated and TouchGFX/build and regenerated
- Full chip erase (Internal + External Flash) via STM32CubeProgrammer
- Forced "Rebuild All" in IAR

 

Any idea on how to fix this issue?

4 REPLIES 4
JohanAstrup
ST Employee

Hello @Coccodrillo19.

Could you please share your flashing procedure?

Since you have been able to erase the external flash, it sounds like you already have the correct external loader installed and selected in STM32CubeProgrammer, but could you please confirm that you are using this external loader?

temp.png

Also, which version of STM32CubeProgrammer are you using?

Best regards,
Johan

Hello, some weeks ago i did a post about the fact that i wasn't able to program the external memory; now i found the solution: there were weak functions in the TouchGFXDataReader.cpp module that i completed with a memcpy.

So i was able to delete the external memory with STM32CubeProgrammer (v2.21.0) using the external loader you indicated in the picture.

I'm able to flash in the external memory with IAR IDE:
- in Options->Debugger->Download i selected the "STM32H563ZI_RVA35HI.board" file
- in Optins->Linker->Config i selected the "stm32h563xx_flash.icf" file

So the problem comes when for example I delete a button that i had before or i try to add a new kind of toggle button.
If i leave everything as it is now i can download and use the screens without any issues.

JohanAstrup
ST Employee

The "STM32H563ZI_RVA35HI.board" file is something you created yourself, right?

I think your issue can be resolved by using STM32CubeProgrammer to flash the board instead of the IAR debugger. You can still debug with IAR afterwards by pressing “Debug without Downloading”.

To me, it looks like the external memory is not being properly erased.

Best regards,
Johan

Coccodrillo19
Associate II

The STM32H563ZI_RVA35HI.board file was in the C:\iar\ewarm-9.60.2\arm\config\flashloader\ST folder, where also other boards are present.
I'm getting an error trying to flash from STM32CubeProgrammer even with the "W25Q64_NUCLEO-H563ZI-RVA35HI-REV-1-1" file in the External Loaders section (EL on the left); this file was provided by Riverdi.

I noticed that when doing the "Fll chip erase" nothing is erased, but if i select all the sectors and do "Erase selected sectors" it's working, apart from an area between the addresses 0x90110620 and 0x9031B970.
At this point I think that's the problem causing the display glitching.