STM32 在线升级功能(IAP)总结

在开发产品完成之后,用户使用过程中可能提出新要求(Fuck客户),或出现BUG(肯定的)。需要使用一种较为方便的方法给MCU或外挂flash更新程序。
目前接触过的接口有:
1.串口
2.USB(DFU)
3.网口

3种方式的原理基本一样。都是写一个bootloader程序,在MCU上电时判断某引脚电平,选择进入bootloader程序还是APP程序。

第一种

这种方式原子哥的历程中讲解很详细且有源码。

第二种

这种方式是使用ST做好的DFU功能进行升级。需要用到2个上位机软件:
1.DFU file Manager 用来将HEX或bin转为DFU文件
2.DFuSe Demo 选择DFU文件和下载到的位置(本地MCU或外挂FLASH)
注意生成DFU文件时要将TargetID改成DFuSe Demo 识别出来的TargetID匹配,否则更新时会报错,说什么“在这个设备文件上找不到数据”。
一般用HEX文件转即可,用bin的话需要注意地址信息。

对于USB还有一种方式:貌似是将MCU变成一个U盘,直接把HEX文件丢到U盘里。我没调过,可行性待证实。

第三种

这种方式需要软件支持某网络协议。如Ethercat,对于从站来说即是FOE功能,其实原理和上面两种一毛一样。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值