Blockcopy not called when fetching Extra Data in ExtFlashSection
- February 29, 2024
- 7 replies
- 10719 views
I'm working on a custom STM32U5 board with TouchGFX. The board features an external NOR flash memory used for storing the ExtFlashSection (as documented here).
In my project testing, I aim to display a simple black and white image with a transparent area. Initially, I configured TouchGFX Designer to place both the "Section" and "Extra Section" within the internal flash (IntFlashSection), and everything functioned as expected. However, my application necessitates storing media files in the external memory.
To achieve this, I successfully linked the ExtFlashSection to the external NOR flash. Subsequently, I modified the positions of both the "Section" and "Extra Section" from IntFlashSection to ExtFlashSection.
![]()
after compilation this my external memory:

When running the code, a hard fault occurs. This is likely due to TouchGFX attempting to directly fetch data from external memory during the loading of the "Extra Section" data, instead of using the BlockCopy function.
This is the Trace:

And these are the registers:

I came across this post and suspected it might be related to a known TouchGFX bug. I decided to move only the extra data to the IntFlashSection, which initially resolved the issue. However, when I tried changing the background image from bg_1.png to bg_2.png, a hard fault occurred again....here there are trace and registers


This time r1 is contains the base address for Extra Section of bg_2 in internal flash. So memory access should be ok....

What is the difference between bg_1.png and bg_2.png that could be causing this problem?
I would appreciate any suggestions or hints to resolve my problem.
