CN117421031A - 一种基于增量更新算法的gnss接收机固件升级方法 - Google Patents
一种基于增量更新算法的gnss接收机固件升级方法 Download PDFInfo
- Publication number
- CN117421031A CN117421031A CN202311476862.7A CN202311476862A CN117421031A CN 117421031 A CN117421031 A CN 117421031A CN 202311476862 A CN202311476862 A CN 202311476862A CN 117421031 A CN117421031 A CN 117421031A
- Authority
- CN
- China
- Prior art keywords
- increment
- packet
- firmware
- gnss
- incremental
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000006835 compression Effects 0.000 claims abstract description 55
- 238000007906 compression Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 9
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000006837 decompression Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于增量更新算法的GNSS接收机固件升级方法,属于GNSS接收机技术领域,包括如下步骤:S1:服务端将各旧版本固件针对新版本固件制作成多个增量包,将各增量包通过zip压缩算法压缩成一个增量压缩包;S2:将增量压缩包下发给需要更新的GNSS终端,GNSS终端在接收完增量压缩包后会解压为多个增量包,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,随后GNSS终端执行软件重启并进入bootloader引导程序,开始进行固件升级流程。本发明解决了现有的设备版本类型的不断增多,增量升级的方式,使得增量包管理繁琐的问题,本发明可实现GNSS接收机固件高效升级的目的。
Description
技术领域
本发明涉及GNSS接收机技术领域,具体为一种基于增量更新算法的GNSS接收机固件升级方法。
背景技术
固件升级目前主要有全量升级方式和增量升级方式,全量升级的实现原理如下:通过某种通讯方式来传输完整的新版本固件,下载完成后将固件搬运到APP运行的位置即可。增量升级的原理如下:服务端通过增量算法将新版本固件和旧版本固件之间的差异部分提取出来制作成增量包,然后在进行OTA升级时只需要传输增量包即可,终端在接收到增量包之后,再通过增量算法将差分包与本地固件进行融合生成新的固件包,最后通过bootloader引导即可实现新固件的部署。
GNSS接收机更新固件一般通过蓝牙、串口或网络,对于用户来说,使用蓝牙、串口升级更为简单直接,但蓝牙、串口的通讯速率比较低,当GNSS接收机功能较多时,固件文件一般会比较大。在这种情况下,若使用全量升级方式,则固件升级持续时间会比较长,当超过一分钟时,用户的体验感会比较差。
采用增量升级方式,用户不需要对GNSS接收机升级完整的固件文件,而是通过增量升级算法,将当前GNSS接收机固件与新发布固件进行比对处理,生成固件补丁包,固件补丁文件包含了当前GNSS接收机固件与新发布固件的差异信息,并使用相关压缩算法对补丁文件进行压缩,补丁包文件的大小与当前GNSS接收机固件与新发布固件的差异密切相关;当新发布固件只是对原固件的bug解决或增加较少功能时,补丁文件的大小可能只有几十KB甚至几KB,相比固件文件小了几十倍或上百倍,使用蓝牙、串口升级只需很短的时间即可传输完成,GNSS接收机端接收到固件补丁文件之后,通过增量升级算法,根据补丁文件包含的当前GNSS接收机固件与新发布固件的差异信息对自身固件进行修改,实现固件更新,这种方式大大缩短了升级文件传输时间。
但随着设备的更新迭代,另一个问题也随之产生;增量升级只适用于一对一之间的升级,倘若同时有V1和V2两种设备都需要升级到V3版本,那么就需要生成两个增量包,分别为V3与V1之间差异的增量包、V3与V2之间差异的增量包,因此,伴随着设备版本类型的不断增多,增量升级的方式也带来了增量包管理繁琐的问题。
发明内容
本发明的目的在于提供一种基于增量更新算法的GNSS接收机固件升级方法,可实现GNSS接收机固件高效升级的目的,解决了上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于增量更新算法的GNSS接收机固件升级方法,包括如下步骤:
S1:服务端将各旧版本固件针对新版本固件制作成多个增量包,将各增量包通过zip压缩算法压缩成一个增量压缩包;
S2:通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,GNSS终端在接收完增量压缩包后会解压为多个增量包,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,随后GNSS终端执行软件重启并进入bootloader引导程序,检测到指定flash区域有效,开始进行固件升级流程。
优选的,所述S1中,服务端将各旧版本固件针对新版本固件制作成多个增量包,执行以下操作:
读取旧文件,使用后缀排序或者哈希算法生成字符串索引;
使用该索引遍历新文件,生成差异文件和新增文件;
基于差异文件、新增文件以及必要的索引控制信息,制作成多个增量包。
优选的,所述S1中,将各增量包通过zip压缩算法压缩成一个增量压缩包,执行以下操作:
获取多个增量包;
提取出增量包内的差异文件、新增文件以及必要的索引控制信息;
基于zip压缩算法,对差异文件、新增文件以及必要的索引控制信息进行压缩,生成增量压缩包。
优选的,所述S2中,通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,执行以下操作:
获取GNSS终端的网络地址,建立服务端与GNSS终端之间的网络连接;
服务端向GNSS终端发送请求更新指令;
GNSS终端接收到服务端发送的请求更新指令后,GNSS终端进行自检,查找出需要更新的GNSS终端;
建立需要更新的GNSS终端与服务端之间的网络连接;
服务端将增量压缩包下发给需要更新的GNSS终端。
优选的,所述S2中,GNSS终端在接收完增量压缩包后会解压为多个增量包,执行以下操作:
获取增量压缩包;
基于解压还原算法,对增量压缩包进行解压缩还原,解压为多个增量包。
优选的,所述S2中,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,执行以下操作:
获取解压缩还原后的多个增量包;
需要更新的GNSS终端根据自身的固件版本号从压缩还原后的多个增量包中选定出唯一的增量包;
基于选定的唯一的增量包写入flash用于后续升级。
优选的,所述S2中,GNSS终端选定唯一的增量包,执行以下操作:
获取解压缩还原后的多个增量包;
逐一提取出多个增量包,且将提取出来的单个增量包与需要更新的GNSS终端的固件版本号进行对比;
针对提取出来的单个增量包与需要更新的GNSS终端的固件版本号相匹配的情况,则提取出来的单个增量包即为GNSS终端选定的唯一的增量包;
针对提取出来的单个增量包与需要更新的GNSS终端的固件版本号不匹配的情况,则提取出来的单个增量包即不为GNSS终端选定的唯一的增量包。
优选的,所述S2中,提取出来的单个增量包不为GNSS终端选定的唯一的增量包,执行以下操作:
基于多个增量包的排列顺序,继续提取下一个增量包;
将提取出来的下一个增量包与需要更新的GNSS终端的固件版本号进行对比;
针对提取出来的下一个增量包与需要更新的GNSS终端的固件版本号相匹配的情况,则提取出来的下一个增量包即为GNSS终端选定的唯一的增量包;
针对提取出来的下一个增量包与需要更新的GNSS终端的固件版本号不匹配的情况,则提取出来的下一个增量包即不为GNSS终端选定的唯一的增量包,则基于多个增量包的排列顺序,继续提取再下一个增量包,依次循环,直到提取出来的再下一个增量包与需要更新的GNSS终端的固件版本号相匹配。
优选的,所述S2中,GNSS终端基于自身的固件版本号选定唯一的增量包,唯一的增量包选定后,GNSS终端将增量包写入flash中。
优选的,所述S2中,GNSS终端根据增量算法将增量包与当前固件进行融合,最终产生新版本固件文件,将新版本固件文件移动到flash指定区域,并引导程序进入到新版本固件主程序,进行固件升级流程。
与现有技术相比,本发明的有益效果是:
本发明的基于增量更新算法的GNSS接收机固件升级方法,服务端将各旧版本固件针对新版本固件制作成多个增量包,将各增量包通过zip压缩算法压缩成一个增量压缩包,通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,GNSS终端在接收完增量压缩包后会解压为多个增量包,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,随后GNSS终端执行软件重启并进入bootloader引导程序,GNSS终端根据增量算法将增量包与当前固件进行融合,最终产生新版本固件文件,将新版本固件文件移动到flash指定区域,并引导程序进入到新版本固件主程序,进行固件升级流程,可实现GNSS接收机固件高效升级的目的。
附图说明
图1为本发明的GNSS接收机固件升级方法的结构原理图;
图2为本发明的GNSS接收机固件升级方法的算法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有的设备版本类型的不断增多,增量升级的方式,使得增量包管理繁琐的问题,请参阅图1-图2,本实施例提供以下技术方案:
一种基于增量更新算法的GNSS接收机固件升级方法,包括如下步骤:
S1:服务端将各旧版本固件针对新版本固件制作成多个增量包,将各增量包通过zip压缩算法压缩成一个增量压缩包;
S2:通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,GNSS终端在接收完增量压缩包后会解压为多个增量包,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,随后GNSS终端执行软件重启并进入bootloader引导程序,检测到指定flash区域有效,开始进行固件升级流程。
其中,增量包包含了当前GNSS接收机固件与新发布固件的差异信息,并使用相关压缩算法对补丁文件进行压缩,补丁包文件的大小与当前GNSS接收机固件与新发布固件的差异密切相关,当新发布固件只是对原固件的bug解决或增加较少功能时,补丁文件的大小可能只有几十KB甚至几KB,相比固件文件小了几十倍或上百倍,使用蓝牙、串口升级只需很短的时间即可传输完成,GNSS接收机端接收到固件补丁文件之后,通过增量升级算法,根据补丁文件包含的当前GNSS接收机固件与新发布固件的差异信息对自身固件进行修改,实现固件更新,当旧设备存在多个版本时,可通过增量包压缩形成新的增量压缩包,GNSS终端接收完文件后会自行解压并根据自身版本号选择出解压出来的对应增量包,从而完成更新固件。
需要说明的是,服务端将各旧版本固件针对新版本固件制作成多个增量包,执行以下操作:
读取旧文件,使用后缀排序或者哈希算法生成字符串索引;
使用该索引遍历新文件,生成差异文件和新增文件;
基于差异文件、新增文件以及必要的索引控制信息,制作成多个增量包。
需要说明的是,将各增量包通过zip压缩算法压缩成一个增量压缩包,执行以下操作:
获取多个增量包;
提取出增量包内的差异文件、新增文件以及必要的索引控制信息;
基于zip压缩算法,对差异文件、新增文件以及必要的索引控制信息进行压缩,生成增量压缩包。
具体的,在传统更新中,包含了复制和插入两种操做,复制指的是找到old文件中所匹配的部分,将其复制到新文件中;插入指的是将old文件中所没有的数据插入到新文件中;这种方式在二进制文件更新中并不适用,由于对源代码进行少许的修改就会致使二进制文件产生较大的差别,从而复制和插入指令增多,生成的更新包远大于理想状态。
在一个新的二进制文件,会包含以下几部分:不受更新代码影响的部分、更新代码后直接影响的部分及更新代码后间接影响的部分;
不受更新代码影响的部分:这一区域变化很是稀疏,即便有变化也是部分指针或寄存器的地址进行了一两个字节的变更,这就致使字节差别几平为0;
更新代码后间接影响的部分:在更新了源代码后,有些代码和数据的地址会发生偏移,并且偏移值相同,也就是说,在新旧两个文件中,源代码块相同的部分,字节差别为0或一个固定值,这个固定值就是地址变化的偏移量,因为这特性,致使产生的数据将会是高度可压缩的,在本算法中会找到这两部分,求出字节差别,做为差异字符串并进行压缩保存。
将旧文件二进制使用后缀排序或哈希算法形成一个字符串索引,首先是字符串索引的生成,该部分为差异更新算法的瓶颈部分,本算法里采用基于二分思想的Fast SuffixSorting(更快的后缀排序)算法来进行索引的生成,后缀数组即为一个一维数组,该算法的时间复杂度为0(nlogn),空间复杂度为O(n),其中n为旧文件的二进制字符的长度。
使用该字符串索引对比新文件,生成差异文件(difference file)和新增文件(extra file),得到索引后,使用该索引依次查找新旧文件中完全匹配的最长二进制段,但并不会像传统更新算法一样直接打包,而是从二进制段中进行前后拓展,来生成范围更大的“近似匹配”,近似的要求是向前拓展的每个后缀及向后拓展的每个前缀至少有50%字节与旧字符串可以匹配(通常以8个不匹配字节作为阈值)。
其中,增量包的制作会通过增量算法进行实现,固件文件之间的差异复杂,源文件中的微小更改可能会在整个可执行文件中造成重大更改,增量算法的提出针对可执行文件更新前后变动的两个重要规律:1)在一个可执行文件中,不受修改直接影响的那一部分,差异通常很小,修改后的地址可能仅改变其最低有效的一个或两个字节;2)更新后的代码和数据会有较大的位置变动,但这种变动大多为整块的移动,即某一块位置中代码内的指针地址变动均会有相同的位移值。因此相同源代码对应的两个代码块中,大部分内容字节差为0,而少部分需要更新的地址位移数据又存在大量相同的位移值。这样的字节差异字符串就具有高度可压缩特性。
基于以上特性,通过增量算法即可生成高度压缩的增量包,其具体步骤如下:(1)读取旧文件,使用后缀排序或者哈希算法生成字符串索引;(2)使用该索引遍历新文件,生成差异文件和新增文件(3)将差异文件和新增文件以及必要的索引控制信息进行压缩,生成增量包,而对于增量包的还原只需根据上述的步骤反向设计算法即可,最终将算法部署到固件代码中,即可实现终端对增量包的还原。
增量包的压缩是为了兼容更多版本固件的升级需求,将新版本固件与各旧版本固件生成多个增量包,然后通过压缩算法将各版本对应的增量包压缩为一个增量压缩包,终端在接收到增量压缩包后再根据对应的压缩算法进行解压缩即可;压缩原理如下:把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0的写法60,来减少该文件的空间。压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的“词典”文件,并用一个代码表示,比如在文件里有几处有一个相同的词“00000000”用一个代码表示并写入“词典”文件,这样就可以达到缩小文件的目的。
需要说明的是,通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,执行以下操作:
获取GNSS终端的网络地址,建立服务端与GNSS终端之间的网络连接;
服务端向GNSS终端发送请求更新指令;
GNSS终端接收到服务端发送的请求更新指令后,GNSS终端进行自检,查找出需要更新的GNSS终端;
建立需要更新的GNSS终端与服务端之间的网络连接;
服务端将增量压缩包下发给需要更新的GNSS终端。
需要说明的是,GNSS终端在接收完增量压缩包后会解压为多个增量包,执行以下操作:
获取增量压缩包;
基于解压还原算法,对增量压缩包进行解压缩还原,解压为多个增量包。
需要说明的是,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,执行以下操作:
获取解压缩还原后的多个增量包;
需要更新的GNSS终端根据自身的固件版本号从压缩还原后的多个增量包中选定出唯一的增量包;
基于选定的唯一的增量包写入flash用于后续升级。
需要说明的是,GNSS终端选定唯一的增量包,执行以下操作:
获取解压缩还原后的多个增量包;
逐一提取出多个增量包,且将提取出来的单个增量包与需要更新的GNSS终端的固件版本号进行对比;
针对提取出来的单个增量包与需要更新的GNSS终端的固件版本号相匹配的情况,则提取出来的单个增量包即为GNSS终端选定的唯一的增量包;
针对提取出来的单个增量包与需要更新的GNSS终端的固件版本号不匹配的情况,则提取出来的单个增量包即不为GNSS终端选定的唯一的增量包。
需要说明的是,提取出来的单个增量包不为GNSS终端选定的唯一的增量包,执行以下操作:
基于多个增量包的排列顺序,继续提取下一个增量包;
将提取出来的下一个增量包与需要更新的GNSS终端的固件版本号进行对比;
针对提取出来的下一个增量包与需要更新的GNSS终端的固件版本号相匹配的情况,则提取出来的下一个增量包即为GNSS终端选定的唯一的增量包;
针对提取出来的下一个增量包与需要更新的GNSS终端的固件版本号不匹配的情况,则提取出来的下一个增量包即不为GNSS终端选定的唯一的增量包,则基于多个增量包的排列顺序,继续提取再下一个增量包,依次循环,直到提取出来的再下一个增量包与需要更新的GNSS终端的固件版本号相匹配。
需要说明的是,GNSS终端基于自身的固件版本号选定唯一的增量包,唯一的增量包选定后,GNSS终端将增量包写入flash中。
需要说明的是,GNSS终端根据增量算法将增量包与当前固件进行融合,最终产生新版本固件文件,将新版本固件文件移动到flash指定区域,并引导程序进入到新版本固件主程序,进行固件升级流程。
综上,本发明的基于增量更新算法的GNSS接收机固件升级方法,服务端将各旧版本固件针对新版本固件制作成多个增量包,将各增量包通过zip压缩算法压缩成一个增量压缩包,通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,GNSS终端在接收完增量压缩包后会解压为多个增量包,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,随后GNSS终端执行软件重启并进入bootloader引导程序,GNSS终端根据增量算法将增量包与当前固件进行融合,最终产生新版本固件文件,将新版本固件文件移动到flash指定区域,并引导程序进入到新版本固件主程序,进行固件升级流程,可实现GNSS接收机固件高效升级的目的。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,包括如下步骤:
S1:服务端将各旧版本固件针对新版本固件制作成多个增量包,将各增量包通过zip压缩算法压缩成一个增量压缩包;
S2:通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,GNSS终端在接收完增量压缩包后会解压为多个增量包,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,随后GNSS终端执行软件重启并进入bootloader引导程序,检测到指定flash区域有效,开始进行固件升级流程。
2.根据权利要求1所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S1中,服务端将各旧版本固件针对新版本固件制作成多个增量包,执行以下操作:
读取旧文件,使用后缀排序或者哈希算法生成字符串索引;
使用该索引遍历新文件,生成差异文件和新增文件;
基于差异文件、新增文件以及必要的索引控制信息,制作成多个增量包。
3.根据权利要求2所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S1中,将各增量包通过zip压缩算法压缩成一个增量压缩包,执行以下操作:
获取多个增量包;
提取出增量包内的差异文件、新增文件以及必要的索引控制信息;
基于zip压缩算法,对差异文件、新增文件以及必要的索引控制信息进行压缩,生成增量压缩包。
4.根据权利要求3所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,通过蓝牙、网络的传输途径将增量压缩包下发给需要更新的GNSS终端,执行以下操作:
获取GNSS终端的网络地址,建立服务端与GNSS终端之间的网络连接;
服务端向GNSS终端发送请求更新指令;
GNSS终端接收到服务端发送的请求更新指令后,GNSS终端进行自检,查找出需要更新的GNSS终端;
建立需要更新的GNSS终端与服务端之间的网络连接;
服务端将增量压缩包下发给需要更新的GNSS终端。
5.根据权利要求4所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,GNSS终端在接收完增量压缩包后会解压为多个增量包,执行以下操作:
获取增量压缩包;
基于解压还原算法,对增量压缩包进行解压缩还原,解压为多个增量包。
6.根据权利要求5所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,根据自身的固件版本号选定唯一的增量包写入flash用于后续升级,执行以下操作:
获取解压缩还原后的多个增量包;
需要更新的GNSS终端根据自身的固件版本号从压缩还原后的多个增量包中选定出唯一的增量包;
基于选定的唯一的增量包写入flash用于后续升级。
7.根据权利要求6所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,GNSS终端选定唯一的增量包,执行以下操作:
获取解压缩还原后的多个增量包;
逐一提取出多个增量包,且将提取出来的单个增量包与需要更新的GNSS终端的固件版本号进行对比;
针对提取出来的单个增量包与需要更新的GNSS终端的固件版本号相匹配的情况,则提取出来的单个增量包即为GNSS终端选定的唯一的增量包;
针对提取出来的单个增量包与需要更新的GNSS终端的固件版本号不匹配的情况,则提取出来的单个增量包即不为GNSS终端选定的唯一的增量包。
8.根据权利要求7所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,提取出来的单个增量包不为GNSS终端选定的唯一的增量包,执行以下操作:
基于多个增量包的排列顺序,继续提取下一个增量包;
将提取出来的下一个增量包与需要更新的GNSS终端的固件版本号进行对比;
针对提取出来的下一个增量包与需要更新的GNSS终端的固件版本号相匹配的情况,则提取出来的下一个增量包即为GNSS终端选定的唯一的增量包;
针对提取出来的下一个增量包与需要更新的GNSS终端的固件版本号不匹配的情况,则提取出来的下一个增量包即不为GNSS终端选定的唯一的增量包,则基于多个增量包的排列顺序,继续提取再下一个增量包,依次循环,直到提取出来的再下一个增量包与需要更新的GNSS终端的固件版本号相匹配。
9.根据权利要求8所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,GNSS终端基于自身的固件版本号选定唯一的增量包,唯一的增量包选定后,GNSS终端将增量包写入flash中。
10.根据权利要求9所述的一种基于增量更新算法的GNSS接收机固件升级方法,其特征在于,所述S2中,GNSS终端根据增量算法将增量包与当前固件进行融合,最终产生新版本固件文件,将新版本固件文件移动到flash指定区域,并引导程序进入到新版本固件主程序,进行固件升级流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311476862.7A CN117421031A (zh) | 2023-11-08 | 2023-11-08 | 一种基于增量更新算法的gnss接收机固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311476862.7A CN117421031A (zh) | 2023-11-08 | 2023-11-08 | 一种基于增量更新算法的gnss接收机固件升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117421031A true CN117421031A (zh) | 2024-01-19 |
Family
ID=89522670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311476862.7A Pending CN117421031A (zh) | 2023-11-08 | 2023-11-08 | 一种基于增量更新算法的gnss接收机固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117421031A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080019454A (ko) * | 2006-08-28 | 2008-03-04 | 웹싱크 주식회사 | 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과델타파일 및 이를 이용한 펌웨어 업데이트 방법 |
CN110187907A (zh) * | 2019-05-23 | 2019-08-30 | 广州极飞科技有限公司 | 飞行器的固件升级方法、装置、系统和存储介质 |
CN111212121A (zh) * | 2019-12-24 | 2020-05-29 | 浙江大学 | 一种用于物联网设备的空中固件升级方法及系统 |
CN115712447A (zh) * | 2022-11-15 | 2023-02-24 | 成都长城开发科技股份有限公司 | 一种智能电表实现增量式升级的方法及系统 |
-
2023
- 2023-11-08 CN CN202311476862.7A patent/CN117421031A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080019454A (ko) * | 2006-08-28 | 2008-03-04 | 웹싱크 주식회사 | 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과델타파일 및 이를 이용한 펌웨어 업데이트 방법 |
CN110187907A (zh) * | 2019-05-23 | 2019-08-30 | 广州极飞科技有限公司 | 飞行器的固件升级方法、装置、系统和存储介质 |
CN111212121A (zh) * | 2019-12-24 | 2020-05-29 | 浙江大学 | 一种用于物联网设备的空中固件升级方法及系统 |
CN115712447A (zh) * | 2022-11-15 | 2023-02-24 | 成都长城开发科技股份有限公司 | 一种智能电表实现增量式升级的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU763524B2 (en) | Data file synchronisation | |
JP2771324B2 (ja) | データ圧縮 | |
JP3571079B2 (ja) | データ圧縮方法及びシステム | |
CN102170455B (zh) | 用于在本地装置和远程装置间更新对象的方法和系统 | |
US5841376A (en) | Data compression and decompression scheme using a search tree in which each entry is stored with an infinite-length character string | |
US8776022B2 (en) | Delta compression using multiple pointers | |
EP1652069B1 (en) | Method and system for updating versions of content stored in a storage device | |
CN104391728A (zh) | 软件升级差量包获取方法和相应的升级方法以及装置 | |
KR20060069361A (ko) | 저장기기에 저장된 콘텐츠의 버전을 갱신하는 방법 및시스템 | |
KR20050065642A (ko) | 데이터 갱신 시스템, 데이터 갱신 시스템의 차분 데이터생성장치 및 프로그램, 및 갱신 후 파일 복원장치 및프로그램 | |
WO2015139381A1 (zh) | 一种终端软件升级方法及装置 | |
US20050281469A1 (en) | Efficient method and system for reducing update requirements for a compressed binary image | |
JP5873925B2 (ja) | 圧縮一致列挙 | |
CN104811209A (zh) | 一种抗最长匹配检测的压缩文件数据嵌入方法及装置 | |
CN115189696A (zh) | 一种基于Huffman解码表的硬件压缩解压方法 | |
CN112579140A (zh) | 一种软件升级方法及装置 | |
US8413132B2 (en) | Techniques for resolving read-after-write (RAW) conflicts using backup area | |
CN117421031A (zh) | 一种基于增量更新算法的gnss接收机固件升级方法 | |
CN108829872B (zh) | 无损压缩文件的快速处理方法、设备、系统及存储介质 | |
CN115309409A (zh) | 固件更新的压缩 | |
US20170048303A1 (en) | On the fly statistical delta differencing engine | |
CN111970161B (zh) | 一种基于地址预测的物联网应用差分升级方法 | |
US10931301B2 (en) | Decompression engine for executable microcontroller code | |
JP2009277062A (ja) | データ書き換えシステム及び新版データ作成装置及び差分データ作成装置及び新版データ作成プログラム及び差分データ作成プログラム | |
CN114924761B (zh) | 一种物联网设备升级方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |