2025-05-02 3:41 AM
I'm working on my cpp scaffold for stm32, so I read the startup file generated by STM32CubeMX.And I noticed that the startup file contains a definition called BootRAM, but there is no documentation on it.It also seems not being used anywhere else on a regular project, so what on earth it is?Should I consider it when I write my own startup file?
P.S. The startup code I've mentioned is below:
/* start address for the initialization values of the .data section.
defined in linker script */
.word _sidata
/* start address for the .data section. defined in linker script */
.word _sdata
/* end address for the .data section. defined in linker script */
.word _edata
/* start address for the .bss section. defined in linker script */
.word _sbss
/* end address for the .bss section. defined in linker script */
.word _ebss
.equ BootRAM, 0xF1E0F85F
2025-05-02 4:30 AM - edited 2025-05-02 4:39 AM
Dear ZhiYi-R,
"BootRAM" instruction at gcc startupfile exists since STM32F1 era.
The latest STM32H5 has the same.
I found interesting thread.
https://community.st.com/t5/stm32-mcus-products/last-entry-in-vector-table-provided-by-st-startup-scripts/td-p/491306
When you want to write your own startup and boot from "internal flashrom only" ,it may not be necessary.
Because IAR & ARM startup does not have BootRAM instruction.
Best regards,
Nemui.