老师,在BootLoader跳转函数中会设置app的栈顶指针

🔍 溯源 ✍️ Jack | 📅 2025-04-02 | 👍 0 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/Bootloader #技术/STM32 #质量/普通

原帖 | Jack | 2025-04-02 01:35 | 👍0 | 阅读约1

老师,在BootLoader跳转函数中会设置app的栈顶指针,这个栈顶指针会比原本BootLoader的栈顶指针向后偏移一点,栈是在stm32中栈是从高地址向低地址增长的,那么在app中向后偏移之后,SRAM高地址是不是就会有一段SRAM被空出来始终都是弃用状态(app栈顶上方)?

不会有永久浪费SRAM,BootLoader仅在启动时运行,其栈空间在跳转后可完全释放,App可复用整个RAM区域,其实本质上是不存在释放动作的,只是在app的启动文件中又把msp指针指向了sram的最高地址,相当于覆盖了bootloader的栈,这段区域虽然有脏数据,但是是可被覆写的(App启动文件中会重新刷一遍)


相关笔记