打印
[STM32F1]

STM32的Bootloader升级咋搞?

[复制链接]
852|60
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Clyde011|  楼主 | 2025-3-5 08:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用Bootloader升级固件,有没有啥坑?IAP模式和DFU模式哪个更稳?要不要自己写校验机制?

使用特权

评论回复
沙发
huquanz711| | 2025-3-5 08:19 | 只看该作者
IAP和DFU都是很成熟的升级方式,网上很多教程和源码,参考一下。

使用特权

评论回复
板凳
weifeng90| | 2025-3-7 19:19 | 只看该作者
两者都没问题啊,都是很成熟的升级方案。

使用特权

评论回复
地板
失物招領| | 2025-3-8 01:11 | 只看该作者

在应用程序中实现Bootloader功能,通过串口、CANI2C等接口接收新固件并写入Flash。我觉得没啥坑


使用特权

评论回复
5
将爱藏于深海| | 2025-3-8 02:36 | 只看该作者
DFU模式使用STM32内置的DFU Bootloader,通过USB接口升级固件。其优势就是开发简单,ST提供了标准的DFU工具和协议。稳定性高,独立于应用程序运行

使用特权

评论回复
6
她已醉| | 2025-3-8 03:26 | 只看该作者
如果需要灵活性和自定义协议,选择IAP模式。如果需要快速实现且设备支持USB,选择DFU模式

使用特权

评论回复
7
春日负喧| | 2025-3-8 04:32 | 只看该作者
配置BOOT引脚,或通过选项字节设置启动模式为DFU

使用特权

评论回复
8
温室雏菊| | 2025-3-8 05:36 | 只看该作者
IAP模式,灵活但开发复杂,适合自定义协议。也没有什么坑,所以你可以了解一下

使用特权

评论回复
9
风凉| | 2025-3-8 06:33 | 只看该作者
不咋喜欢DFU模式,虽然简单稳定,适合USB接口设备,但是需要固定的烧录软件

使用特权

评论回复
10
西洲| | 2025-3-8 07:35 | 只看该作者
一般必须实现(如CRC32),确保固件完整性。这个可能会让烧录慢一点,这个算是一个坑吧

使用特权

评论回复
11
捧一束彼岸花| | 2025-3-8 08:27 | 只看该作者
你说的坑,一般常见的就是Flash写入、跳转、固件损坏等问题需特别注意

使用特权

评论回复
12
白马过平川| | 2025-3-8 09:47 | 只看该作者
其实通过合理设计和实现,可以有效避免Bootloader升级中的问题,确保固件升级的稳定性和可靠性

使用特权

评论回复
13
故意相遇| | 2025-3-8 10:51 | 只看该作者
IAP稳,DFU不是很方便,必须用专用的烧录软件,感觉麻烦

使用特权

评论回复
14
uiint| | 2025-3-18 19:09 | 只看该作者
系统引导:初始化硬件(时钟、GPIO、DMA)、加载用户固件。
​固件升级:通过 USB/UART/SWD 接口接收新固件,支持空中下载(OTA)。
​故障恢复:若用户固件损坏,可引导至安全模式或恢复出厂设置。
​调试支持:提供 SWD/JTAG 接口,方便开发者调试。

使用特权

评论回复
15
belindagraham| | 2025-3-18 19:16 | 只看该作者
在进行升级之前,务必备份原始固件,以防升级失败后能够恢复到原始状态。

使用特权

评论回复
16
wwppd| | 2025-3-18 19:25 | 只看该作者
写入完成后,Bootloader会跳转到新固件的入口地址,开始执行新的固件代码。
系统重启后,新的固件开始运行,完成升级过程。

使用特权

评论回复
17
adolphcocker| | 2025-3-18 19:40 | 只看该作者
升级前确保 Flash 中的用户固件已被擦除

使用特权

评论回复
18
yeates333| | 2025-3-18 19:54 | 只看该作者
写入完成后,通常需要验证固件的完整性,比如通过校验和或CRC。

使用特权

评论回复
19
jkl21| | 2025-3-18 20:20 | 只看该作者
在Bootloader代码中实现错误处理机制,以便在升级过程中出现问题时能够安全地恢复或重试。

使用特权

评论回复
20
linfelix| | 2025-3-18 20:56 | 只看该作者
接收完所有数据后,Bootloader将数据写入到Flash的APP分区。
写入前需要对Flash进行擦除操作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

4054

帖子

0

粉丝