搜索
bottom↓
回复: 16

MCU差分升级请教

[复制链接]

出0入0汤圆

发表于 2019-2-26 09:10:29 | 显示全部楼层 |阅读模式
有人做过MCU的差分升级吗?有对应的开源库么?这个理论上来说,是不是需要预先保留等同于程序大小的ROM空间,用于重新合成新的代码,需要的ram的资源又是多少呢,请知道的指导一下,谢谢!

出0入0汤圆

发表于 2019-2-26 09:13:32 | 显示全部楼层
差分和升级都听说过,差分升级是什么鬼?只要保留升级的最小的代码就可以

出0入442汤圆

发表于 2019-2-26 09:21:01 来自手机 | 显示全部楼层
dzymushi 发表于 2019-2-26 09:13
差分和升级都听说过,差分升级是什么鬼?只要保留升级的最小的代码就可以 ...

他说的可能是diff。害人的垃圾翻译

出0入0汤圆

 楼主| 发表于 2019-2-26 09:29:51 | 显示全部楼层
MCU的整体OTA升级,我是知道的。现在是想知道,在MCU端,能不能像LINUX系统这样,使用差分包的形式,将两个MCU版本之间不同的信息发到MCU,然后MCU根据不同信息组合成一个新的版本,升级自身为新版本!

出0入0汤圆

发表于 2019-2-26 09:30:19 | 显示全部楼层
增量升级,使用分布式加载时,比较容易实现。

出0入0汤圆

发表于 2019-2-26 09:46:56 | 显示全部楼层
好高端啊,这个估计要研究生成bin文件套路才能做差分比较吧,本来就几十几百k的数据,有这个算法等你算好,早就升级完了吧。。。

出0入0汤圆

 楼主| 发表于 2019-2-26 09:47:29 | 显示全部楼层
styleno1 发表于 2019-2-26 09:30
增量升级,使用分布式加载时,比较容易实现。

不大懂你说的增量升级是什么概念。对于MCU 的OS而言,不是修改任何一个功能点,都牵扯到所有地址相关的程序吗?所以,我不明白的是,这个差分包到MCU内部是怎么合成一个新的程序的,有这样实现的项目了吗?

出0入0汤圆

发表于 2019-2-26 10:09:04 | 显示全部楼层
很难没改一行代码,整个bin/hex都会大改的,除非你把函数单独弄出来,然后做成函数跳转表,后通过patch更新函数

出0入0汤圆

发表于 2019-2-26 10:28:16 | 显示全部楼层
我们是soc端进行差分升级,单片机评估下来没有必要啊,本来就几百k的东西,一套升级流流程下来3分钟不到。。。

出0入0汤圆

 楼主| 发表于 2019-2-26 10:34:05 | 显示全部楼层
lyz3432 发表于 2019-2-26 10:28
我们是soc端进行差分升级,单片机评估下来没有必要啊,本来就几百k的东西,一套升级流流程下来3分钟不到。 ...

你是在SOC端重新将差分包组合成新的包更新程序吧?这个我可以理解,我只是想知道,有项目在MCU端差分复原升级的么?而且,在MCU端资源足够么?

出0入0汤圆

发表于 2019-2-26 10:39:38 | 显示全部楼层
sinc_mark 发表于 2019-2-26 10:34
你是在SOC端重新将差分包组合成新的包更新程序吧?这个我可以理解,我只是想知道,有项目在MCU端差分复原 ...

按照mcu flash block为基本单位比较 有不一样的整块擦除在写

出0入0汤圆

发表于 2019-2-26 10:44:25 | 显示全部楼层
lyz3432 发表于 2019-2-26 10:39
按照mcu flash block为基本单位比较 有不一样的整块擦除在写

我们的产品一般都是soc+mcu这种搭配,mcu进入bootloader后从第一块flash开始读,在与soc(or代码服务器)中的mcu bin 按块对比决定是否擦写,差分升级是这么对比的。
后来发现太慢了,所幸就直接把app擦了,直接升级app了。

出0入0汤圆

发表于 2019-2-26 11:25:30 | 显示全部楼层
单片机的ROM是按块擦写的,就是一个块里面改了一个字节也要整个擦除才能改

出0入0汤圆

发表于 2019-2-26 15:41:36 | 显示全部楼层
以前在一个群里好像听说,有人在f4上做好了差分升级相关方案

出0入0汤圆

 楼主| 发表于 2019-2-27 09:25:17 | 显示全部楼层
有确切这样做的产品吗?

出0入0汤圆

发表于 2019-2-27 09:58:00 | 显示全部楼层
单片机很少见到。。。。

出0入0汤圆

发表于 2019-2-27 09:59:34 | 显示全部楼层
有人问我MCU上搞差分升级,我都说他胡JB扯。浪费时间。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 04:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表