搜索
bottom↓
回复: 22

有没有人研究嵌入式的增量更新?

[复制链接]

出0入0汤圆

发表于 2022-3-12 22:57:32 | 显示全部楼层 |阅读模式
在网上搜到过些资料,比如符合的方案就是bsdiff,然后单片机这边bspatch打补丁。但我没搞懂这个需要的Ram要多大,有人说占用Ram的主要是解压算法,bspatch不怎么占Ram,有没有人看源码分析分析,算法方面我这看了头大,数学不好,,Ծ^Ծ,,

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入42汤圆

发表于 2022-3-12 23:03:37 来自手机 | 显示全部楼层
一般不是直接ota就可以了吗?

出0入0汤圆

 楼主| 发表于 2022-3-12 23:48:07 | 显示全部楼层
我是一个大白菜 发表于 2022-3-12 23:03
一般不是直接ota就可以了吗?
(引用自2楼)

升级包大了消耗流量,且文件大了传输过程出错的概率也会变大也更耗时间

出10入18汤圆

发表于 2022-3-13 00:01:28 来自手机 | 显示全部楼层
turelon 发表于 2022-3-12 23:48
升级包大了消耗流量,且文件大了传输过程出错的概率也会变大也更耗时间 ...
(引用自3楼)

升级包能有多大?几百k算大?

出0入90汤圆

发表于 2022-3-13 00:14:26 来自手机 | 显示全部楼层
qtechzdh 发表于 2022-3-13 00:01
升级包能有多大?几百k算大?
(引用自4楼)

嵌入式的搞不好要几百兆

出0入8汤圆

发表于 2022-3-13 00:16:12 | 显示全部楼层
纯猜测勿喷
1. 单片机所有历史固件存放服务器
2. 当前要升级的bin与单片机的bin(存在服务器上)做比较等到diff bin
3.单片机下载diff bin
4.根据算法恢复为完整的要升级的bin
5.单片机本地升级

出100入312汤圆

发表于 2022-3-13 07:37:11 来自手机 | 显示全部楼层
所谓差分升级,有公司在卖方案

出0入42汤圆

发表于 2022-3-13 08:36:36 来自手机 | 显示全部楼层
turelon 发表于 2022-3-12 23:48
升级包大了消耗流量,且文件大了传输过程出错的概率也会变大也更耗时间 ...
(引用自3楼)

多大算大的?一般还是KB为单位吧,如果是嵌入式linux,除非是库文件,否则运行程序主要还是KB大小。真要省流量,压缩一下,没太理解这个应用场景,可以介绍一下吗?

出0入0汤圆

发表于 2022-3-13 10:09:16 来自手机 | 显示全部楼层
单片机的没多大吧  跟拆分图片字库一样拆分一下将库和逻辑放在不同页,只升级逻辑?

出0入0汤圆

 楼主| 发表于 2022-3-13 10:52:21 | 显示全部楼层
我是一个大白菜 发表于 2022-3-13 08:36
多大算大的?一般还是KB为单位吧,如果是嵌入式linux,除非是库文件,否则运行程序主要还是KB大小。真要 ...
(引用自8楼)

我们这的物联网卡在管控,每月限制100M,我们现在的设备是一个主机带十几个从机,主机作网关与互联网通讯,主从机之间是Can通讯,所以想着把升级包变小,减少流量消耗,同时减少主从机之间Can通讯压力。

出0入0汤圆

 楼主| 发表于 2022-3-13 10:54:11 | 显示全部楼层
akey3000 发表于 2022-3-13 07:37
所谓差分升级,有公司在卖方案
(引用自7楼)

是有的,据说Ram只低到1K,这个级别大部分单片机都能用

出0入0汤圆

 楼主| 发表于 2022-3-13 10:57:14 | 显示全部楼层
lindabell 发表于 2022-3-13 00:16
纯猜测勿喷
1. 单片机所有历史固件存放服务器
2. 当前要升级的bin与单片机的bin(存在服务器上)做比 ...
(引用自6楼)

是这个原理,就是做差分包下载到本地,然后根据本地程序和还原算法得出完整升级包。

出0入0汤圆

发表于 2022-3-14 11:24:35 | 显示全部楼层
占个楼,有好方法借鉴借鉴

出0入0汤圆

发表于 2022-3-14 12:08:16 | 显示全部楼层
动态链接,或脚本

出15入178汤圆

发表于 2022-3-14 12:54:45 | 显示全部楼层
研究了几年,我的理解要点在差分包的产生,压缩技术很成熟了。

出0入0汤圆

发表于 2022-3-14 13:12:28 | 显示全部楼层
之前简单用过 移远的4G模块二次开发 OTA升级就是用差分包的方式升级的,不知道怎么实现的

出0入0汤圆

发表于 2022-3-14 14:12:03 | 显示全部楼层
主要是解压缩算法 8K ram就够了   针对嵌入式的开源压缩可以看一下

出0入0汤圆

发表于 2022-3-14 15:05:14 | 显示全部楼层
学习了,专门做OTA都能做成一个大公司,切入点很犀利,能在一个点做精了值得的佩服

出0入0汤圆

 楼主| 发表于 2022-3-14 22:18:36 | 显示全部楼层
2nd 发表于 2022-3-14 12:54
研究了几年,我的理解要点在差分包的产生,压缩技术很成熟了。
(引用自15楼)

压缩技术对嵌入式的Ram要求也高呀,尤其是只有几十K的单片机

出0入0汤圆

 楼主| 发表于 2022-3-14 22:29:56 | 显示全部楼层
gyd0317 发表于 2022-3-14 14:12
主要是解压缩算法 8K ram就够了   针对嵌入式的开源压缩可以看一下
(引用自17楼)

我现在的单片机Stm 32F407芯片,还没用到压缩算法,现在嵌入式常用的是哪种?

出0入0汤圆

 楼主| 发表于 2022-3-14 22:34:59 | 显示全部楼层
Name_006 发表于 2022-3-14 13:12
之前简单用过 移远的4G模块二次开发 OTA升级就是用差分包的方式升级的,不知道怎么实现的  ...
(引用自16楼)

我们用的中移ML302模块,你有没有用到4G模块的Ftp?曾经想用这个把文件先下到模块上再传到单片机。

出0入0汤圆

发表于 2022-3-15 11:34:50 | 显示全部楼层
turelon 发表于 2022-3-14 22:29
我现在的单片机Stm 32F407芯片,还没用到压缩算法,现在嵌入式常用的是哪种? ...
(引用自20楼)

QuickLZ、LZ77、LZ4、LZO、MiniLZO

出0入0汤圆

发表于 2022-3-15 16:11:22 | 显示全部楼层
turelon 发表于 2022-3-14 22:34
我们用的中移ML302模块,你有没有用到4G模块的Ftp?曾经想用这个把文件先下到模块上再传到单片机。 ...
(引用自21楼)

这个没用过,我们当时只是简单评估了下,没详细研究过
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-9 03:31

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

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