0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

更小更快更省流量的差分升级

西西 来源:厂商供稿 作者:广州立功科技 2020-11-20 09:31 次阅读

你的远程升级还在升级整个APP?快来试试差分升级,立功科技基于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 差分固件格式

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16840

    浏览量

    349729
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1017

    浏览量

    45658
  • 差分算法
    +关注

    关注

    0

    文章

    3

    浏览量

    3274
  • 立功科技
    +关注

    关注

    0

    文章

    26

    浏览量

    5620
收藏 人收藏

    评论

    相关推荐

    压式流量计三阀组投运步骤

    压式流量计三阀组投运步骤 1. 准备工作 在开始投运三阀组之前,确保以下准备工作已经完成: 安全检查 :检查现场是否有潜在的安全风险,如泄漏、电气问题等。 设备检查 :确保三阀组和压式流量
    的头像 发表于 10-14 09:42 237次阅读

    更快更小节能,开关电源迎来测试挑战

    电子发烧友网报道(文/黄山明)作为电子设备中的重要组成部分,开关电源主要用于将输入电源转换为电子设备所需的电压和电流。其特点在于高效率、小型化、稳定性强等,已成为当前市场的主流产品。而在储能系统中,开关电源不仅负责能量的转换和管理,而且还提供了必要的保护机制,确保系统的安全稳定运行。   正是由于在储能中的重要位置,因此给开关电源进行综合测试至关重要。可以确保其在各种条件下都能可靠、高效地运行。这不仅提
    的头像 发表于 08-19 00:04 4044次阅读

    流量计无指示该怎么处理?

      在工作现场中,流量计没有指示一般都是发生在其他设备运行正常的情况下,我们可以从苯断车间检修开车后邻二甲苯的加料流量始终无指示和硫化床气包补水流量无指示这两个案例来分析。 
    的头像 发表于 08-06 09:01 113次阅读

    请问esp32是否支持分升级

    我现在工程需要适配ota功能,但是鉴于固件体积较大,想请教下是否支持分升级?
    发表于 06-21 08:14

    esp32c3同时打开BLE和WIFI的功能,固件都1MByte了,OTA时可以用分升级吗?

    如题,esp32c3同时打开BLE和WIFI的功能,固件都1MByte了,OTA时可以用分升级吗。 还有就是怎么优化下固件大小?
    发表于 06-18 07:05

    谷景助力智能家电升级:更小体积,更大功率

    升级换代。 客户项目需求背景 某智能家电的客户,原来的电感方案使用的是8*10和10*12规格的两款工字电感。但随着产品技术的升级,客户需要使用尺寸更小、功率更大的,且能够满足饱和电流和温升电流更大的需求。 谷景解决方案 我们
    的头像 发表于 05-11 10:39 287次阅读

    ZDP1440系列小技巧—如何OTA分升级显示素材?

    ZDP1440是一款基于开源GUI引擎的图像显示专用驱动芯片,支持U盘、SD卡本地升级UI固件,同时也支持通过UART/SPI方式进行OTA升级,本文将介绍如何OTA分升级显示素材。
    的头像 发表于 05-06 14:01 771次阅读
    ZDP1440系列小技巧—如何OTA<b class='flag-5'>差</b><b class='flag-5'>分升级</b>显示素材?

    如何在速度更快、尺寸更小的应用中精确检测电机位置?

    本文介绍工业自动化领域的设计人员在设计用于电机控制的位置检测接口时面临的常见问题,即在速度更快、尺寸更小的应用中检测位置。利用从编码器捕获的信息以便精确测量电机位置对于自动化和机器设备的成功运行很重
    的头像 发表于 04-12 08:24 624次阅读
    如何在速度<b class='flag-5'>更快</b>、尺寸<b class='flag-5'>更小</b>的应用中精确检测电机位置?

    从入门到精通的孔板流量计测量原理

    压式(也称节流式)流量计是基于流体流动的节流原理,利用流体经节流装置时产生的压力而实现流量测量的。压式
    发表于 03-06 11:05 882次阅读
    从入门到精通的孔板<b class='flag-5'>流量</b>计测量原理

    分升级方案(上)—全量升级vs分升级的主要特点比较

    MCU固件升级可以通过编程器、调试器或其他设备辅助进行操作,但这种升级方式主要应用于产品研发评估及量产应用阶段。
    的头像 发表于 01-18 17:06 1370次阅读
    <b class='flag-5'>差</b><b class='flag-5'>分升级</b>方案(上)—全量<b class='flag-5'>升级</b>vs<b class='flag-5'>差</b><b class='flag-5'>分升级</b>的主要特点比较

    让“可靠”变得“更快安全”的数据传输协议:SCTP

    SCTP(Stream Control Transmission Protocol,流控传输协议)的出现,并不是万丈高楼平地起,而是站在TCP这个巨人肩膀上,让数据传输从“可靠”变得“更快安全”。
    的头像 发表于 12-28 17:25 1294次阅读
    让“可靠”变得“<b class='flag-5'>更快</b><b class='flag-5'>更</b>安全”的数据传输协议:SCTP

    气体流量计种类及原理

    气体流量计种类及原理  气体流量计是工业生产和实验室研究中常用的测量设备之一,用于测量气体在管道或通道中的流动速度。根据不同的测量原理和工作原理,气体流量计可以分为多种类型,包括
    的头像 发表于 12-19 09:55 1684次阅读

    热式流量开关原理 热式流量开关怎么调试参数

    热式流量开关原理 热导=式流量开关怎么调试参数  热式流量开关原理是基于热导法的一种流量测量原理,利用流体流经流量开关时对传感器进行加热,通
    的头像 发表于 12-15 09:31 1957次阅读

    流量计故障分析

    元件附近形成压力,且压力流量大小成正比,根据管道内压力完成流体的流量计算。将流出系数设为C,直径比(即运行工况下节流元件孔径与上游管
    的头像 发表于 11-16 09:04 450次阅读
    压<b class='flag-5'>差</b>式<b class='flag-5'>流量</b>计故障分析

    用TrenchFET IV功率MOSFET系列设计绿色、更小的电源

    电子发烧友网站提供《用TrenchFET IV功率MOSFET系列设计绿色、更小的电源.pdf》资料免费下载
    发表于 11-13 15:11 0次下载
    用TrenchFET IV功率MOSFET系列设计<b class='flag-5'>更</b>绿色、<b class='flag-5'>更小</b>的电源