[STM32F1] STM32的Bootloader升级咋搞?

[复制链接]
5231|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。我觉得没啥坑


将爱藏于深海 发表于 2025-3-8 02:36 | 显示全部楼层
DFU模式使用STM32内置的DFU Bootloader,通过USB接口升级固件。其优势就是开发简单,ST提供了标准的DFU工具和协议。稳定性高,独立于应用程序运行

她已醉 发表于 2025-3-8 03:26 | 显示全部楼层
如果需要灵活性和自定义协议,选择IAP模式。如果需要快速实现且设备支持USB,选择DFU模式

春日负喧 发表于 2025-3-8 04:32 | 显示全部楼层
配置BOOT引脚,或通过选项字节设置启动模式为DFU

温室雏菊 发表于 2025-3-8 05:36 | 显示全部楼层
IAP模式,灵活但开发复杂,适合自定义协议。也没有什么坑,所以你可以了解一下

风凉 发表于 2025-3-8 06:33 | 显示全部楼层
不咋喜欢DFU模式,虽然简单稳定,适合USB接口设备,但是需要固定的烧录软件

西洲 发表于 2025-3-8 07:35 | 显示全部楼层
一般必须实现(如CRC32),确保固件完整性。这个可能会让烧录慢一点,这个算是一个坑吧

捧一束彼岸花 发表于 2025-3-8 08:27 | 显示全部楼层
你说的坑,一般常见的就是Flash写入、跳转、固件损坏等问题需特别注意

白马过平川 发表于 2025-3-8 09:47 | 显示全部楼层
其实通过合理设计和实现,可以有效避免Bootloader升级中的问题,确保固件升级的稳定性和可靠性

故意相遇 发表于 2025-3-8 10:51 | 显示全部楼层
IAP稳,DFU不是很方便,必须用专用的烧录软件,感觉麻烦

uiint 发表于 2025-3-18 19:09 | 显示全部楼层
系统引导:初始化硬件(时钟、GPIO、DMA)、加载用户固件。
​固件升级:通过 USB/UART/SWD 接口接收新固件,支持空中下载(OTA)。
​故障恢复:若用户固件损坏,可引导至安全模式或恢复出厂设置。
​调试支持:提供 SWD/JTAG 接口,方便开发者调试。
belindagraham 发表于 2025-3-18 19:16 | 显示全部楼层
在进行升级之前,务必备份原始固件,以防升级失败后能够恢复到原始状态。
wwppd 发表于 2025-3-18 19:25 | 显示全部楼层
写入完成后,Bootloader会跳转到新固件的入口地址,开始执行新的固件代码。
系统重启后,新的固件开始运行,完成升级过程。
adolphcocker 发表于 2025-3-18 19:40 | 显示全部楼层
升级前确保 Flash 中的用户固件已被擦除
yeates333 发表于 2025-3-18 19:54 | 显示全部楼层
写入完成后,通常需要验证固件的完整性,比如通过校验和或CRC。
jkl21 发表于 2025-3-18 20:20 | 显示全部楼层
在Bootloader代码中实现错误处理机制,以便在升级过程中出现问题时能够安全地恢复或重试。
linfelix 发表于 2025-3-18 20:56 | 显示全部楼层
接收完所有数据后,Bootloader将数据写入到Flash的APP分区。
写入前需要对Flash进行擦除操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

155

主题

5872

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部