[STM32F1] STM32的Bootloader升级咋搞?

[复制链接]
5307|60
vivilyly 发表于 2025-3-18 21:19 | 显示全部楼层
Bootloader设置相应的标志位,并跳转到新版本APP的起始地址开始执行。
pl202 发表于 2025-3-18 21:45 | 显示全部楼层
将新固件写入应用程序区域,注意擦除旧固件和编程新固件的顺序。
kmzuaz 发表于 2025-3-18 22:23 | 显示全部楼层
需要注意中断向量表的修改、Flash操作规范、错误处理、安全性考虑以及电源管理等方面的问题。
dspmana 发表于 2025-3-18 22:51 | 显示全部楼层
上位机发送升级指令给STM32。
Bootloader检测是否收到升级指令,若收到则进入升级状态。
uptown 发表于 2025-3-19 09:42 | 显示全部楼层
在数据传输和写入过程中,务必进行数据校验,以确保数据的正确性和完整性。
常用的校验方法包括CRC校验和BCC校验。
i1mcu 发表于 2025-3-19 12:45 | 显示全部楼层
通过 UART 实现 OTA              
uptown 发表于 2025-3-19 17:19 | 显示全部楼层
在升级过程中,确保STM32设备的电源稳定供应,避免因电源波动导致升级失败或设备损坏。
飞思啦 发表于 2025-3-19 18:53 | 显示全部楼层
不如自己实现,主动权把我在自己手里
jackcat 发表于 2025-3-20 09:10 | 显示全部楼层
如果校验成功,Bootloader会将新的固件映像写入到STM32的Flash存储器中。
这个过程通常包括擦除旧的固件区域、编程新的固件数据等步骤。
pmp 发表于 2025-3-20 09:31 | 显示全部楼层
上位机通过串口、USB等通信接口将升级数据 发送到STM32。
Bootloader接收数据,并将其暂存到RAM中。
接收过程中,Bootloader可以对数据进行校验
cashrwood 发表于 2025-3-20 10:08 | 显示全部楼层
在进行数据传输时,合理设置波特率,避免因波特率过高导致数据传输错误。
可以尝试降低波特率,以提高数据传输的稳定性。
backlugin 发表于 2025-3-20 10:27 | 显示全部楼层
结合 DHCP 与 HTTP 服务器
yorkbarney 发表于 2025-3-20 10:49 | 显示全部楼层
启动模式配置:通过引脚状态或内部寄存器设置,选择从主程序还是Bootloader启动。
示例:STM32可通过BOOT0和BOOT1引脚配置启动模式。
saservice 发表于 2025-3-20 11:19 | 显示全部楼层
在进入升级状态后,Bootloader会擦除应用程序备份区的旧版本APP数据
jackcat 发表于 2025-3-20 12:02 | 显示全部楼层
在Bootloader完成APP的写入和校验后,需要正确地跳转到APP的起始地址执行。
在跳转之前,需要确保所有的资源(如RAM)都已正确释放或初始化。
alvpeg 发表于 2025-3-20 12:15 | 显示全部楼层
分区管理:在Flash中划分Bootloader和应用程序区域,确保两者不互相覆盖。
通信接口:实现UART、USB、SPI等通信接口,用于接收新固件。
固件更新:编写固件接收和写入Flash的代码,注意擦除和编程操作。
earlmax 发表于 2025-3-20 12:37 | 显示全部楼层
可以在通信协议中加入握手信号和错误重传机制,以提高数据传输的可靠性。
mnynt121 发表于 2025-3-20 12:50 | 显示全部楼层
通常可以通过特定的引脚配置(如上电时拉高特定的引脚)或者在应用程序中设置特定的标志来进入Bootloader模式。
loutin 发表于 2025-3-20 13:10 | 显示全部楼层
根据具体的STM32型号和配置,通过特定的方式(如按下某个按钮、设置某个引脚等)使设备进入Bootloader模式。
在Bootloader模式下,STM32会等待接收新的固件映像文件。
hearstnorman323 发表于 2025-3-20 13:20 | 显示全部楼层
设备上电或复位后,Bootloader程序首先运行。
Bootloader读取参数区的数据,判断是否需要进行升级。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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