较小,更快,节省流量的差异升级

摘要:您的远程升级仍在升级整个APP吗?快来尝试差异升级。

Ligong Technology基于AMetal SDK提供了一套完整的差异升级算法。

升级固件较小,下载速度较快,大大减少了网络不稳定。

传输失败的可能性,同时节省更多的内存。

1.差异包的原理在谈论差异升级之前,让我们简要介绍差异升级的原理和概念。

差异升级是去除新旧固件的不同部分。

例如,固件从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差异升级II。

差异升级架构Ligong Technology基于AMetal SDK软件平台设计了一套完整的差异升级算法。

以基于华大HC32L196芯片设计的差异升级为例。

芯片Flash为256K(0x000_0000〜0x0003_FFFF)。

首先,Flash需要分为4部分:BootLoader区域,应用程序区域,下载区域,参数区域,BootLoader区域用于指导升级,应用程序区域是升级后的应用程序,下载区域是存储区。

下载的差分软件包,参数区域用于存储特定参数。

每个区域的大小应根据实际使用情况合理划分。

图3闪存划分III。

差异升级过程首先,介绍由BootLoader执行的过程。

如下图所示,芯片上电或复位后,BootLoader的代码首先开始运行,然后检测到按钮。

该按钮用作升级提示,例如按该按钮。

准备升级并进入接收固件状态。

如果收到固件,则验证固件。

验证通过后,将设置跳转标志位。

如果验证失败,则重新输入接收固件状态。

检测到跳转标志位后,检查应用程序是否有效,有效进入应用程序操作,并在无效时进入接收固件状态。

如果未按下任何按钮,请检查是否有升级标志,如果是,请分析下载区域中的新固件,通过解压缩算法和差分算法修改并覆盖旧固件,设置跳转标志,检查是否存在升级标志。

应用程序有效,然后运行该应用程序。

图4升级过程我相信许多读者已经了解了升级原理和升级过程。

下面描述差分固件的生成。

4.差异软件包的生产如开头章节所述,差异文件用于比较新旧固件,然后取出不同部分作为升级后的固件。

那么,如何才能获得最小的差分固件呢?首先,我们需要知道要升级的MCU闪存的最小擦除单位是多少。

它是512字节,1K,2K或4K吗?这与芯片有关,理论上的划分越精细,最终生成的文件就会越小。

以HC32L196芯片为例,将最小的块单位设置为1K,并将新旧固件划分为1K。

划分的块数由两个固件中最大的一个确定。

不足的一个用0填充,例如新的1。

如果固件为35.3K,旧固件为34K,则最后根据新固件的大小进行划分,即按1K进行划分,并将这两个固件划分为36个块。

除法后

联系方式

KAMAYA(日本釜屋电机株式会社)成立于1957年10月15日,总部在日本的北海道,是一家国际知名的电子元件生产商,同其他日系企业一样,KAMAYA特别注重品质和客户的服务,在全世界范围内都设有工厂和分部。华科(华新科技股份有限公司)收购但独立运营。

查看详情

在线咨询