STM32 BOOT 启动配置 ISP升级 介绍

启动配置

在STM32F10xxx里,可以通过BOOT1:0引脚选择三种不同启动模式。

|----------|-------|--------|---------------|
| 启动模式选择引脚 | 启动模式 | 说明 |
| BOOT1 | BOOT0 |
| X | 0 | 主闪存存储器 | 主闪存存储器被选为启动区域 |
| 0 | 1 | 系统存储器 | 系统存储器被选为启动区域 |
| 1 | 1 | 内置SRAM | 内置SRAM被选为启动区域 |

在系统复位后, SYSCLK的第4个上升沿, BOOT引脚的值将被锁存。用户可以通过设置BOOT1

和BOOT0引脚的状态,来选择在复位后的启动模式

在从待机模式退出时, BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持

为需要的启动配置。在启动延迟之后, CPU从地址0x0000 0000获取堆栈顶的地址,并从启动

存储器的0x0000 0004指示的地址开始执行代码。

因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),

而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。 Cortex-M3的CPU始终从

ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。 STM32F10xxx

微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从

内置SRAM启动。

根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:

● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原

有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问, 0x0000

0000或0x0800 0000。

● 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的

地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。

● 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。

注意: 当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从

新映射向量表之SRAM中。

内嵌的自举程序

内嵌的自举程序存放在系统存储区,由ST在生产线上写入,用于通过可用的串行接口对闪存存

储器进行重新编程:

● 对于小容量、中容量和大容量的产品而言,可以通过USART1接口启用自举程序。进一步的

细节请查询AN2606。

● 对于互联型产品而言,可以通过以下某个接口启用自举程序: USART1、 USART2(重映像

的)、 CAN2(重映像的)或USB OTG全速接口的设备模式(通过设备固件更新DFU协议)。

USART接口依靠内部8MHz振荡器(HSI)运行。 CAN和USB OTG接口只能当外部有一个

8MHz、 14.7456MHz或25MHz时钟(HSE)时运行。进一步的细节请查询AN2606。

ISP升级

由上可知:只需要将STM32F10xxx的BOOT0拉高,BOOT1拉低。就可以进入ISP升级。如下图所示。

使用 FlyMcu STM32程序下载软件与STM32 USART1连接

ISP工具:下载链接

相关推荐
橘为己有4413 小时前
51单片机:定时/计数器
单片机·51单片机
杯子不吃紫菜6 小时前
LangGraph 体系实战(下):中断恢复、流式、子图与设计模式
单片机·嵌入式硬件·设计模式
qq_448011166 小时前
中断服务函数简介
嵌入式硬件
Risehuxyc6 小时前
STM32程序逻辑---入口函数逻辑和NVIC嵌套向量中断控制器初始化
stm32·单片机·嵌入式硬件
【 STM32开发 】7 小时前
CubeMX+STM32】SD卡U盘实现__USB+FATFS (F103 篇)
stm32·单片机·嵌入式硬件
jianqiang.xue7 小时前
3倍向量算力:Arm给最小MCU装上本地AI
arm开发·人工智能·单片机
蜀黍@猿8 小时前
ARM 汇编入门(十二):MMU、页表与虚拟内存全解析
汇编·arm开发·stm32·mcu
无敌最俊朗-21 小时前
【电感专题2:电感的感抗、电路的阻抗、电流的滞后】
单片机·嵌入式硬件·元器件·电感
wuyk5551 天前
嵌入式故障诊断-Bug002-局部大数组压栈高温必死机
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·嵌入式实时数据库
Zwawa1 天前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
c语言·单片机·嵌入式