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 ,在发布页中,找到对应项目获取方式。

相关推荐
Rocktech_ruixun5 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
天空'之城7 小时前
单片机基础核心知识点汇总(三十四)
单片机·嵌入式硬件
Horn Still Sounds8 小时前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机
三佛科技-187366133979 小时前
24W-48W隔离双绕组非标自供电芯片LP3718CD(电路原理图)
单片机·嵌入式硬件
糖糖单片机设计11 小时前
基于 STM32 的小型鸟类宠物繁殖系统
stm32·嵌入式硬件·宠物
电子元器件选型哥13 小时前
一文讲清LLC谐振电路工作原理
单片机·嵌入式硬件·硬件工程师·电子元器件·器件选型
HUI-47413 小时前
EG1162|SOP‑16 高压同步整流降压控制器,最高 600V 输入,大电流 5V 输出优选
嵌入式硬件·硬件工程
POMAGTOR13 小时前
【5G 通讯 POGOPIN 弹簧顶针连接器解决方案】
网络·嵌入式硬件·5g
ZLG_zhiyuan14 小时前
测试方案 | 从“000”到“111”,高效完成100BASE-TX以太网眼图测试
单片机·嵌入式硬件
恒锐丰科技林技术员14 小时前
EG1198:120V 宽压内置 MOS 降压 DC‑DC 电源芯片解析
经验分享·嵌入式硬件·硬件工程