差分FOTA
优点:占用空间小,非常适合用于lora,nbiot等慢速低数据量的升级用,相比全量升级的传输大小空间基本都有量级的节省。
缺点:生产差分文件时需要基于上一版本,前后版本差异太大有的差分fota算法并不能很好的差分。
难点: mcu一般flash空间和ram空间都很小,开源的大部分早期基本都是对于pc等高ram用,基本没有mcu差分ota的参考实现或商用实现。
差分fota一般使用差分算法计算出差分部分后还会对差分部分进行压缩进一步节省空间,升级端需要先对差分文件进行解压缩后再利用差分算法去还原回去。
差分ota可用方案统计:
1、bsdiff(压缩方案可选)
可参看移植项目,tencenttinyos,开源可参看,不过实际试过还原时有时会不一定可以,曾提交过issue,不过没人理。
商用在用的好像是专做ota差分升级的艾拉比,后面可能这家也有基于其他算法进行。
2、JojoDiff
可用参考项目,(https://jojodiff.sourceforge.net/
https://github.com/janjongboom/janpatch
3、Hdiffpatch
国内自己写的开源项目,有不少商用项目在用,早期华为liteos的差分升级也是使用该方案,实际在mcu上验证测试过差分还原没问题
4、detools
基于hdiffpatch和bsdiff基础上修改而来
GitHub - eerimoq/detools: Binary delta encoding tools.
Thesis projects / Delta updates for embedded systems · GitLab
这四种基本上都可以满足,每种都有可以提供建议的压缩方式。
标签:ota,FOTA,差分,升级,算法,MCU,mcu From: https://www.cnblogs.com/iot-eybstar/p/18022459