STM32F103RCT6 的 BOOT 引导选择决定了微控制器启动时从哪个存储区域加载程序。STM32F103 系列微控制器具有多个启动模式,可以通过设置 MCU 的 BOOT 引脚来进行选择。
BOOT 引导模式
STM32F103RCT6 有三种启动模式,分别是:
- 主闪存区启动(Main Flash Memory Boot)
- 系统存储器启动(System Memory Boot)
- 内置SRAM启动(Embedded SRAM Boot)
引导选择引脚
STM32F103RCT6 有两个引脚用于选择启动模式:BOOT0 和 BOOT1。
- BOOT0:通常连接到 VSS(GND)或 VCC(3.3V)。
- BOOT1:通常连接到 VSS(GND)、VCC(3.3V)或浮空(No Connection)。
引导选择表
根据 BOOT0 和 BOOT1 的状态,可以得到以下引导模式:
BOOT1 | BOOT0 | 启动模式 |
---|---|---|
GND | GND | 从 Flash 存储器启动(默认) |
GND | VCC | 从 System Memory(0x08000000)启动 |
VCC | GND | 保留,不允许使用 |
VCC | VCC | 从 Internal SRAM(0x20000000)启动 |
说明
- 从 Flash 存储器启动:这是默认的启动模式,程序通常存储在 Flash 中。
- 从 System Memory 启动:可以用来调试或更新程序。System Memory 是一块位于 Flash 区域的专用存储空间,大小为 128 字节,地址范围从 0x08000000 开始。
- 从 Internal SRAM 启动:可以用来运行一些简单的测试程序。SRAM 地址范围从 0x20000000 开始。
设置方法
- 通过外部引脚设置:可以通过将 BOOT0 和 BOOT1 引脚连接到 VSS 或 VCC 来设置启动模式。例如,要从 System Memory 启动,可以将 BOOT0 连接到 VCC,而 BOOT1 连接到 GND。
- 通过内部寄存器设置:在程序运行期间,也可以通过修改内部寄存器来改变启动模式。例如,可以通过设置
RCC->CR
寄存器中的BOOT0
和BOOT1
位来改变启动模式。
示例
从 Flash 启动(默认模式)
- BOOT0:接地 (GND)
- BOOT1:接地 (GND)
从 System Memory 启动
- BOOT0:接电源 (VCC)
- BOOT1:接地 (GND)
从 Internal SRAM 启动
- BOOT0:接电源 (VCC)
- BOOT1:接电源 (VCC)
注意事项
- 程序加载:在从 System Memory 或 Internal SRAM 启动时,需要确保相应的存储区域中加载了有效的程序。
- 引脚配置:在使用外部引脚设置启动模式时,确保引脚配置正确且在上电时已经处于正确的状态。
- 程序保护:在从 Flash 启动时,如果设置了程序保护(Read-Out Protection, RDP),则不能从 Flash 启动。
总结
- 通过设置 BOOT0 和 BOOT1 引脚的状态,可以控制 STM32F103RCT6 的启动模式。
- 默认情况下,微控制器从 Flash 存储器启动。
- 通过外部引脚或内部寄存器都可以设置启动模式。