- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
STM32 BOOT模式(一)
STM32 boot[1:0] 决定从何处启动
(1)STM32上电时锁存BOOT[1:0],决定从何处启动
在RAM中调试时,已经上电成功,BOOT的状态已经没有作用。
IDE软件自动地把程序下载到RAM,并在RAM调试运行。
(2)
热启动时应该有用,比如上电时是从flash中启动,然后用户程序把代码写到SRAM里,之后就可以改变BOOT脚的跳线,然后按下复位按键,程序就可以从SRAM中运行了.不过看起来不怎么实用。
(3)
理论上说
只是在复位后的第四个SYSCLK的上升沿锁定BOOT引脚的值,从而决定代码从哪里:Flash还是SRAM启动。
但是使用MDK时需要注意,项目使用的连接文件flah linker file还是ram linker file,要和BOOT搭配:就是说,如果配置在flash中调试运行代码,则BOOT要配置成从Flash启动;若果配置成在ram中调试运行代码,则BOOT要配置成从SRAM启动。
使用IAR没有这个限制哦。
在STM32F10x里,可以通过BOOT[1:0]引脚选择三种不同启动模式。
表3 BOOT 模式选择
启动模式选择管脚
BOOT0 BOOT1 启动模式 说明
0 X 用户闪存存储器 用户闪存存储器被选为启动区域
1 0 系统存储器 系统存储器被选为启动区域
1 1 内嵌SRAM 内嵌 SRAM被选为启动区域
通过设置选择管脚,对应到各种启动模式的不同物理地址将被映像到第0块(启动存储区)。在
系统复位后,SYSCLK的第4个上升沿,BOOT管脚的值将被锁存。用户可以通过设置BOOT1
和BOOT0引脚的状态,来选择在复位后的启动模式。
B00T0引脚是独立引出芯片,在应用时一般出问题的机率不大。当它配置为0(低电平时),不管B00T1的状态是什么(1/0),STM32将用户闪存存储器被选为启动区域,这种安排基本可以确保应用能正常运行。
当BOOT0为1时,配合BOOT1的配置,则可能使用系统存储器被选为启动区域或SRAM被选为启动区域两种方式,这种模式一般用在RAM调试运行或ISP下载时用。
需要注意的时,BOOT1一般是复用引脚,当应用系统用到ISP下载时,请注意在设计电路时做出合理的安排,以免发生冲突 |
|