Hi,
my project targets an STM32H753BI Cortex-M7. Using Keil MDK I had several problems with startup which all finally pointed to SRAM1 to SRAM3 not clocked on startup.
The clocks could be activated by defining "DATA_IN_D2_SRAM=1". This will tell the system startup code file "system_stm32h7xx.c" to include the code section for SRAM clock activation in SystemInit().But now this renders useless, since the linker puts the scatterloader right after the vector table and the scatterloader then directly jumps to main. This results in SystemInt() never executed (see disassembly below).
DATA_IN_D2_SRAM=1
Is there a possiblity to insert the scatterload after SystemInit()?Or at least - if ths isn't possible - to tell the scatterloader algorithm not to jump to main?
Thanks a lot
Chris
I suspect that the code is not starting at Reset_Handler, but rather at __main.
Add --entry Reset_Handler to the Linker command line.
Also has the vector table been set up to point to Reset_Handler?
https://developer.arm.com/documentation/107565/0101/Use-case-examples/Generic-Information/What-is-inside-a-program-image-/Vector-table
Hi Ronan,
thaks for your suggestion.
The linker command "--entry Reset_Handler" solved the issue. The linker file also now states the entry point correctly.