CN113641390B - 一种***升级方法、装置、设备及存储介质 - Google Patents
一种***升级方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113641390B CN113641390B CN202111206997.2A CN202111206997A CN113641390B CN 113641390 B CN113641390 B CN 113641390B CN 202111206997 A CN202111206997 A CN 202111206997A CN 113641390 B CN113641390 B CN 113641390B
- Authority
- CN
- China
- Prior art keywords
- partition
- firmware
- upgrade
- upgrading
- current
- 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
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种***升级方法、装置、设备及存储介质,该方法包括:在***的运行过程中如果需要对***进行升级,则确定***当前未运行在的任意存储分区为当前的升级分区;确定实现***升级的固件为升级固件,并将升级固件写入至当前的升级分区中;在写入升级固件成功后,从当前的升级分区中重新启动***,以使得***运行在当前的升级分区中。可见,本申请将运行的分区及升级的分区分开在升级过程中不会影响***在运行的分区的正常工作,无需关闭软件、卸载存储等,从而能够有效提高升级效率;并且即使在升级过程中出现异常断电等情况,也可以再从写入固件前运行在的存储分区重新启动,不会影响***的启动,产品稳定性好,维护难度小。
Description
技术领域
本发明涉及人工智能技术领域,更具体地说,涉及一种***升级方法、装置、设备及存储介质。
背景技术
现有技术中在实现***升级时,通常需要先关闭***的软件、卸载***所运行在的存储等,然后对在***中写入固件实现对***升级,进而升级完成后再重新启动***。可见,现有技术中由于升级过程需要关闭软件、卸载存储等操作导致升级效率较低,且升级过程中如遇异常断电等情况导致固件没有正常写入,则会影响***的启动,产品稳定性差,维护难度大。
发明内容
本发明的目的是提供一种***升级方法、装置、设备及存储介质,在有效提高***升级效率的同时,还能够提高***稳定性,降低维护难度。
为了实现上述目的,本发明提供如下技术方案:
一种***升级方法,包括:
获取预先设置的环境变量分区的地址信息,从所述地址信息对应的存储空间内的位置处读取分区信息,并按照所述分区信息对存储空间进行分区,得到环境变量分区及至少两个能够作为升级分区的分区;其中,所述环境变量分区用于存储所述分区信息、所述***当前运行在的存储区域内固件的版本信息以及从相应分区启动所述***所用的启动命令;
在***的运行过程中如果需要对***进行升级,则确定所述***当前未运行在的任意存储分区为当前的升级分区;
确定实现所述***升级的固件为升级固件,并将所述升级固件写入至当前的升级分区中;
在写入所述升级固件成功后,从当前的升级分区中重新启动所述***,以使得所述***运行在当前的升级分区中。
优选的,确定实现所述***升级的固件为升级固件之后,还包括:
读取所述升级固件中包含的校验值为当前校验值,并读取所述升级固件中包含的数据部分为第一数据部分;
对所述第一数据部分中的数据进行计算得到相应的校验值为第一校验值,将所述第一校验值与当前校验值进行比对,如果比对的结果为一致,则执行将所述升级固件写入至当前的升级分区中的步骤,否则,确定无法基于所述升级固件实现所述***的升级。
优选的,确定所述第一校验值与当前校验值一致之后,还包括:
读取所述升级固件中包含的版本信息为第一版本信息,并读取所述***当前运行在的存储区域内固件的版本信息为第二版本信息;
将所述第一版本信息及所述第二版本信息进行比对,如果比对的结果为一致,则确定无需基于所述升级固件实现所述***的升级,否则,执行将所述升级固件写入至当前的升级分区中的步骤。
优选的,在写入所述升级固件成功后,还包括:
读取当前的升级分区内升级固件包含的数据部分为第二数据部分,并对所述第二数据部分中的数据进行计算得到相应的校验值为第二校验值;
将所述第二校验值与当前校验值进行比对,如果比对的结果为一致,则执行从当前的升级分区中重新启动所述***的步骤,否则,确定无法从当前的升级分区中重新启动所述***。
优选的,将所述升级固件写入至当前的升级分区中之前,还包括:
将当前的升级分区中存储的数据均进行擦除。
相应的,从当前的升级分区中重新启动所述***之后,还包括:
对所述环境变量分区中的版本信息及启动命令进行更新。
优选的,所述***包含内核及文件***,能够作为升级分区的分区包括两个能够作为所述内核的升级分区的分区及两个能够作为所述文件***的升级分区的分区。
一种***升级装置,包括:
确定模块,用于:在***的运行过程中如果需要对***进行升级,则确定所述***当前未运行在的任意存储分区为当前的升级分区;
写入模块,用于:确定实现所述***升级的固件为升级固件,并将所述升级固件写入至当前的升级分区中;
重启模块,用于:在写入所述升级固件成功后,从当前的升级分区中重新启动所述***,以使得所述***运行在当前的升级分区中;
分区模块,用于:获取预先设置的环境变量分区的地址信息,从所述地址信息对应的存储空间内的位置处读取分区信息,并按照所述分区信息对存储空间进行分区,得到环境变量分区及至少两个能够作为升级分区的分区;其中,所述环境变量分区用于存储所述分区信息、所述***当前运行在的存储区域内固件的版本信息以及从相应分区启动所述***所用的启动命令。
一种***升级设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述***升级方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项***升级方法的步骤。
本发明提供了一种***升级方法、装置、设备及存储介质,该方法包括:在***的运行过程中如果需要对***进行升级,则确定所述***当前未运行在的任意存储分区为当前的升级分区;确定实现所述***升级的固件为升级固件,并将所述升级固件写入至当前的升级分区中;在写入所述升级固件成功后,从当前的升级分区中重新启动所述***,以使得所述***运行在当前的升级分区中。本申请设置能够实现***升级运行的分区为至少两个,进而在***需要升级时将升级所用固件写入至***当前未运行在的分区,然后在写入固件成功后从写入固件成功的分区重新启动***,以实现***的升级,而再下次***需要升级时依然将升级所用固件写入至***当前未运行在的分区,以此类推。可见,本申请将运行的分区及升级的分区分开在升级过程中不会影响***在运行的分区的正常工作,无需关闭软件、卸载存储等,从而能够有效提高升级效率;并且即使在升级过程中出现异常断电等情况,也可以再从写入固件前运行在的存储分区重新启动,不会影响***的启动,产品稳定性好,维护难度小;综上本申请在有效提高***升级效率的同时,还能够提高***稳定性,降低维护难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种***升级方法的流程图;
图2为本发明实施例提供的一种***升级方法中存储分区分布图;
图3为本发明实施例提供的一种***升级装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种***升级方法的流程图,具体可以包括:
S11:在***的运行过程中如果需要对***进行升级,则确定***当前未运行在的任意存储分区为当前的升级分区。
随着科技水平的进步,芯片制造工艺的提升,芯片成本越来越低,使得嵌入式设备能够使用“大内存”“大闪存”等,本申请实施例中的***则可以为嵌入式设备中的***,当然根据需要进行的其他设置也均在本发明的保护范围之内;其中,***可以为操作***,也可以根据实际需要设定的其他***,存储分区是物理磁盘的一部分、其作用如同一个物理分隔单元。在***的运行过程中如果需要对***进行升级,则可以先确定出***当前运行在的存储分区及***未运行在的存储分区,且这些存储分区均为能够实现***升级运行的存储分区,也即本申请实施例中可以设置至少两个能够实现***升级运行的存储分区,进而在同一时刻,存在能够实现***升级运行的存储分区上运行***,也存在能够实现***升级运行的存储分区上未运行***。
S12:确定实现***升级的固件为升级固件,并将升级固件写入至当前的升级分区中。
本申请实施例中在需要实现***升级时,具体为将最新的固件(固件可以为升级包)写入至相应的存储分区中,然后从写入固件完成的存储分区重新启动***,以实现***的升级;且在实现***升级的过程中(***在固件写入成功重新启动前),***仍在当前运行在的存储分区继续运行。其中,本申请实施例将***当前未运行在的任意存储分区作为当前的升级分区,进而在实现***升级时将实现***升级的固件写入至当前的升级分区中,以在写入成功后从当前的升级分区重新启动***,以使得***重新启动后运行在当前的升级分区中。
S13:在写入升级固件成功后,从当前的升级分区中重新启动***,以使得***运行在当前的升级分区中。
简单来说,当能够实现***升级运行的存储分区为两个,且分别表示为分区A和分区B时,如果需要对***进行升级,则会在分区A和分区B之间做切换,例如目前***运行在分区A,那么就将升级所用固件写入到分区B,在写入成功后从分区B重启***,下次升级时则会将升级所用固件写入到分区A,以此类推。
本申请设置能够实现***升级运行的存储分区为至少两个,进而在***需要升级时将升级所用固件写入至***当前未运行在的存储分区,然后在写入固件成功后从写入固件成功的存储分区重新启动***,以实现***的升级,而再下次***需要升级时依然将升级所用固件写入至***当前未运行在的存储分区,以此类推。可见,本申请将运行的存储分区及升级的存储分区分开在升级过程中不会影响***在运行的存储分区的正常工作,无需关闭软件、卸载存储等,从而能够有效提高升级效率;并且即使在升级过程中出现异常断电等情况,也可以再从写入固件前运行在的存储分区重新启动,不会影响***的启动,产品稳定性好,维护难度小;综上本申请在有效提高***升级效率的同时,还能够提高***稳定性,降低维护难度。
本发明实施例提供的一种***升级方法,确定实现***升级的固件为升级固件之后,还可以包括:
读取升级固件中包含的校验值为当前校验值,并读取升级固件中包含的数据部分为第一数据部分;
对第一数据部分中的数据进行计算得到相应的校验值为第一校验值,将第一校验值与当前校验值进行比对,如果比对的结果为一致,则执行将升级固件写入至当前的升级分区中的步骤,否则,确定无法基于升级固件实现***的升级。
本申请实施例在接收到升级指令后则可以确定需要对***进行升级,进而升级相应的***。为了保证升级固件的准确性,本申请实施例可以先对升级固件进行校验;具体来说,可以从升级固件header部分读取校验值,同时计算升级固件data部分中数据的校验值,然后将两者进行比较,如果两者是相同的则表示校验通过,否则表示校验未通过。其中,校验值具体可以为CRC校验和,而升级所用固件可以为相应的固件镜像。
本发明实施例提供的一种***升级方法,确定第一校验值与当前校验值一致之后,还可以包括:
读取升级固件中包含的版本信息为第一版本信息,并读取***当前运行在的存储区域内固件的版本信息为第二版本信息;
将第一版本信息及第二版本信息进行比对,如果比对的结果为一致,则确定无需基于升级固件实现***的升级,否则,执行将升级固件写入至当前的升级分区中的步骤。
为了进一步保证升级固件为最新版本的固件,本申请实施例可以对升级固件的版本进行校验;具体来说,可以读取升级固件header部分的版本信息,将版本信息与***当前运行在的存储分区中读取的所存储固件的版本信息比对,如果两者不同,则说明***需要升级,升级固件为最新版本的固件,否则,确定无需基于升级固件实现***的升级。其中,版本信息可以为版本号。
本发明实施例提供的一种***升级方法,在写入升级固件成功后,还可以包括:
读取当前的升级分区内升级固件包含的数据部分为第二数据部分,并对第二数据部分中的数据进行计算得到相应的校验值为第二校验值;
将第二校验值与当前校验值进行比对,如果比对的结果为一致,则执行从当前的升级分区中重新启动***的步骤,否则,确定无法从当前的升级分区中重新启动***。
为了进一步保证升级固件的准确性,本申请实施例还可以进行回读验证;具体来说,本申请实施例可以从写入升级固件的存储分区中读取固件的data部分中的数据,并对读取到的数据进行计算得到相应校验值,将写入升级固件前从升级固件中读取的校验值与此处计算得到的校验值进行比对,如果两者相同,则说明写入至当前的升级分区中的升级固件没有问题,因此可以从当前的升级分区重新启动***,否则说明写入至当前的升级分区中的升级固件存在问题,因此不能从当前的升级分区重新启动***。
本发明实施例提供的一种***升级方法,将升级固件写入至当前的升级分区中之前,还可以包括:
将当前的升级分区中存储的数据均进行擦除。
为了进一步保证升级的有效实现,本申请中在写入升级固件前可以先对当前的升级分区中存储的数据进行擦除,然后再将升级固件写入至当前的升级分区中,从而避免失效数据的存储,进而导致***重新启动出现错误。
本发明实施例提供的一种***升级方法,还可以包括:
获取预先设置的环境变量分区的地址信息,从地址信息对应的存储空间内的位置处读取分区信息,并按照分区信息对存储空间进行分区,得到环境变量分区及至少两个能够作为升级分区的分区;其中,环境变量分区用于存储分区信息、***当前运行在的存储区域内固件的版本信息以及从相应分区启动***所用的启动命令;
相应的,从当前的升级分区中重新启动***之后,还可以包括:
对环境变量分区中的版本信息及启动命令进行更新;
***可以包含内核及文件***,能够作为升级分区的分区可以包括两个能够作为内核的升级分区的分区及两个能够作为文件***的升级分区的分区。
本申请实施例中的地址信息可以为Flash物理地址。本申请实施例可以预先设置待分区的Env分区的Flash物理地址,从待分区的Env分区对应的Flash物理地址中读取分区信息、版本号及启动命令;其中,分区信息记录了所有存储分区的起始地址和分区大小,启动命令记录了当前***运行在的存储分区为分区A(Kernel-A,Rootfs-A)还是分区B(Kernel-B,Rootfs-B)(启动命令中Bootcmd参数记录了当前***运行在的存储分区,例如当前***运行在的存储分区为A,则在未分区前也是通过记录地址的形式区分存储分区的);相应的,启动命令未记录的另一个存储分区就是“当前的升级分区”。因此实际上,在分成8个存储分区之前,已经规划好8个存储分区的物理地址。
按照分区信息对存储空间(可以为SPI Nand Flash的存储空间,其存储空间的总容量是128MB)进行分区能够得到如图2所示的分布情况,共8个存储分区,分别为Env分区(环境变量分区)、Uboot分区(启动引导分区)、Conf分区(配置分区)、Data分区(数据分区)、Kernel-A、Rootfs-A、Kernel-B、Rootfs-B;其中,Uboot分区负责启动整个***,启动时会根据Env分区中的启动命令启动整个Kernel(内核),并将分区信息传递给Kenrel进行***分区,将整个Flash分成8个分区;Env分区存放分区信息和启动***必要的信息,包括版本号、启动命令等;Rootfs(文件***)采用Squashfs只读文件***,从而防止对***文件任意读写,避免对***造成破坏;Conf分区主要存放***的配置文件,***启动后各业务模块会从里面读出配置信息;Data分区用于存储用户文件,比如抓拍图片、录像片段等。
在一种具体实现方式中,针对存储分区包括Env分区、Uboot分区、Conf分区、Data分区、Kernel-A、Rootfs-A、Kernel-B、Rootfs-B的情况,本申请实施例提供的一种***升级方法可以包括:
1)读取升级指令,升级Kernel区域;
2)升级包校验,从升级包中Kernel镜像的header部分读取CRC校验和,同时计算data部分的CRC校验和,将两者进行比较,如果一致则表示校验正确;
3)读取升级包Kernel镜像的header部分版本号,将版本号与Env分区中的版本号(Env中的version参数)对比,如果版本号不一致,则表示需要升级;
4)开始升级,擦除“当前的升级分区”中的数据,写入镜像数据;需要说明的是,在本发明中,“擦除”动作是为了保证分区中不出现“脏数据”的优化方案,例如既往分区的***版本为V1.0,其占据内存大小为1.8MB,当前需要升级的***版本为V1.1,占据内存的大小为1.5MB,如果不擦除,那么会存在0.3MB的脏数据,直接导致***升级失败。承认,若当前需要升级的***版本为V1.2,占据内存的大小为2MB,能够完全覆盖整个内存区域,也可以不擦除。
5)回读验证,从“当前的升级分区”中读取数据并计算CRC校验和,对比升级包Kernel镜像的header部分CRC校验和,如果一致,则表示数据写入正确;
6)Kernel区域升级完毕,调用步骤2)-步骤5)相同的程序模块升级Rootfs;
7)更新Env分区中的分区信息、版本号、启动命令。
可见,本申请提供的嵌入式设备***分区与升级的方法,对比传统的单分区升级方法,本发明将运行分区与升级分区分开,在升级过程中不影响运行分区的正常工作,无需关闭软件、卸载分区等操作,在升级过程中,就算异常断电,升级分区写入异常,重启后也不影响运行分区的工作,大大提升了升级效率和稳定性。
此外,本发明优化了对Flash存储空间的分区,将Flash存储空间划分为八个存储分区,预先设置待分区的环境变量分区的Flash物理地址,并在该对应的物理地址存储分区升级需要调用的所有参数即分区信息、版本号以及启动命令,在进行升级操作时能够快速从环境变量分区的Flash物理地址中读取所需参数进行升级,本发明在分区升级的过程中仅需从环境变量分区调用分区升级所需参数,减少了计算机程序与其他存储分区的交互。
本发明实施例还提供了一种***升级装置,如图3所示,可以包括:
确定模块11,用于:在***的运行过程中如果需要对***进行升级,则确定***当前未运行在的任意存储分区为当前的升级分区;
写入模块12,用于:确定实现***升级的固件为升级固件,并将升级固件写入至当前的升级分区中;
重启模块13,用于:在写入升级固件成功后,从当前的升级分区中重新启动***,以使得***运行在当前的升级分区中。
本发明实施例提供的一种***升级装置,还可以包括:
第一校验模块,用于:确定实现***升级的固件为升级固件之后,读取升级固件中包含的校验值为当前校验值,并读取升级固件中包含的数据部分为第一数据部分;对第一数据部分中的数据进行计算得到相应的校验值为第一校验值,将第一校验值与当前校验值进行比对,如果比对的结果为一致,则执行将升级固件写入至当前的升级分区中的步骤,否则,确定无法基于升级固件实现***的升级。
本发明实施例提供的一种***升级装置,还可以包括:
第二校验模块,用于:确定第一校验值与当前校验值一致之后,读取升级固件中包含的版本信息为第一版本信息,并读取***当前运行在的存储区域内固件的版本信息为第二版本信息;将第一版本信息及第二版本信息进行比对,如果比对的结果为一致,则确定无需基于升级固件实现***的升级,否则,执行将升级固件写入至当前的升级分区中的步骤。
本发明实施例提供的一种***升级装置,还可以包括:
第三校验模块,用于:在写入升级固件成功后,读取当前的升级分区内升级固件包含的数据部分为第二数据部分,并对第二数据部分中的数据进行计算得到相应的校验值为第二校验值;将第二校验值与当前校验值进行比对,如果比对的结果为一致,则执行从当前的升级分区中重新启动***的步骤,否则,确定无法从当前的升级分区中重新启动***。
本发明实施例提供的一种***升级装置,还可以包括:
擦除模块,用于:将升级固件写入至当前的升级分区中之前,将当前的升级分区中存储的数据均进行擦除。
本发明实施例提供的一种***升级装置,还可以包括:
分区模块,用于:获取预先设置的环境变量分区的地址信息,从地址信息对应的存储空间内的位置处读取分区信息,并按照分区信息对存储空间进行分区,得到环境变量分区及至少两个能够作为升级分区的分区;其中,环境变量分区用于存储分区信息、***当前运行在的存储区域内固件的版本信息以及从相应分区启动***所用的启动命令;
更新模块,用于:从当前的升级分区中重新启动***之后,对环境变量分区中的版本信息及启动命令进行更新。
本发明实施例提供的一种***升级装置,***可以包含内核及文件***,能够作为升级分区的分区包括两个能够作为内核的升级分区的分区及两个能够作为文件***的升级分区的分区。
本发明实施例还提供了一种***升级设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项***升级方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可以实现如上任一项***升级方法的步骤。
需要说明的是,本发明实施例提供的一种***升级装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种***升级方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种***升级方法,其特征在于,包括:
获取预先设置的环境变量分区的地址信息,从所述地址信息对应的存储空间内的位置处读取分区信息,并按照所述分区信息对存储空间进行分区,得到至少两个能够作为升级分区的分区;其中,所述环境变量分区用于存储所述分区信息、所述***当前运行在的存储区域内固件的版本信息以及从相应分区启动所述***所用的启动命令;所述分区信息记录所有存储分区的起始地址和分区大小,启动命令记录当前***所属存储分区;
在***的运行过程中如果需要对***进行升级,则确定所述***当前未运行在的任意存储分区为当前的升级分区;
确定实现所述***升级的固件为升级固件,并将所述升级固件写入至当前的升级分区中;
在写入所述升级固件成功后,从当前的升级分区中重新启动所述***,以使得所述***运行在当前的升级分区中。
2.根据权利要求1所述的方法,其特征在于,确定实现所述***升级的固件为升级固件之后,还包括:
读取所述升级固件中包含的校验值为当前校验值,并读取所述升级固件中包含的数据部分为第一数据部分;
对所述第一数据部分中的数据进行计算得到相应的校验值为第一校验值,将所述第一校验值与当前校验值进行比对,如果比对的结果为一致,则执行将所述升级固件写入至当前的升级分区中的步骤,否则,确定无法基于所述升级固件实现所述***的升级。
3.根据权利要求2所述的方法,其特征在于,确定所述第一校验值与当前校验值一致之后,还包括:
读取所述升级固件中包含的版本信息为第一版本信息,并读取所述***当前运行在的存储区域内固件的版本信息为第二版本信息;
将所述第一版本信息及所述第二版本信息进行比对,如果比对的结果为一致,则确定无需基于所述升级固件实现所述***的升级,否则,执行将所述升级固件写入至当前的升级分区中的步骤。
4.根据权利要求3所述的方法,其特征在于,在写入所述升级固件成功后,还包括:
读取当前的升级分区内升级固件包含的数据部分为第二数据部分,并对所述第二数据部分中的数据进行计算得到相应的校验值为第二校验值;
将所述第二校验值与当前校验值进行比对,如果比对的结果为一致,则执行从当前的升级分区中重新启动所述***的步骤,否则,确定无法从当前的升级分区中重新启动所述***。
5.根据权利要求4所述的方法,其特征在于,将所述升级固件写入至当前的升级分区中之前,还包括:
将当前的升级分区中存储的数据均进行擦除。
6.根据权利要求1所述的方法,其特征在于,从当前的升级分区中重新启动所述***之后,还包括:对所述环境变量分区中的版本信息及启动命令进行更新。
7.根据权利要求4所述的方法,其特征在于,所述***包含内核及文件***,能够作为升级分区的分区包括两个能够作为所述内核的升级分区的分区及两个能够作为所述文件***的升级分区的分区。
8.一种***升级装置,其特征在于,包括:
确定模块,用于:在***的运行过程中如果需要对***进行升级,则确定所述***当前未运行在的任意存储分区为当前的升级分区;
写入模块,用于:确定实现所述***升级的固件为升级固件,并将所述升级固件写入至当前的升级分区中;
重启模块,用于:在写入所述升级固件成功后,从当前的升级分区中重新启动所述***,以使得所述***运行在当前的升级分区中;
分区模块,用于:获取预先设置的环境变量分区的地址信息,从所述地址信息对应的存储空间内的位置处读取分区信息,并按照所述分区信息对存储空间进行分区,得到环境变量分区及至少两个能够作为升级分区的分区;其中,所述环境变量分区用于存储所述分区信息、所述***当前运行在的存储区域内固件的版本信息以及从相应分区启动所述***所用的启动命令;所述分区信息记录所有存储分区的起始地址和分区大小,启动命令记录当前***所属存储分区。
9.一种***升级设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述***升级方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述***升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111206997.2A CN113641390B (zh) | 2021-10-18 | 2021-10-18 | 一种***升级方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111206997.2A CN113641390B (zh) | 2021-10-18 | 2021-10-18 | 一种***升级方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641390A CN113641390A (zh) | 2021-11-12 |
CN113641390B true CN113641390B (zh) | 2022-03-22 |
Family
ID=78427279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111206997.2A Active CN113641390B (zh) | 2021-10-18 | 2021-10-18 | 一种***升级方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641390B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691180A (zh) * | 2022-03-24 | 2022-07-01 | 洛阳热感科技有限公司 | 处理器芯片的软件升级方法、装置、处理器和处理器*** |
CN115904450A (zh) * | 2022-11-02 | 2023-04-04 | 易科奇通信技术(深圳)有限公司 | 嵌入式设备固件升级装置和方法、嵌入式设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018032757A1 (zh) * | 2016-08-17 | 2018-02-22 | 中兴通讯股份有限公司 | 组件升级的方法及装置 |
CN112363749A (zh) * | 2020-09-04 | 2021-02-12 | 中核武汉核电运行技术股份有限公司 | 一种mips架构***的安全启动和升级方法 |
CN112882743A (zh) * | 2021-02-09 | 2021-06-01 | 上海金脉电子科技有限公司 | 一种软件升级的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020865B (zh) * | 2016-05-10 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 一种***升级方法和装置 |
CN111142907B (zh) * | 2019-12-25 | 2022-07-29 | 声耕智能科技(西安)研究院有限公司 | 离线关键词识别***分区升级方法 |
-
2021
- 2021-10-18 CN CN202111206997.2A patent/CN113641390B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018032757A1 (zh) * | 2016-08-17 | 2018-02-22 | 中兴通讯股份有限公司 | 组件升级的方法及装置 |
CN112363749A (zh) * | 2020-09-04 | 2021-02-12 | 中核武汉核电运行技术股份有限公司 | 一种mips架构***的安全启动和升级方法 |
CN112882743A (zh) * | 2021-02-09 | 2021-06-01 | 上海金脉电子科技有限公司 | 一种软件升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113641390A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7290097B2 (en) | Nonvolatile memory | |
JP4371771B2 (ja) | 不揮発性メモリシステムにおいて用いられる電力管理ブロック | |
US7818556B2 (en) | Storage apparatus, control method, and control device which can be reliably started up when power is turned on even after there is an error during firmware update | |
CN113641390B (zh) | 一种***升级方法、装置、设备及存储介质 | |
US8527730B2 (en) | Data updating method, memory system and memory device | |
US7426633B2 (en) | System and method for reflashing disk drive firmware | |
CN101650662B (zh) | 一种嵌入式***的存储器件的固件启动及升级方法 | |
US7313682B2 (en) | Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code | |
CN111562934B (zh) | 一种基于热补丁的软件***升级方法、终端及存储介质 | |
CN109582332B (zh) | 互联网摄像机的***升级方法及装置 | |
US11474805B2 (en) | System capable of upgrading firmware in background and method for upgrading firmware in background | |
CN116755735A (zh) | 嵌入式软件在线升级方法、装置、腹膜透析仪、存储介质 | |
CN114398087B (zh) | 一种提高单片机更新程序后运行稳定性的方法及单片机 | |
CN112908390B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN113778485A (zh) | 电子芯片的***运行方法、装置、电子芯片和存储介质 | |
CN114356653A (zh) | 一种工控防火墙掉电保护方法及装置 | |
CN113626091A (zh) | 固态硬盘的启动优化方法、装置、计算机设备及存储介质 | |
CN117270914B (zh) | 一种终端设备的***升级方法、装置、设备和介质 | |
CN112905112B (zh) | 一种嵌入式设备的数据处理方法及*** | |
CN118051383A (zh) | 一种分区损坏切换备份的方法及*** | |
CN115686919A (zh) | 一种非易失存储装置、固件损坏处理方法、升级方法 | |
CN115525315A (zh) | 一种fpga升级方法和装置、计算机可读存储介质 | |
CN118426815A (zh) | 一种存储设备及其控制方法 | |
CN116484327A (zh) | 存储器的操作***程序写保护方法、装置及电子设备 | |
CN111522568A (zh) | 一种boot下验证升级文件的方法 |
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 |
Effective date of registration: 20220215 Address after: No. 209, Zhuyuan Road, Suzhou hi tech Zone, Suzhou, Jiangsu, 215011 Applicant after: SUZHOU WANDIANZHANG NETWORK TECHNOLOGY Co.,Ltd. Address before: 215125 Creative Industrial Park 21-a301, No. 328, Xinghu street, Suzhou Industrial Park, Suzhou, Jiangsu Applicant before: Suzhou wandianzhang Software Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |