你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用ML302远程升级STM32F1固件要怎么做?

[复制链接]
踮起脚摘苹果 提问时间:2020-7-17 15:42 /
目前接触到中移的4G模块ML302,但是不知道怎么用它OTA远程升级STM32F103的固件,有坛友知道的吗?
收藏 评论4 发布时间:2020-7-17 15:42

举报

4个回答
cloudcn 回答时间:2020-7-17 16:00:46
自己写bootloader 代码估计要留到16k左右 一般在flash前面留16k 上电后检测标记 决定是升级还是运行
主程序需要升级时 设定标记并重启

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

butterflyspring 回答时间:2020-7-29 10:15:41
看看厂家的应用笔记和例程就会清楚很多了。很多人都是这么走过来做产品的
zhuoyemp4 回答时间:2020-7-29 13:44:29
把flash分两部分,一部分放BOOT,一部分放APP。再留几个字节放升级标志位。
自己写BOOT,上电先运行BOOT,检查升级标志位,如果升级标志存在说明已经升级成功就跳转到APP,如果升级标志被清,说明升级失败,就在BOOT中运行,等待升级指令,直至升级成功后再跳转到APP。

当在APP中运行时,收到升级指令后把升级标志清掉,再跳转到BOOT。

你需要做一套升级的协议,比如查询版本号、升级状态,写数据、跳转、固件CRC校验,校验结果查询等等。考虑好升级失败后怎么处理,哪些情况会导致错误(比如固件CRC校验失败,固件大小超过了你的FLash大小,某一包失败时重传还是重新从第一包开始传等等)画个自己的升级流程图慢慢实现。

另外,是外挂Flah还是就用MCU的flash都要考虑清楚,机制差不多,只是详细步骤差一点点。有问题我们可以再探讨,祝你成功。

BOOT做的尽量简洁,只负责搬固件数据。

评分

参与人数 1蝴蝶豆 +4 收起 理由
STMCU + 4

查看全部评分

废鱼 回答时间:2020-7-30 09:33:41
自己写下载过程,将下载的数据存储到指定的地方,然后进入boot刷新新的程序。如果空间足够大,可以再boot中增加通讯过程,直接更新app程序。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版