turelon 发表于 2022-3-12 22:57:32

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

在网上搜到过些资料,比如符合的方案就是bsdiff,然后单片机这边bspatch打补丁。但我没搞懂这个需要的Ram要多大,有人说占用Ram的主要是解压算法,bspatch不怎么占Ram,有没有人看源码分析分析,算法方面我这看了头大,数学不好,,Ծ^Ծ,,

我是一个大白菜 发表于 2022-3-12 23:03:37

一般不是直接ota就可以了吗?

turelon 发表于 2022-3-12 23:48:07

我是一个大白菜 发表于 2022-3-12 23:03
一般不是直接ota就可以了吗?
(引用自2楼)

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

qtechzdh 发表于 2022-3-13 00:01:28

turelon 发表于 2022-3-12 23:48
升级包大了消耗流量,且文件大了传输过程出错的概率也会变大也更耗时间 ...
(引用自3楼)

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

aammoo 发表于 2022-3-13 00:14:26

qtechzdh 发表于 2022-3-13 00:01
升级包能有多大?几百k算大?
(引用自4楼)

嵌入式的搞不好要几百兆

lindabell 发表于 2022-3-13 00:16:12

纯猜测勿喷{:lol:}
1. 单片机所有历史固件存放服务器
2. 当前要升级的bin与单片机的bin(存在服务器上)做比较等到diff bin
3.单片机下载diff bin
4.根据算法恢复为完整的要升级的bin
5.单片机本地升级

akey3000 发表于 2022-3-13 07:37:11

所谓差分升级,有公司在卖方案

我是一个大白菜 发表于 2022-3-13 08:36:36

turelon 发表于 2022-3-12 23:48
升级包大了消耗流量,且文件大了传输过程出错的概率也会变大也更耗时间 ...
(引用自3楼)

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

huangqi412 发表于 2022-3-13 10:09:16

单片机的没多大吧跟拆分图片字库一样拆分一下将库和逻辑放在不同页,只升级逻辑?

turelon 发表于 2022-3-13 10:52:21

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

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

turelon 发表于 2022-3-13 10:54:11

akey3000 发表于 2022-3-13 07:37
所谓差分升级,有公司在卖方案
(引用自7楼)

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

turelon 发表于 2022-3-13 10:57:14

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

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

Alex_HBL 发表于 2022-3-14 11:24:35

占个楼,有好方法借鉴借鉴{:biggrin:}

dog 发表于 2022-3-14 12:08:16

动态链接,或脚本

2nd 发表于 2022-3-14 12:54:45

研究了几年,我的理解要点在差分包的产生,压缩技术很成熟了。

Name_006 发表于 2022-3-14 13:12:28

之前简单用过 移远的4G模块二次开发 OTA升级就是用差分包的方式升级的,不知道怎么实现的

gyd0317 发表于 2022-3-14 14:12:03

主要是解压缩算法 8K ram就够了   针对嵌入式的开源压缩可以看一下

xuxi2009 发表于 2022-3-14 15:05:14

学习了,专门做OTA都能做成一个大公司,切入点很犀利,能在一个点做精了值得的佩服

turelon 发表于 2022-3-14 22:18:36

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

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

turelon 发表于 2022-3-14 22:29:56

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

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

turelon 发表于 2022-3-14 22:34:59

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

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

gyd0317 发表于 2022-3-15 11:34:50

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

QuickLZ、LZ77、LZ4、LZO、MiniLZO

Name_006 发表于 2022-3-15 16:11:22

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

这个没用过,我们当时只是简单评估了下,没详细研究过
页: [1]
查看完整版本: 有没有人研究嵌入式的增量更新?