单片机差分升级(FOTA)

为方便技术交流探讨,特建一个QQ群:47954837   ,欢迎加入!

参考文章:https://blog.csdn.net/duzhi2004/article/details/103560574

很久没有更新博文了,本文接上篇关于单片机差分升级的内容。

很多开发者在读上篇文章的时候,对这个差分技术比较感兴趣,也有很多人跟我一起做交流探讨,结合开发者问到的问题,我大概说一下

在单片机上实现差分升级的前置条件。

flash区块划分需求: 如下图所示,一款flash空间为256KB的芯片,flash的划分,boot一般 4K-6K, app1是应用程序的运行空间,app2应用存储空间,patch压缩包预留空间(一般为应用的1/3 - 1/2),

 当然如果你有其他的存储空间,app2 & patch可以放到相应的存储空间,不受上述规定的制约, 做差分升级对 flash的要求比普通升级要大,如果这块资源不够肯定是没办法做的。

                   flash区块划分(256KB)

                   

对内存的需求: 内存主要是跟压缩算法有关系,文章中采用的lz77解压缩,对内存要求偏高,此种算法必须要求单片机提供10KB左右的空间,

                              有些单片机的内存资源还没办法达到,针对这一块需求,我最近正在改进压缩算法,新的解压算法预计可以做到对内存的需求控制在 1KB之内,

                      这样覆盖的芯片范围可以做到很广。(压缩率和解压速度也有望得到提高)

 

关于压缩算法放在boot还是app的优缺点比较:

 

 

Boot

App

程序空间

算法大小*1

算法大小*2+

内存空间

可独占,不影响应用内存空间

应用空间需要划分预留

算法维护

不可更新(没有二级boot前提)

可更新

开发便捷

固化在boot,应用开发无需关心解压过程,只要做相应的下载既可

应用需要关心整个下载,解压合并流程,不利于核心算法的维护管理

 

 

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值