更小更快更省流量的差分升级
时间:2020-11-19 16:00来源:ZLG立功科技·致远电子
摘要:你的远程升级还在升级整个APP?快来试试差分升级,立功科技基于AMetalSDK提供了一套完整的差分升级算法,升级固件更小、下载速度更快、大大降低网络不稳定造成传输失败概率,同时更节省内存。
一、差分包原理
在讲差分升级之前,先简单介绍一下差分升级的原理和概念,差分升级是将新老固件具有差异的部分剥离出来,例如固件从V1.1.0升级到V1.1.1,两个固件相比只修改了1K的内容,如下图红色部分为不同部分,将该部分剥离出来生成差分包Diff_V1.1.0~V1.11,通过云端将差分包推送到设备端,设备端接收完成之后,先解压差分包,再通过差分恢复算法,根据差分包中的数据标志,将新老固件进行融合,变成新的固件,从而完成升级。
立功科技基于AMetal SDK软件平台,设计了一套完整的差分升级的算法。以基于华大HC32L196芯片设计差分升级为例,该芯片Flash为256K(0x000_0000~0x0003_FFFF),首先需要对Flash进行划分,主要划分为4个部分:BootLoader区、应用区、download区、参数区,BootLoader区用于引导升级,应用区为升级后的应用程序,download区为下载差分包存储区间,参数区用于存储特定参数。各区大小按照实际使用情况,进行合理划分。
首先介绍BootLoader执行的流程,如下图所示,芯片上电或复位之后,首先开始运行BootLoader的代码,之后检测按键,按键作为升级的提示,如按键按下,准备升级,进入接收固件状态,如接收到固件,对固件进行校验,校验通过后,置位跳转标志位,如校验未通过,重新进入接收固件状态。检测到跳转标志位之后,检查应用程序是否有效,有效进入应用程序运行,无效进入接收固件状态。如果没有按键按下,检查是否有升级标志,有则解析download区的新固件,通过解压缩算法和解差分算法,修改覆盖旧固件,设置跳转标志,检查应用程序是否有效,有效则运行应用程序。
四、差分包制作
如开篇所述,差分文件是将新老固件进行对比,然后将有差异的部分取出,作为升级的固件。那么如何才能达到最小的差分固件呢?首先我们需要了解用于升级的MCU的Flash的最小擦除单位是多少,是512字节、1K、2K还是4K?这个与芯片相关,理论上划分得越细,最后的生成文件也就会越小。
以HC32L196芯片为例,设置最小的分块单位为1K,将新老两份固件都按1K去划分,划分多少块按两份固件中最大的一个决定,不足的那个后面补0,例如新的固件35.3K,老固件34K,那么最终按新固件大小划分,即按1K划分,将两份固件划分为36块,划分之后,两个固件对应序号的块分别进行比较,将新固件不同于老固件的块进行标记和压缩,最后将所有不同的块压缩为一个包,即差分升级包,到此差分升级包制作完成。AMetal SDK中提供了一个专门用于制作差分包的上位机工具,借助该工具可简单完成差分文件的制作。
在讲差分升级之前,先简单介绍一下差分升级的原理和概念,差分升级是将新老固件具有差异的部分剥离出来,例如固件从V1.1.0升级到V1.1.1,两个固件相比只修改了1K的内容,如下图红色部分为不同部分,将该部分剥离出来生成差分包Diff_V1.1.0~V1.11,通过云端将差分包推送到设备端,设备端接收完成之后,先解压差分包,再通过差分恢复算法,根据差分包中的数据标志,将新老固件进行融合,变成新的固件,从而完成升级。
图 1 差分原理
这种升级方式的优点是升级固件更小、下载速度也更快,也更加节省内存空间,相对于整包升级方式,缺点是依赖特定固件,例如该差分包为V1.1.0固件升级到V1.1.1固件的差分包Diff_V1.1.0~V1.1.1,该差分包只能用于升级版本号是V1.1.0固件的设备,其他版本号固件的设备不能用它升级,流程控制上要求比较严格,整包的升级则不依赖特殊固件,随时可以升级。图 2 差分升级
二、差分升级架构立功科技基于AMetal SDK软件平台,设计了一套完整的差分升级的算法。以基于华大HC32L196芯片设计差分升级为例,该芯片Flash为256K(0x000_0000~0x0003_FFFF),首先需要对Flash进行划分,主要划分为4个部分:BootLoader区、应用区、download区、参数区,BootLoader区用于引导升级,应用区为升级后的应用程序,download区为下载差分包存储区间,参数区用于存储特定参数。各区大小按照实际使用情况,进行合理划分。
图 3 flash划分
三、差分升级流程首先介绍BootLoader执行的流程,如下图所示,芯片上电或复位之后,首先开始运行BootLoader的代码,之后检测按键,按键作为升级的提示,如按键按下,准备升级,进入接收固件状态,如接收到固件,对固件进行校验,校验通过后,置位跳转标志位,如校验未通过,重新进入接收固件状态。检测到跳转标志位之后,检查应用程序是否有效,有效进入应用程序运行,无效进入接收固件状态。如果没有按键按下,检查是否有升级标志,有则解析download区的新固件,通过解压缩算法和解差分算法,修改覆盖旧固件,设置跳转标志,检查应用程序是否有效,有效则运行应用程序。
图 4 升级流程
相信到这不少读者已经清楚升级的原理和升级的过程是怎么回事了,下面介绍一下差分固件的生成。四、差分包制作
如开篇所述,差分文件是将新老固件进行对比,然后将有差异的部分取出,作为升级的固件。那么如何才能达到最小的差分固件呢?首先我们需要了解用于升级的MCU的Flash的最小擦除单位是多少,是512字节、1K、2K还是4K?这个与芯片相关,理论上划分得越细,最后的生成文件也就会越小。
以HC32L196芯片为例,设置最小的分块单位为1K,将新老两份固件都按1K去划分,划分多少块按两份固件中最大的一个决定,不足的那个后面补0,例如新的固件35.3K,老固件34K,那么最终按新固件大小划分,即按1K划分,将两份固件划分为36块,划分之后,两个固件对应序号的块分别进行比较,将新固件不同于老固件的块进行标记和压缩,最后将所有不同的块压缩为一个包,即差分升级包,到此差分升级包制作完成。AMetal SDK中提供了一个专门用于制作差分包的上位机工具,借助该工具可简单完成差分文件的制作。
图 5 差分固件格式
免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
- 仪器使用操作视频教程时间:2023年12月31日 - 2024年01月31日[立即参与]
- 安森美汽车&能源基础设施白皮书下载时间:2023年04月03日 - 2023年11月30日[立即参与]
- 2023年安森美(onsemi)在线答题活动时间:2023年08月01日 - 2023年08月31日[查看回顾]
- 【在线答题活动】PI 智能家居热门产品,带您领略科技智慧家庭时间:2023年06月15日 - 2023年07月15日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年06月01日 - 2023年06月30日[查看回顾]
分类排行榜
- 汽车电子电源行业可靠性要求,你了解多少?
- 内置可编程模拟功能的新型 Renesas Synergy™ 低功耗 S1JA 微控制器
- Vishay 推出高集成度且符合 IrDA® 标准的红外收发器模块
- ROHM 发布全新车载升降压电源芯片组
- 艾迈斯半导体推出行业超薄的接近/颜色传感器模块,助力实现无边框智能手机设计
- 艾迈斯半导体与 Qualcomm Technologies 集中工程优势开发适用于手机 3D 应用的主动式立体视觉解决方案
- 维谛技术(Vertiv)同时亮相南北两大高端峰会,精彩亮点不容错过
- 缤特力推出全新商务系列耳机 助力解决开放式办公的噪音难题
- CISSOID 和泰科天润(GPT)达成战略合作协议,携手推动碳化硅功率器件的广泛应用
- 瑞萨电子推出 R-Car E3 SoC,为汽车大显示屏仪表盘带来高端3D 图形处理性能
编辑推荐
小型化和稳定性如何兼得?ROHM 推出超小型高输出线性 LED 驱动器 IC,为插座型 LED 驱动 IC 装上一颗强有力的 “心脏”
众所周知,LED的驱动IC担负着在输入电压不稳定的情况下,为LED提供恒定的电流,并控制恒定(可调)亮度的作用。无论是室内照明,还是车载应用,都肩负着极为重要的使命。
- 关于反激电源效率的一个疑问
时间:2022-07-12 浏览量:9676
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8433
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9049
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:6846
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5586
- PFC电感计算
时间:2022-07-06 浏览量:3807
- 多相同步BUCK
时间:2010-10-03 浏览量:37797
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43081
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:59954
- 精讲双管正激电源
时间:2016-11-25 浏览量:127236
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107361
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:99857