CN111522571B - 设备升级方法、装置、终端设备及存储介质 - Google Patents
设备升级方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN111522571B CN111522571B CN202010168955.3A CN202010168955A CN111522571B CN 111522571 B CN111522571 B CN 111522571B CN 202010168955 A CN202010168955 A CN 202010168955A CN 111522571 B CN111522571 B CN 111522571B
- Authority
- CN
- China
- Prior art keywords
- partition
- target
- upgrade
- equipment
- check code
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000005192 partition Methods 0.000 claims abstract description 280
- 238000004590 computer program Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 21
- 230000002159 abnormal effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 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/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于信息技术领域,提供了一种设备升级方法、装置、终端设备及存储介质,所述方法包括:当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码;根据所述分区数据,分别计算每个目标分区的第二校验码;若任一目标分区的第二校验码与对应的第一校验码不相同,则建立所述第一设备与第二设备之间的网络连接;基于所述网络连接,接收所述第二设备针对所述每个目标分区发送的升级包;采用所述升级包,对所述第一设备的每个目标分区进行升级,使得第一设备在升级失败后还可再次自动进行远程升级,降低远程设备升级的难度。
Description
技术领域
本申请属于信息技术领域,尤其涉及一种设备升级方法、装置、终端设备及存储介质。
背景技术
目前,对于需要进行远程升级的设备,在远程升级时都需要把各个分区的程序烧写到flash(flash作为一种存储介质,常用于存贮重要的数据)上,对flash进行一次擦写。若设备在远程升级时,设备异常断电,会使得flash内的程序丢失,从而导致设备内部需要升级的程序不能正常运行,无法再次进行远程升级。设备后续需要升级时,需要工作人员实地通过串口连接设备进行升级,对于放置在远程的设备来说,增加了设备升级的难度。
发明内容
本申请实施例提供了一种设备升级方法、装置、终端设备及存储介质,可以解决远程设备升级时,设备异常断电,从而导致设备无法再次进行远程升级的问题。
第一方面,本申请实施例提供了一种设备升级方法,包括:
当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码;
根据所述分区数据,分别计算每个目标分区的第二校验码;
若任一目标分区的第二校验码与对应的第一校验码不相同,则建立所述第一设备与第二设备之间的网络连接;
基于所述网络连接,接收所述第二设备针对所述每个目标分区发送的升级包;
采用所述升级包,对所述第一设备的每个目标分区进行升级。
在一实施例中,在所述当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码之前,还包括:
获取所述第一设备在上一次升级过程中由所述第二设备传输的每个目标分区的分区数据和所述分区数据的第一校验码。
在一实施例中,所述建立所述第一设备与第二设备之间的网络连接,包括:
获取所述第一设备的第一分区中的第一网络参数;
根据所述第一网络参数,建立所述第一状态下的第一设备与所述第二设备之间的网络连接。
在一实施例中,所述第一分区中的第一网络参数通过如下步骤进行配置:
在所述第一设备处于第二状态时,获取所述第二状态下的第二网络参数;
若所述第二网络参数与所述第一分区中已存储的第一网络参数不相同,则采用所述第二网络参数替换所述已存储的第一网络参数;
若所述第二网络参数与所述第一分区中已存储的第一网络参数相同,则保留所述已存储的第一网络参数。
在一实施例中,所述升级包包括所述每个目标分区的升级文件和第三校验码;
所述采用所述升级包,对所述第一设备的每个目标分区进行升级,包括:
计算所述每个目标分区的升级文件的第四校验码;
若所述每个目标分区的升级文件的第四校验码与对应的第三校验码均相同,则分别采用所述每个目标分区的升级文件对所述目标分区进行升级。
在一实施例中,所述分别采用所述每个目标分区的升级文件对所述目标分区进行升级,包括:
解析所述每个目标分区的升级文件,获得每个升级文件对应的目标存储路径;
分别采用所述每个升级文件替换对应的目标存储路径中已存储的文件。
在一实施例中,在所述根据所述分区数据,分别计算每个目标分区的第二校验码之后,还包括:
若所述每个目标分区的第二校验码与对应的第一校验码均相同,则控制所述第一设备正常启动,进入第二状态。
第二方面,本申请实施例提供了一种设备升级装置,包括:
读取模块,用于当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码;
计算模块,用于根据所述分区数据,分别计算每个目标分区的第二校验码;
建立模块,用于若任一目标分区的第二校验码与对应的第一校验码不相同,则建立所述第一设备与第二设备之间的网络连接;
第一接收模块,用于基于所述网络连接,接收所述第二设备针对所述每个目标分区发送的升级包;
升级模块,用于采用所述升级包,对所述第一设备的每个目标分区进行升级。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的设备升级方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的设备升级方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的设备升级方法。
本申请实施例与现有技术相比存在的有益效果是:通过设定第一设备启动后进入第一状态,读取目标分区的分区数据和第一校验码,而后再次计算目标分区中分区数据的校验码得到第二校验码,在判定任一目标分区的第二校验码与对应的第一校验码不相同时,则认为第一设备在之前进行远程升级时发生了异常断电或升级包传输过程中数据丢失等情况,造成了目标分区的分区数据缺失。进而使第一设备建立与第二设备的网络连接,并重新接收第二设备发送的升级包,根据升级包升级第一设备。即便第一设备在远程升级失败,第一设备在进入第一状态后也可以再次自动进入升级状态,降低远程设备升级的难度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的设备升级方法的第一种实现流程示意图;
图2是本申请实施例提供的设备升级方法的第二种实现流程示意图;
图3是本申请实施例提供的设备升级方法的第三种实现流程示意图;
图4是本申请实施例提供的设备升级方法的第四种实现流程示意图;
图5是本申请实施例提供的设备升级装置的一种结构示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请实施例提供的设备升级方法可以应用于平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
图1示出了本申请实施例提供的设备升级方法的实现流程图,详述如下:
S101、当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码。
在应用中,第一设备为嵌入式设备,具体可以为嵌入式摄像机、嵌入式车载信息设备、嵌入式航天航空设备,对此不作限定。例如,在安防的监控领域,嵌入式摄像机具有运行稳定、功耗低、成本低、运行环境恶劣、性价比高等优点,在各个监控场合被大量使用。嵌入式摄像机一般安装到离地面有一定高度的杆子上,并且点位分散,离监控中心距离比较远,中间通过网络连接。基于以上安装特点,并且经常根据现场,做定制功能,要求摄像机都具有稳定可靠的远程升级功能,若嵌入式摄像机远程升级失败则需要工作人员实地使用串口进行升级,使得嵌入式摄像机升级的难度加大。对于嵌入式设备一般由固化到嵌入式处理器内部的启动程序(uboot)、内核分区、文件系统分区、应用程序分区组成。其中,uboot程序只做设备启动的引导,和需要升级的功能模块没有关系,只在出厂的时候烧写一次,远程升级也不升级uboot分区,使得uboot程序在任何情况下都能正常启动。即只有内核分区、文件系统分区和应用程序分区中分区数据参与远程升级,uboot程序不参与升级。
在应用中,上述第一状态即为上述的uboot状态,第一设备无论是正常升级还是升级失败,第一设备在启动后均会启动uboot程序,进入uboot状态。在该状态下,第一设备会自动读取多个目标分区的分区数据和第一校验码。其中,目标分区包括但不限于上述内核分区、文件系统分区、应用程序分区,对此不作限定。在应用中,上述第一校验码包括但不限于奇偶校验码、循环冗余校验码、海明码,对此不作限定。例如,第一校验码为循环冗余校验码,目标分区中分区数据的信息字段和校验字段的长度可以任意选定,通过对分区数据进行多项式计算,其得到的结果即为第一校验码。
在应用中,第一设备在升级时会接收到的多个目标分区的分区数据(升级文件)和第一校验码并按一定格式保存在flash分区中,其中一定格式可以为下面这种格式,即对于内核分区的分区数据,将第一校验码和分区数据打包成一帧数据存储至flash分区中,该帧数据中的帧头数据为第一校验码,该帧数据的其余字段写入对应的分区数据,对此不作限定。然而在升级过程中,若第一设备存在断电的情况时,因第一校验码的数据容量小,数据传输快,可在升级过程中立刻完成传输,但分区数据(升级文件)一般数据容量大,若第一设备在升级过程中发生异常断电的情况下,此时传输至flash分区的第一校验码为完整分区数据(完整升级文件)的校验码,而传输至flash分区中的分区数据可能存在丢失。
S102、根据所述分区数据,分别计算每个目标分区的第二校验码。
在应用中,第一设备正常启动后会读取写入到flash分区中的分区数据,会再次计算该分区数据的校验码得到第二校验码。具体的,在将接收到的目标分区中的分区数据(升级文件)与第一校验码存储至flash分区时,因分区数据可能存在分区数据丢失的情况,此时第一设备根据flash分区中的分区数据(部分升级文件)再次计算的第二校验码,可能与第一校验码相同或不同。
S103、若任一目标分区的第二校验码与对应的第一校验码不相同,则建立所述第一设备与第二设备之间的网络连接。
在应用中,flash分区内部包括多个目标分区的分区数据,对应的,可计算出多个目标分区的第二校验码,将第二校验码和之前已存储的第一校验码(完整升级文件的校验码)比较,在任一目标分区的第二校验码与对应的第一校验码不相同时,可认为第一设备在之前进行远程升级时存在断电的情况,进而造成第一设备只接收到部分分区数据(部分升级文件)。此时,需要对第一设备内部的所有目标分区再次进行升级,使第一设备可以正常工作。
在应用中,上述第二设备为包含升级软件的终端设备,包括但不限于后台服务器、平板电脑、笔记本电脑、超级移动个人计算机等终端设备,对此不作限定。上述网络连接为第一设备正常升级时,需要从第二设备接收升级包的通道连接,用于根据网络连接的网络协议栈接收升级软件发送的各个目标分区的升级包。在应用中,上述第一设备中即使只有一个目标分区的分区数据缺失,也会重新接收各个目标分区的升级包。
S104、基于所述网络连接,接收所述第二设备针对所述每个目标分区发送的升级包。
在应用中,上述接收到的各个目标分区的升级包后,可以将升级包对应写入flash分区中,并对flash分区中,各个目标分区的分区数据进行替换升级。其中,升级包包括第一校验码和升级文件,升级文件为多个目标分区完整的分区数据,第一校验码为多个目标分区完整的分区数据对应的校验码。
在应用中,在建立与第二设备的网络连接后,第二设备将一直停留在第一状态,直到远程持有第二设备的工作人员下发升级包对所述第一设备进行升级。
S105、采用所述升级包,对所述第一设备的每个目标分区进行升级。
在应用中,上述升级包为当前第一设备升级时,第二设备发送的升级包,此时,第一设备在升级时若未发生异常断电情况,则升级包将包括完整的升级文件和第一校验码,其中完整的升级文件为多个目标分区的完整的分区数据。
在具体应用中,第一设备在升级过程中,会将第二设备发送的多个目标分区的分区数据和第一校验码存储至flash分区中,正常情况下,flash分区中会存储完整的分区数据(完整升级文件)和第一校验码。在第一设备启动进入第一状态时,读取flash分区中多个目标分区的分区数据和第一校验码,并根据分区数据,分别计算每个目标分区的第二校验码,与对应的第一校验码进行比较时第一校验码和第二校验码会完全一致。然而,若第一设备在初次升级过程中发生异常断电的情况,flash分区中只会存储到第二设备发送目标分区的部分分区数据(部分升级文件),和第二设备预先计算好的完整升级文件的第一校验码。此时,第一设备在进入第一状态后,根据第二设备发送的部分分区数据(部分升级文件)计算的第二校验码与第一校验码会不相同,进而第一设备在第一状态下,再次建立与第二设备之间的网络连接,重新升级接收第二设备发送的升级包,即执行S101-S105之间的步骤。
在本实施例中,通过设定第一设备在启动进入第一状态后,读取flash分区下的分区数据和第一校验码,进而再次计算flash分区下分区数据的第二校验码,在第一校验码与第二校验码不一致时,建立与第二设备的网络连接,再次接收第二设备发送的升级包,根据升级包升级第一设备。即便第一设备在远程升级失败,第一设备在进入第一状态后也可以再次自动判断是否进入升级状态,降低远程设备升级的难度,提高第一设备远程升级的可靠性。
在一实施例中,在S101之前还包括:
获取所述第一设备在上一次升级过程中由所述第二设备传输的每个目标分区的分区数据和所述分区数据的第一校验码。
在应用中,第一设备在上一次升级过程中执行升级步骤时,若第一设备正常升级,则第一设备将会接收到第二设备每个目标分区的完整分区数据(升级文件)和完整分区数据对应的第一校验码,并在flash分区中进行存储。之后第一设备在启动进入第一状态时,会读取每个目标分区的分区数据和对应的第一校验码,并执行后续S102-S105之间的步骤。若第一设备未正常升级(在上一升级过程中发生异常断电或升级包传输过程中数据丢失),则第一设备将会接收到第二设备每个目标分区的部分分区数据(部分升级文件)和完整分区数据对应的第一校验码,并在flash分区中进行存储。之后第一设备在启动进入第一状态时,同样会读取每个目标分区的分区数据和对应的第一校验码,并执行后续S102-S105之间的步骤。
在本实施例中,通过将第一设备在远程升级时,将第二设备传输的每个目标分区的分区数据和对应的第一校验码进行实时存储,在第一设备升级过程中发生异常情况,导致此次第一设备只存储第一校验码和部分分区数据,造成第一设备升级失败时。第一设备在进入第一状态后也可通过存储的第一校验码和部分分区数据判断是否再次进入升级状态。无需第一设备在升级失败后,需要再次升级时,只能工作人员实地通过串口连接第一设备进行升级,降低第一设备升级的难度。
参照图2,在一实施例中,S103包括:
S301、获取所述第一设备的第一分区中的第一网络参数。
在应用中,第一分区为网络参数分区,用于存储第一设备正常工作时网络状态参数。上述第一网络参数包括但不限于mac地址、IP地址、子网掩码、默认网关、设备型号,对此不作限定。上述第一分区只用来存储网络状态参数,因此设置的第一分区的存储空间可以非常小,减少第一设备的存储成本。
S302、根据所述第一网络参数,建立所述第一状态下的第一设备与所述第二设备之间的网络连接。
在应用中,第一设备在第一状态下为了能够接收第二设备发送的升级文件,需要在第一状态具备正常工作时连接网络的能力。因此,可预先设定第一设备在uboot状态(第一状态)下,将第一分区中读取到的第一网络参数用来配置网络状态的程序指令。而后将读取到的第一网络参数修改uboot状态下的网络参数,如修改uboot状态下的IP地址,保证uboot状态下的IP地址和第一设备正常工作时连接网络的IP地址一样,保证uboot状态下的第一设备能够正常与第二设备建立网络连接进行升级,提高第一设备升级的可靠性。
在本实施例中,通过设置较小存储空间的第一分区来预存储第一网络参数,降低存储硬件成本,使得第一设备在第一状态下可以根据第一网络参数正常与第二设备进行网络连接,提高第一设备升级的可靠性。
参照图3,在一实施例中,所述第一分区中的第一网络参数通过如下步骤进行配置:
S401、在所述第一设备处于第二状态时,获取所述第二状态下的第二网络参数。
在应用中,上述第二状态为正常工作状态,即第一设备在进入uboot状态后,读取到第二校验码与对应的第一校验码均相同,便可认为第一设备在升级过程中没有发生异常情况,此时认为第一设备升级成功,之后可以正常进行工作,即为第二状态。在第二状态下,第一设备正常工作时需要与第二设备建立网络连接,此时第二状态下与第二设备建立连接的网络参数,即为第二网络参数。其中,第二网络参数为工作人员预先设置在第一设备内部的参数,该第二网络参数只在第一设备处于第二状态下时生效和保存,即第一设备处于第一状态下时,并不知道第二状态下的第二网络参数。
在其他应用中,第一设备每次启动时,均会执行一次S101-S104,即第一设备每次启动时均会进入uboot状态,并读取flash分区下的第一校验码和当前的多个目标分区的分区数据,并根据当前分区数据,分别计算当前每个目标分区的第二校验码。进而可判定在第一设备在每次的正常工作期间,flash分区下的多个目标分区的分区数据是否存在数据失效或损坏的情况,若存在数据失效或损坏的情况,则第二校验码与第一校验码将会不同,第一设备则停留在第一状态并准备执行升级步骤。
S402、若所述第二网络参数与所述第一分区中已存储的第一网络参数不相同,则采用所述第二网络参数替换所述已存储的第一网络参数。
在应用中,第一设备存在更换第二网络参数的情况,如第一设备内部的IP地址更换,但仍可以与第二设备建立网络连接。此时,第一设备正常工作下的第二网络参数,与第一分区中的第一网络参数是不一致的。因此,在第一设备判定第二网络参数与第一网络参数不一致时,则采用第二网络参数替换第一分区中已存储的第一网络参数,使得第一设备不仅能够在第二状态下与第二设备正常建立网络连接,还可以保证第一设备在第一状态下也能够与第二设备建立网络连接进行升级。
S403、若所述第二网络参数与所述第一分区中已存储的第一网络参数相同,则保留所述已存储的第一网络参数。
在应用中,若第一设备判定第二网络参数与第一分区中已存储的第一网络参数相同,即可认为第一设备并未更换网络参数,则不需要执行网络参数的替换步骤,保留第一分区中已存储的第一网络参数。
在应用中,考虑到uboot程序只做设备启动的引导,uboot状态下没有网络协议栈,因此,uboot状态只能采用udp协议的tftp协议进行传输,且第一设备在升级过程采用网络小包的形式批量接收第二设备发送的各个目标分区的升级包,并增加网络重传机制,在升级包传输过程中发生数据丢失的情况下,重新传输升级包。
在本实施例中,通过判断正常工作状态下的第一设备的第二网络参数,与第一分区中已存储的第一网络参数是否一致,进而在第二设备正常工作时更新第一网络参数,保证第一设备在第一状态下读取到的第一网络参数一定可以与第二设备建立网络连接,提高第一设备升级的可靠性。
参照图4,在一实施例中,所述升级包包括所述每个目标分区的升级文件和第三校验码;S105包括:
S501、计算所述每个目标分区的升级文件的第四校验码。
在应用中,上述第一设备在升级过程中,接收到的升级文件和第三校验码会替换之前升级失败时存储的分区数据和第一校验码,若此时第一设备在升级过程中再次发生异常断电情况,在第一设备重启进入第一状态后,重新执行步骤S101-S105,则当前的第三校验码则可认为是步骤S101的第一校验码,当前的存储在flash分区中的升级文件则可认为是步骤S101中的目标分区的分区数据,上述第四校验码则可认为是步骤S102中的第二校验码。
S502、若所述每个目标分区的升级文件的第四校验码与对应的第三校验码均相同,则分别采用所述每个目标分区的升级文件对所述目标分区进行升级。
在应用中,上述第一设备在升级过程中即便未发生异常断电的情况,即第一设备正常接收来自第二设备发送的升级包。而为了防止升级包在传输过程中发生数据丢失的情况,需再次计算flash分区内的升级文件的第四校验码,并与对应的第三校验码进行比较。在判断每个目标分区的升级文件的第四校验码与对应的第三校验码均相同时,则再分别采用每个目标分区的升级文件对目标分区进行升级,即升级文件对应替换原先存储在flash分区中的分区数据。
在本实施例中,通过对第二设备发送的升级文件进行计算,得到第三校验码,并与第二设备预先计算好的完整第四校验码进行比较,在确定第四校验码与对应的第三校验码均相同时,则采用升级文件对目标分区进行升级,防止在升级过程中,第一设备接收的升级包发生数据丢失的情况。
在一实施例中,S502包括:
解析所述每个目标分区的升级文件,获得每个升级文件对应的目标存储路径。
在应用中,第一设备接收的升级文件还包括相应的存储路径,在解析升级文件时,对应的,第一设备可以解析到每个升级文件需对应存储在flash分区下的存储位置。
分别采用所述每个升级文件替换对应的目标存储路径中已存储的文件。
在应用中,上述已存储的文件可以是第一设备待升级的分区数据,也可以是第一设备升级失败时存储的部分分区数据的,对此不作限定。在升级过程中,已存储的文件将被第一设备删除,减少flash分区中的存储空间,并用于存储对应的升级文件。其中,目标存储路径即为升级文件需要对应存储在flash分区中的存储位置。
在本实施例中,通过将升级文件替换目标存储路径中已存储的文件,减少flash分区中的存储空间,降低第一设备中存储硬件成本。
在一实施例中,在S102之后,还包括:
若所述每个目标分区的第二校验码与对应的第一校验码均相同,则控制所述第一设备正常启动,进入第二状态。
在应用中,上述第二校验码与第一校验码均相同,即第一设备在升级过程中并未发生异常断电情况,或接收到的升级文件发生数据丢失的情况,因此,可控制第一设备正常启动,进入第二状态,即正常工作状态。
在应用中,第一设备在升级完毕之后,即采用每个升级文件替换对应的目标存储路径中已存储的文件后,第一设备将会重启,再次进入第一状态,执行步骤S101和步骤S102,而后执行若每个目标分区的第二校验码与对应的第一校验码均相同,则控制第一设备正常启动,进入第二状态的步骤。其中,第一设备每次启动时也会执行步骤S101和步骤S102,起到自动判断是否执行进入升级步骤。在第一设备正常启动进入第二状态后,第一设备可执行步骤S401-S403之间的步骤。
在本实施例中,通过判定第二校验码与对应的第一校验码相同时,进而使第一设备能够正常启动进入第二状态,完成远程第一设备的升级,使得第一设备在进行升级时,只需将升级文件直接写入flash分区中。无需第一设备将flash分区设置为备份分区和运行分区,在升级时还需每次把升级包先写到备份分区,然后在写到运行分区,造成第一设备无论升级是否成功,均需要将升级包在flash分区中写两次,且同时使的flash分区的存储空间增加一倍,存储硬件成本变高。
如图5所示,本实施例还提供一种设备升级装置500,包括:
读取模块510,用于当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码。
计算模块520,用于根据所述分区数据,分别计算每个目标分区的第二校验码。
建立模块530,用于若任一目标分区的第二校验码与对应的第一校验码不相同,则建立所述第一设备与第二设备之间的网络连接。
第一接收模块540,用于基于所述网络连接,接收所述第二设备针对所述每个目标分区发送的升级包。
升级模块550,用于采用所述升级包,对所述第一设备的每个目标分区进行升级。
在一实施例中,设备升级装置500还包括:
第二接收模块,用于获取所述第一设备在上一次升级过程中由所述第二设备传输的每个目标分区的分区数据和所述分区数据的第一校验码,并将所述每个目标分区的分区数据和第一校验码进行存储。
在一实施例中,建立模块530还用于:
获取所述第一设备的第一分区中的第一网络参数;
根据所述第一网络参数,建立所述第一状态下的第一设备与所述第二设备之间的网络连接。
在一实施例中,设备升级装置500还包括如下模块对所述第一分区中的第一网络参数进行配置:
获取模块,用于在所述第一设备处于第二状态时,获取所述第二状态下的第二网络参数;
替换模块,用于若所述第二网络参数与所述第一分区中已存储的第一网络参数不相同,则采用所述第二网络参数替换所述已存储的第一网络参数;
保留模块,用于若所述第二网络参数与所述第一分区中已存储的第一网络参数相同,则保留所述已存储的第一网络参数。
在一实施例中,所述升级包包括所述每个目标分区的升级文件和第三校验码;升级模块550还用于:
计算所述每个目标分区的升级文件的第四校验码;
若所述每个目标分区的升级文件的第四校验码与对应的第三校验码均相同,则分别采用所述每个目标分区的升级文件对所述目标分区进行升级。
在一实施例中,升级模块550还用于:
解析所述每个目标分区的升级文件,获得每个升级文件对应的目标存储路径;
分别采用所述每个升级文件替换对应的目标存储路径中已存储的文件。
在一实施例中,设备升级装置500还包括:
控制模块,用于若所述每个目标分区的第二校验码与对应的第一校验码均相同,则控制所述第一设备正常启动,进入第二状态。
本申请实施例还提供了一种终端设备,该终端设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
图6是本申请一实施例提供的终端设备60的示意图。如图6所示,该实施例的终端设备60包括:处理器603、存储器601以及存储在所述存储器601中并可在所述处理器603上运行的计算机程序602。所述处理器603执行所述计算机程序602时实现上述各个方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器603执行所述计算机程序602时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序602可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器601中,并由所述处理器603执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序602在所述终端设备60中的执行过程。例如,所述计算机程序602可以被分割成读取模块、计算模块、建立模块、第一接收模块和升级模块,各模块具体功能如下:
读取模块,用于当第一设备启动进入第一状态时,读取多个目标分区的分区数据和第一校验码。
计算模块,用于根据所述分区数据,分别计算每个目标分区的第二校验码。
建立模块,用于若任一目标分区的第二校验码与对应的第一校验码不相同,则建立所述第一设备与第二设备之间的网络连接。
第一接收模块,用于基于所述网络连接,接收所述第二设备针对所述每个目标分区发送的升级包。
升级模块,用于采用所述升级包,对所述第一设备的每个目标分区进行升级。
所述终端设备60可以是嵌入式摄像机、嵌入式车载信息设备、嵌入式航天航空设备等终端设备。所述终端设备可包括,但不仅限于,处理器603、存储器601。本领域技术人员可以理解,图6仅仅是终端设备60的示例,并不构成对终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器603可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器601可以是所述终端设备60的内部存储单元,例如终端设备60的硬盘或内存。所述存储器601也可以是所述终端设备60的外部存储设备,例如所述终端设备60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(flash Card)等。在一个实施例中,所述存储器601还可以既包括所述终端设备60的内部存储单元也包括外部存储设备。所述存储器601用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器601还可以用于暂时地存储已经输出或者将要输出的数据。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种设备升级方法,其特征在于,包括:
获取第一设备在上一次升级过程中由第二设备传输的多个目标分区的分区数据和所述分区数据的第一校验码;
当所述第一设备启动进入第一状态时,根据所述分区数据,分别计算每个所述目标分区的第二校验码,所述第一状态为启动程序状态;
若任一所述目标分区的第二校验码与对应的第一校验码不相同,则获取所述第一设备的第一分区中的第一网络参数,所述第一网络参数用于配置所述第一设备的网络状态,所述第一分区用于存储网络状态参数;
根据所述第一网络参数,建立所述第一状态下的所述第一设备与所述第二设备之间的网络连接,所述第二设备包含各所述目标分区的升级包;
基于所述网络连接,接收所述第二设备针对每个所述目标分区发送的升级包;
采用所述升级包,对所述第一设备的每个所述目标分区进行升级。
2.如权利要求1所述的设备升级方法,其特征在于,所述第一分区中的第一网络参数通过如下步骤进行配置:
在所述第一设备处于第二状态时,获取所述第二状态下的第二网络参数,所述第二状态为所述第一设备升级成功时的正常工作状态;
若所述第二网络参数与所述第一分区中已存储的第一网络参数不相同,则采用所述第二网络参数替换所述已存储的第一网络参数;
若所述第二网络参数与所述第一分区中已存储的第一网络参数相同,则保留所述已存储的第一网络参数。
3.如权利要求1或2所述的设备升级方法,其特征在于,所述升级包包括所述每个目标分区的升级文件和第三校验码;
所述采用所述升级包,对所述第一设备的每个目标分区进行升级,包括:
计算所述每个目标分区的升级文件的第四校验码;
若所述每个目标分区的升级文件的第四校验码与对应的第三校验码均相同,则分别采用所述每个目标分区的升级文件对所述目标分区进行升级。
4.如权利要求3所述的设备升级方法,其特征在于,所述分别采用所述每个目标分区的升级文件对所述目标分区进行升级,包括:
解析所述每个目标分区的升级文件,获得每个升级文件对应的目标存储路径;
分别采用所述每个升级文件替换对应的目标存储路径中已存储的文件。
5.如权利要求1或2或4任一项所述的设备升级方法,其特征在于,在所述根据所述分区数据,分别计算每个目标分区的第二校验码之后,还包括:
若所述每个目标分区的第二校验码与对应的第一校验码均相同,则控制所述第一设备正常启动,进入第二状态。
6.一种设备升级装置,其特征在于,包括:
获取模块,用于获取第一设备在上一次升级过程中由第二设备传输的多个目标分区的分区数据和所述分区数据的第一校验码;
计算模块,用于当所述第一设备启动进入第一状态时,根据所述分区数据,分别计算每个所述目标分区的第二校验码,所述第一状态为启动程序状态;
所述获取模块,还用于若任一所述目标分区的第二校验码与对应的第一校验码不相同,则获取所述第一设备的第一分区中的第一网络参数,所述第一网络参数用于配置所述第一设备的网络状态,所述第一分区用于存储网络状态参数;
建立模块,用于根据所述第一网络参数,建立所述第一状态下的所述第一设备与所述第二设备之间的网络连接,所述第二设备包含各所述目标分区的升级包;
第一接收模块,用于基于所述网络连接,接收所述第二设备针对每个所述目标分区发送的升级包;
升级模块,用于采用所述升级包,对所述第一设备的每个所述目标分区进行升级。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010168955.3A CN111522571B (zh) | 2020-03-12 | 2020-03-12 | 设备升级方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010168955.3A CN111522571B (zh) | 2020-03-12 | 2020-03-12 | 设备升级方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522571A CN111522571A (zh) | 2020-08-11 |
CN111522571B true CN111522571B (zh) | 2024-02-09 |
Family
ID=71901506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010168955.3A Active CN111522571B (zh) | 2020-03-12 | 2020-03-12 | 设备升级方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522571B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254037A (zh) * | 2021-05-12 | 2021-08-13 | 深圳市天视通视觉有限公司 | 一种版本升级方法、装置、电子设备及存储介质 |
CN113760336A (zh) * | 2021-06-30 | 2021-12-07 | 惠州Tcl移动通信有限公司 | 软件升级方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344906A (zh) * | 2008-05-19 | 2009-01-14 | 北京深思洛克数据保护中心 | 一种分块式的远程更新方法 |
CN104156249A (zh) * | 2014-08-18 | 2014-11-19 | 四川九成信息技术有限公司 | 嵌入式软件升级方法 |
WO2018006677A1 (zh) * | 2016-07-06 | 2018-01-11 | 中兴通讯股份有限公司 | 智能升级方法、服务器、终端和系统 |
CN107656765A (zh) * | 2017-08-31 | 2018-02-02 | 深圳英飞拓科技股份有限公司 | 一种设备初始化的方法、系统及终端设备 |
CN108170456A (zh) * | 2017-12-25 | 2018-06-15 | 长沙联远电子科技有限公司 | 电子设备的固件升级方法及装置 |
CN108459866A (zh) * | 2018-02-11 | 2018-08-28 | 广东美的厨房电器制造有限公司 | 升级方法、装置、计算机设备、程序产品及存储介质 |
CN109460245A (zh) * | 2018-10-31 | 2019-03-12 | 北京众谊越泰科技有限公司 | 一种嵌入式系统的远程升级方法 |
CN109582332A (zh) * | 2018-11-08 | 2019-04-05 | 深圳市景阳科技股份有限公司 | 互联网摄像机的系统升级方法及装置 |
CN110134426A (zh) * | 2019-04-18 | 2019-08-16 | 深圳市致宸信息科技有限公司 | 一种嵌入式系统升级方法、装置及终端设备 |
CN110569058A (zh) * | 2019-09-09 | 2019-12-13 | Oppo(重庆)智能科技有限公司 | 系统升级方法、装置、终端及计算机可读存储介质 |
CN110780890A (zh) * | 2019-10-24 | 2020-02-11 | 百度在线网络技术(北京)有限公司 | 系统升级方法、装置、电子设备和介质 |
-
2020
- 2020-03-12 CN CN202010168955.3A patent/CN111522571B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344906A (zh) * | 2008-05-19 | 2009-01-14 | 北京深思洛克数据保护中心 | 一种分块式的远程更新方法 |
CN104156249A (zh) * | 2014-08-18 | 2014-11-19 | 四川九成信息技术有限公司 | 嵌入式软件升级方法 |
WO2018006677A1 (zh) * | 2016-07-06 | 2018-01-11 | 中兴通讯股份有限公司 | 智能升级方法、服务器、终端和系统 |
CN107656765A (zh) * | 2017-08-31 | 2018-02-02 | 深圳英飞拓科技股份有限公司 | 一种设备初始化的方法、系统及终端设备 |
CN108170456A (zh) * | 2017-12-25 | 2018-06-15 | 长沙联远电子科技有限公司 | 电子设备的固件升级方法及装置 |
CN108459866A (zh) * | 2018-02-11 | 2018-08-28 | 广东美的厨房电器制造有限公司 | 升级方法、装置、计算机设备、程序产品及存储介质 |
CN109460245A (zh) * | 2018-10-31 | 2019-03-12 | 北京众谊越泰科技有限公司 | 一种嵌入式系统的远程升级方法 |
CN109582332A (zh) * | 2018-11-08 | 2019-04-05 | 深圳市景阳科技股份有限公司 | 互联网摄像机的系统升级方法及装置 |
CN110134426A (zh) * | 2019-04-18 | 2019-08-16 | 深圳市致宸信息科技有限公司 | 一种嵌入式系统升级方法、装置及终端设备 |
CN110569058A (zh) * | 2019-09-09 | 2019-12-13 | Oppo(重庆)智能科技有限公司 | 系统升级方法、装置、终端及计算机可读存储介质 |
CN110780890A (zh) * | 2019-10-24 | 2020-02-11 | 百度在线网络技术(北京)有限公司 | 系统升级方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111522571A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209405B (zh) | 分布式系统的自动化升级方法及装置 | |
CN111522571B (zh) | 设备升级方法、装置、终端设备及存储介质 | |
US10274919B2 (en) | Method, device and computer program product for programming a plurality of control units | |
WO2019084843A1 (zh) | 固件升级方法、电子设备、相机系统和无人飞行器 | |
US20170068585A1 (en) | Method and Apparatus for Recovering System Software of Intelligent Terminal | |
CN105407475A (zh) | 配置文件启用处理方法和eUICC | |
EP3805918B1 (en) | Program update system, program transmission device, and program transmission method | |
CN110912985A (zh) | 一种网络链路调度方法及相关设备 | |
CN112565348A (zh) | 一种智能设备测试方法、系统、计算机设备及存储介质 | |
CN112559349B (zh) | 一种程序的运行方法及运行装置 | |
CN111158783B (zh) | 一种环境变量修改方法、装置、设备及可读存储介质 | |
CN114610331A (zh) | 软件安装方法和系统 | |
CN112954036B (zh) | 一种软件升级方法、终端设备及系统 | |
CN109428936B (zh) | App的升级方法、装置、系统、电子设备及存储介质 | |
US9417863B2 (en) | System and method for expedited loading of an image onto a storage device | |
CN117560285B (zh) | 一种智控物联整机ota升级方法、客户端及服务端 | |
CN107231244B (zh) | 初始化加密机的系统、方法和装置 | |
CN112269583B (zh) | 设备运行异常文件升级处理方法、服务器和存储介质 | |
CN117908935B (zh) | 基于id的电池包定向ota方法、设备及存储介质 | |
CN115480802B (zh) | 锂电池bms物联网系统更新方法、装置、介质及设备 | |
CN111324488B (zh) | 一种程序备份处理方法及装置 | |
CN111343217B (zh) | 资源数据下载方法、装置、终端设备及计算机存储介质 | |
CN114116289A (zh) | 一种镜像文件修复方法、装置,ap设备及网络系统 | |
CN117544503A (zh) | 一种摄像头udp组播升级方法、系统、设备及介质 | |
CN116455809A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221227 Address after: 518000 Yingfei Haocheng Science Park, Guansheng 5th Road, Luhu Community, Guanhu Street, Longhua District, Shenzhen, Guangdong 1515 Applicant after: Shenzhen Infineon Information Co.,Ltd. Address before: 3 / F, building H-3, East Industrial Zone, Huaqiaocheng, Nanshan District, Shenzhen, Guangdong 518000 Applicant before: SHENZHEN INFINOVA Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |