STM32启动方式详解
目录
一、从主闪存存储器启动(Main Flash Memory)
二、从系统存储器启动(System Memory)
三、从内置SRAM启动(Embedded SRAM)
四、从外挂存储介质启动的实现方式
1. 存储介质选型
2. 硬件连接
3. 引导程序(Bootloader)
4. 固件更新
5. 示例流程
6. 注意事项
一、从主闪存存储器启动(Main Flash Memory)
>>配置:BOOT0 = 0,BOOT1 = X(任意状态)
>>描述:最常见的启动方式,STM32从内置的Flash存储器启动。使用JTAG或SWD模式下载程序时,程序被下载到主闪存中,重启后也从这里开始执行。
>>地址映射:主Flash的起始地址
0x0800 0000被映射到0x0000 0000
二、从系统存储器启动(System Memory)
>>配置:BOOT0 = 1, BOOT1 = 0
>>描述:这种启动方式用于通过串口或其他接口下载程序到STM32的Flash中。系统存储器是芯片内部一块特定区域,出厂时预置了一段Bootloader程序,这段程序允许通过外部接口将代码写入STM32的Flash中。
>>地址映射:系统存储器的起始地址
0x1FFF 0000被映射到0x0000 0000
三、从内置SRAM启动(Embedded SRAM)
>>配置:BOOT0 =1,BOOT1 = 1
>>描述:这种启动方式通常用于程序调试。因为它不需要擦写Flash,因此速度较快。由于SRAM是易失性存储器,掉点后数据丢失。
>>地址映射:内置SRAM的起始地址
0x2000 0000被映射到0x0000 0000
通过这些启动方式,STM32提供了灵活的编程和调试选项,满足不同的应用需求!
四、从外挂存储介质启动的实现方式
1. 存储介质选型
可以使用多种类型的外部存储器,例如:
2. 硬件连接
3. 引导程序(Bootloader)
为了实现从外部存储器启动,通常需要一个引导程序(Bootloader):
Bootloader的功能:
设计考虑:
4. 固件更新
使用外部存储启动的一个主要应用场景是进行固件更新:
5. 示例流程
- 上电或复位:单片机上电或复位,进入Bootloader。
- 外部存储器初始化:Bootloader初始化与外部存储器的连接。
- 读取程序:Bootloader从外部存储器读取预定区域的数据,将其加载到RAM或直接从闪存执行。
- 跳转到应用程序:Bootloader完成加载后,将控制权转交给主应用程序。
6. 注意事项
通过以上这些措施,单片机能够从外挂存储介质中顺利启动。
作者:你好,奋斗者!