STM32 ISP 升级体验

摘要

今天玩了一下STM32的ISP升级,记录一下。

前面一段时间工作在调试其他 ARM 芯片的 Bootloader。 就想看看之前了解的 STM32 的 ISP 升级,但是之前一直没试过。

STM32 启动

之前调试 ARM 启动,知道芯片会有一段 BootRom 程序固化在芯片中,这个程序能够加载程序代码到片上 RAM 执行,程序可能来自外部 Flash 或者 串口实时传输。

然后我看了 STM32 F1 的启动,好像BootRom做的内容很简单,只是做了一个地址映射(也可能是我没看全),分3种启动方式。

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

我们平时使用,都是使用的主闪存存储器。就是用Jlink啥的烧写代码,都是烧在主闪存存储器,至于他怎么用JLink烧进去的,我后面再看看呢。

从主闪存存储器启动:主闪存存储器被映射到启动空间(0x00000000),但仍然能够在它原有的地址(0x08000000)访问它。

从系统存储器启动:系统存储器被映射到启动空间(0x00000000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。

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

摘录自(STM32中文参考手册)

先不讨论从内置SRAM启动,也就是说,在芯片的地址 0x08000000 开始存放着用户自己烧写的代码,0x1FFFF000 开始存放着ST官方烧写的一段代码。

我们通过控制BOOT引脚,就能控制哪一段代码被映射到0x00000000去执行。

我测试的是系统存储器启动,所以我将BOOT0置1,BOOT1置0。

系统存储器代码下载

系统存储器代码,复位后,使用串口,偶校验,8位数据位,1位停止位,波特率不固定,他会在你第一次发送指令后,计算实际的波特率。

系统存储器代码包含很多功能,读取设备ID,写闪存数据,读闪存数据,这个协议,官方编写了相应的文档《AN2606》和《AN3155》即可知晓他的读写逻辑。

官方的下载器STM32CubeProgrammer,就是使用的这个协议,做的下载和读写。使用串口连接后,就能够下下载和读取了,简易连接前先复位,

记得将BOOT0置1,BOOT1置0。

连接成功后,他会自己去读一下用户主闪存存储器区域的代码,也就是 0x08000000 开始的代码,你也可以点击那个读自己读。

点击那个+号,就可以导入自己的HEX文件,然后下载。

下载完成后,将启动调整成主闪存存储器启动BOOT0置0,BOOT1置0即可,然后复位就可以看到升级内容了。

后续

这个升级一般应该是用在大量出货的时候吧。

好像这个升级还有什么校验的,后面再关注一下。

资料获取

本项目资料完全开源,包含文档和软件安装包。资料包获取方式:

githubhttps://github.com/snqx-lqh/ProjectReleasePage

gitee(国内镜像)https://gitee.com/snqx-lqh/ProjectOpenSourceReleasePage

项目属于 32 的编号 B008 ,在发布页中,找到对应项目获取方式。

相关推荐
嵌入式阿蔡7 小时前
传感器_03:电机驱动——让 GPIO 当指挥官,别让 GPIO 当电源
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
国科安芯9 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
树的枝12 小时前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
单片机杂货铺13 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界14 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡15 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA16 小时前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯17 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi201617 小时前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件
单片机杂货铺18 小时前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计