cancel
Showing results for 
Search instead for 
Did you mean: 

QSPI with STM32 (and LVGL) - Only load image resources once

mtechmatt
Associate III

Hi,

I have a custom loader and am using STMCube32 IDE and QSPI. I have the linker etc all setup such that my assets (.c files of the BMPs) is loaded into QSPI and used by LVGL.

My question is - given loading via the STLink 5MB of images takes ~2 mins every time I want to build/run/debug etc, is there a more efficient method? Loading only the images once for example? Any advice welcome!

Thanks,

Matt

 

4 REPLIES 4
SofLit
ST Employee

Hello,

Try the "NOLOAD" key in the linker script for QSPI memory region:

https://stackoverflow.com/questions/57181652/understanding-linker-script-noload-sections-in-embedded-software

https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_21.html

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
mtechmatt
Associate III

Hi thank you. Had a quick read through, where would the tag actually need to go - below is my lnker - and I want QSPI to be a NOLOAD:

 

mtechmatt_0-1727697221761.png

 

SofLit
ST Employee

Put (NOLOAD) after .ExtFlashSection.

.ExtFlashSection (NOLOAD):

See for example: https://community.st.com/t5/stm32cubeide-mcus/how-to-enable-compiler-linker-to-manage-external-memory/td-p/205749

PS: I didn't test that before. 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
mtechmatt
Associate III

Unfortunately, it seems if we set NOLOAD the debugger tried to put it into  the normal 'flash ' region instead:
.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.200.202406191623/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: MESTDashV3.elf section `.ExtFlashSection' will not fit in region `FLASH'

Any other ideas?