Skip to main content
Associate
September 18, 2026
Solved

Moving SVG files to external flash

Hi, I have a lot of SVG files in my project, so much so that I had to move them to my external flash. Now, I know I can move SVG files to external flash by adding a section to my linker script:

 ExtFlashSection :
{
*/SVGDatabase.o(.rodata.*)

} >EXT_FLASH

However it would be simpler to simply set this in TouchGFX Designer itself just like I can choose the location of PNGs.
As seen in the image below. I can select a Section for PNGs, but not for SVGs.


Is this something that can/will be added to TouchGFX in the future?

Osman SOYKURT
Osman SOYKURTBest answer
ST Technical Moderator
September 24, 2026

Hello ​@Iwan ,

Thank you for the suggestion. Out of curiosity, how much flash do all your SVGs actually take in your project?

The reason this option is not exposed in the Designer is that SVG data is usually very compact compared to bitmaps, so moving it to external flash generally frees up much less space than moving images or fonts. There is also a performance cost: unlike bitmaps, SVG data is not read sequentially, and the same data is read several times while drawing a frame, so it is more sensitive to external memory latency.

One important point as well: it only works if your external flash is memory-mapped. There is no flash data reader or caching mechanism for SVG data, unlike bitmaps and fonts.

That said, what you did with the linker script is perfectly valid if internal flash is your limiting factor. Btw, there’s an old community topic where same question was asked and where I’ve replied also.

I will forward your request to the team.

ST Software Developer | TouchGFX

2 replies

Osman SOYKURT
Osman SOYKURTBest answer
ST Technical Moderator
September 24, 2026

Hello ​@Iwan ,

Thank you for the suggestion. Out of curiosity, how much flash do all your SVGs actually take in your project?

The reason this option is not exposed in the Designer is that SVG data is usually very compact compared to bitmaps, so moving it to external flash generally frees up much less space than moving images or fonts. There is also a performance cost: unlike bitmaps, SVG data is not read sequentially, and the same data is read several times while drawing a frame, so it is more sensitive to external memory latency.

One important point as well: it only works if your external flash is memory-mapped. There is no flash data reader or caching mechanism for SVG data, unlike bitmaps and fonts.

That said, what you did with the linker script is perfectly valid if internal flash is your limiting factor. Btw, there’s an old community topic where same question was asked and where I’ve replied also.

I will forward your request to the team.

ST Software Developer | TouchGFX
IwanAuthor
Associate
September 25, 2026

Hi Osman,

 

Thank you for the answer and for forwarding my request.


All my SVG files together take up around 360KB, which is about a third of my total internal flash. Individually they do take up a lot less space than my images, I just have a lot of them in this project.