external loader MX25L512G_STM32F769I-DISCO.stldr
- November 11, 2019
- 5 replies
- 2170 views
Hello all,
I modified my .ld file as:
MEMORY
{
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
QUADSPI (rx) : ORIGIN = 0x90000000, LENGTH = 64M (added line)
}
And I replaced FLASH with QUADSPI in order to load all to external flash.
I copied MX25L512G_STM32F769I-DISCO.stldr file to external loader folder of CubeMXIDE.
I modified system_stm32f7xx.c to set 0x90000000L offset:
/* Configure the Vector Table location add offset address ------------------*/
#ifdef VECT_TAB_SRAM
SCB->VTOR = RAMDTCM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#else
//SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
SCB->VTOR = 0x90000000L | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
#endifWhen I debug the program with STM32CubeIDE
with external loader (MX25L512G_STM32F769I-DISCO, 0x90000000, NOR_FLASH, MX25L512G_STM32F769I-DISCO.stldr) my program reaches 0x90000000 and executes the code.
When I reset program (e.g. by button) or try to download program with STM32 ST-LINK Utility or STM32CubeProg... my program does not start.
https://github.com/rudoq32/STM32-QSPI.git
Do you have any useful hints for me?
Thank you
Rudo
