首先了解芯片的启动过程,看手册:

启动应该是芯片的内部固件判断,BOOT引脚的状态:
(1)从SRAM 启动;(2)从System Memory启动;(3)从Main Flash 启动。
然后从0x00000000获取栈顶指针;从始于0x00000004的存储器开始执行代码。

也就是说,如果(1)从SRAM 启动,需要重新分配SRAM中的向量表。
Memory mapping

从上图可以看出 0x00000000 - 0x07FFFFFF 之间这1M空间是Boot Memory Space(Aliased to Flash or systen memory depending on BOOT pins)。
(1)从

本文详细介绍了STM32芯片的启动过程,包括从SRAM、System Memory和Main Flash启动的情况,以及BOOT引脚状态对启动位置的影响。在不同启动模式下,0x00000000地址映射到不同内存区域,并需要相应地设置栈顶指针和向量表。文中还提到,当从SRAM启动时,需要在应用程序初始化阶段重新配置向量表。
最低0.47元/天 解锁文章
1万+





