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.
PS: This is NOT an online support (https://ols.st.com) but a collaborative space. So please be polite in your reply. Otherwise, it will be reported as inappropriate and you will be permanently blacklisted from my help/support.
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.
PS: This is NOT an online support (https://ols.st.com) but a collaborative space. So please be polite in your reply. Otherwise, it will be reported as inappropriate and you will be permanently blacklisted from my help/support.
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?