cancel
Showing results for 
Search instead for 
Did you mean: 

What on earth the 'BootRAM' in startup file is?

ZhiYi-R
Associate

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

 

2 REPLIES 2

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.

Thanks for that.But according to the thread you've mentioned, this address should be the last entry of ISR vector table. However, in my project I didn't find the reference to 'BootRAM'.Maybe ST changed something?IDK.Is there any further information or documentation?