CN115686919A - 一种非易失存储装置、固件损坏处理方法、升级方法 - Google Patents
一种非易失存储装置、固件损坏处理方法、升级方法 Download PDFInfo
- Publication number
- CN115686919A CN115686919A CN202211430136.7A CN202211430136A CN115686919A CN 115686919 A CN115686919 A CN 115686919A CN 202211430136 A CN202211430136 A CN 202211430136A CN 115686919 A CN115686919 A CN 115686919A
- Authority
- CN
- China
- Prior art keywords
- area
- read
- file
- firmware area
- readable
- 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
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及存储技术领域中的一种非易失存储装置、固件损坏处理方法、升级方法,包括BootLoader区、只读文件固件区、可读可写文件固件区和标志区;BootLoader区用于根据标志区的标志判断所启动的分区;只读文件固件区用于存储系统关键固件,且只读文件固件区的数据写入方式为整体写入覆盖;可读可写文件固件区用于实现备份回滚,且可读可写文件固件区的数据写入方式为分开写入覆盖,其中,备份回滚表示,当进行增量升级时,可实现增量包的写入并生成镜像覆盖只读文件固件区;标志区用于存储启动标志、启动校验和升级标志,具有实现增量升级,减少固件容量的优点。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种非易失存储装置、固件损坏处理方法、升级方法。
背景技术
充电桩的flash分区保存着整个启动kernel,在启动前会校验内核镜像的CRC值与环境变量中的预值是否一致,当其一致相同的时候,启动置位当前镜像。
然而当我们对系统进行升级时,需要对整个备份区完整擦除以后改写启动标志,才能完成升级启动,无法实现增量升级,且如果出现意外断电、信号中断等意外情况导致升级失败,那么这个固件区将会不可用。
发明内容
本发明针对现有技术中的缺点,提供了一种非易失存储装置、固件损坏处理方法、升级方法,具有实现增量升级,减少固件容量的优点。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种非易失存储装置,包括BootLoader区、只读文件固件区、可读可写文件固件区和标志区;
所述BootLoader区用于根据所述标志区的标志判断所启动的分区;
所述只读文件固件区用于存储系统关键固件,且只读文件固件区的数据写入方式为整体写入覆盖;
所述可读可写文件固件区用于实现备份回滚,且所述可读可写文件固件区的数据写入方式为分开写入覆盖,其中,所述备份回滚表示,当进行增量升级时,可实现增量包的写入并生成镜像覆盖所述只读文件固件区;
所述标志区用于存储启动标志、启动校验和升级标志。
可选的,还包括一般文件系统区,所述一般文件系统区用于存储一般文件系统的存储运行数据或用户数据日志。
可选的,所述可读可写文件固件区为只读文件固件区的异常损坏备份,所述只读文件固件区为所述可读可写文件固件区的增量升级备份。
一种非易失存储装置的固件损坏处理方法,所述固件损坏处理方法应用于上述任意一项所述的一种非易失存储装置,包括以下步骤:
判断只读文件固件区是否正常启动;
若正常启动,则只读文件固件区未损坏,若无法启动,则重启非易失存储装置,并启动可读可写文件固件区,并压缩所述可读可写文件固件区的所有数据,生成覆盖备份数据;
基于所述覆盖备份数据,覆盖所述只读文件固件区的所有数据,并复位所述只读文件固件区的启动标志。
可选的,判断只读文件固件区是否正常启动,包括以下步骤:
读取只读文件区的启动标志,判断所述启动标志是否可启动;
若所述启动标志为可启动,则进行定时重置处理,并修改所述启动标志为无法启动;
定时重置处理时,判断是否出现重置,若出现,则所述只读文件固件区无法启动,若未出现,则所述只读文件固件区正常启动。
可选的,还包括以下步骤:
当所述只读文件固件区无法启动时,判断所述可读可写文件固件区是否正常启动。
可选的,所述重启非易失存储装置基于所述定时重置处理的结果为重置状态时进行。
一种非易失存储装置的升级方法,所述升级方法应用于上述任意一项所述的一种非易失存储装置,包括以下步骤:
接收远程升级指令和升级包,基于所述升级包的类型,更新可读可写文件固件区的数据包;
校验所述可读可写文件固件区是否正常运行;
若正常运行,则压缩所述可读可写文件固件区的数据包,生成升级镜像包,并在擦除只读文件固件区后,写入升级镜像包,待校验只读文件固件区正常启动后,返回升级成功标志;
若无法正常运行,则启动只读文件固件区,并进行回滚处理,将回滚处理后的数据包覆盖所述可读可写文件固件区,并返回升级失败标志。
可选的,基于所述升级包的类型,更新可读可写文件固件区的数据包,包括以下步骤:
若所述升级包为增量升级包,则直接写入可读可写文件固件区;
若所述升级包为整包升级包,则在一般文件系统区接收整包升级包后,将所述整包升级包覆盖所述可读可写文件固件区。
一种充电设备,所述充电设备包括如上述任意一项所述的非易失存储装置。
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
通过设定可读可写文件固件区实现增量升级,减少固件容量,同时,升级时优先设置为在可读可写文件固件区内进行,使得即使发生断电、信号中断的情况,依然不影响只读文件固件区的启动运行,提高升级的稳定性,而启动运行时,优先级设置为只读文件固件区优先,可读可写文件固件区作为备份启动,通过设置如此启动备份以及升级备份的双备份机制,保证了当存储装置中只读文件固件区和可读可写文件固件区中任意一区发生损坏时,均能实现存储装置的自动回滚自愈,并正常运行启动。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例一提出的一种非易失存储装置的分区图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
实施例一
一种非易失存储装置,包括BootLoader区、只读文件固件区、可读可写文件固件区和标志区;BootLoader区用于根据标志区的标志判断所启动的分区;只读文件固件区用于存储系统关键固件,且只读文件固件区的数据写入方式为整体写入覆盖;可读可写文件固件区用于实现备份回滚,且可读可写文件固件区的数据写入方式为分开写入覆盖,其中,备份回滚表示,当进行增量升级时,可实现增量包的写入并生成镜像覆盖只读文件固件区;标志区用于存储启动标志、启动校验和升级标志。
具体地,BootLoader区负责上电后系统启动的引导程序,例如linux系统、rtlinux等系统,然后在根据标志区的标志判断具体需要启动的分区是只读文件固件区还是可读可写文件固件区,而只读文件固件区是采用高压缩率快解压算法的只读文件系统,能够存储例如kernel、dtb、rootfs等系统关键固件,可以实现全量升级;可读可写文件固件区使用未压缩的储存方式存储与只读文件固件区完全相同的数据,用于实现备份回滚等特性,标志区用于存储各个区的启动标志以及启动各个区前需要进行验证的CRC校验码,并且存储有用于升级的升级标志。
同时,可读可写文件固件区为只读文件固件区的异常损坏备份,只读文件固件区为可读可写文件固件区的增量升级备份,非易失存储装置运行时优先启动只读文件固件区,从而使得当出现意外断电、信号中断等意外情况时,仅在可读可写文件固件区进行升级包处理,即使出现意外情况,不会影响只读文件固件区,进而保证非易失存储装置正常运行,提高了升级的稳定性。
另一方面,非易失存储装置还包括一般文件系统区,一般文件系统区用于存储一般文件系统的存储运行数据或用户数据日志,当升级包为整包升级时,需通过一般文件系统区进行存储整包升级包,并经过处理后,写入可读可惜文件固件区。
实施例二
一种非易失存储装置的固件损坏处理方法,固件损坏处理方法应用于实施例一所述的一种非易失存储装置,包括以下步骤:判断只读文件固件区是否正常启动,具体包括以下步骤:读取只读文件区的启动标志,判断启动标志是否可启动;若启动标志为可启动,则进行定时重置处理,并修改启动标志为无法启动;定时重置处理时,判断是否出现重置,若出现,则只读文件固件区无法启动,若未出现,则只读文件固件区正常启动
具体地,首先需要说明的是,判断只读文件固件区是否正常启动存在两个步骤,第一为启动标志位是否设置为需要启动,第二为,完成启动标志位的判断后,确认,实际上,只读文件固件区是否在启动运行,基于此,在上电后,首先加载BootLoader区,启动引导程序,引导程序首先读取标志区的启动标志,然后判断只读文件固件区的启动标志是否为可启动,其中,可启动的代码标志为0xAA,判断只读文件固件区的启动标志的方法为,通过比较只读文件固件区内的kernel的校验码是否与标志区内的校验码一致,若一致,则代表只读文件固件区的启动标志为可启动,反之则不可启动。
在判断完成启动标志为可启动只读文件固件区后,由于无法确认只读文件固件实际上是否真正可以运行启动,因此,为检测出只读文件固件区是否损坏,首先需要先更改启动标志为无法启动,从而单独检测实际上是否只读文件固件区是否能够启动,其中,启动标志无法启动的程序代码为0x55。
进而,设置定时重置处理,本实施例中所提及的定时可根据实际情况进行人为设定,在此不做限定,而定时重置处理即为进行喂狗处理,若长时间只读文件固件区未启动运行,则喂狗所设定的时长到达后,即出现饿狗情况,会对整个非易失存储装置进行重置复位处理,因此,在判断只读文件固件区是否实际上正常运行启动时,通过喂狗方式进行判断。
进一步地,若正常启动,则只读文件固件区实际上未损坏,若无法启动,则重启非易失存储装置,其中,重启非易失存储装置基于定时重置处理的结果为重置状态时进行,即出现饿狗情况下,然后启动可读可写文件固件区,并压缩可读可写文件固件区的所有数据,生成覆盖备份数据;
具体地,若在定时重置处理的设定时间内,只读文件固件区能够正常启动,未损坏,则在只读文件固件区成功启动后会挂载根文件系统,然后需要更新标志区内的关于只读文件固件区的启动标志为可启动,进行启动标志的复位;若只读文件固件区无法启动,则代表只读文件固件区损坏,也无法挂载根文件系统,此时,定时重置处理的定时复位的机制下,会重启非易失存储装置,而在重置后,BootLoader区的程序首先会读取标志区的关于只读文件固件区的启动标志,此时由于在检测损坏前设置为不可启动,因此在检测出只读文件固件区实际为损坏的情况下,依然保留检测损坏前的设置为不可启动。
进一步地,当只读文件固件区无法启动时,判断可读可写文件固件区是否正常启动,具体地,得到只读文件固件区的启动标志为不可启动后,由于可读可写文件固件区作为只读文件固件区的损坏备份,此时BootLoader区的程序会转而判断可读可写文件固件区的启动标志是否为可启动,
在进行判断时,同样的,需要比较可读可写文件固件区中kernel的校验码是否与标志区的校验码一致,若一致,则进行定时重置处理,并更新可读可写文件固件区的启动标志为无法启动,然后在定时重置处理的定时时间内,若出现重置,则代表用于备份的可读可写文件固件区也存在损坏,需要进行上报处理;若未出现重置,则可读可写文件固件区成功启动并挂载根文件系统后,再次更新可读可写文件固件区的启动标志为可以启动,然后为恢复只读文件固件区,此时需要在可读可写文件固件区启动运行后,使用整个区数据打包压缩的方式,得到覆盖备份数据,然后基于覆盖备份数据,覆盖只读文件固件区的所有数据,完成回退功能,保证非易失存储装置启动的稳定性,然后复位只读文件固件区的启动标志,最后生成损坏事件日志数据,进行上位机的上报,从而起到事件发生的情况告知,以便后续对此类事件的规避总结。
实施例三
一种非易失存储装置的升级方法,升级方法应用于实施例一所述的一种非易失存储装置,包括以下步骤:接收远程升级指令和升级包,基于升级包的类型,更新可读可写文件固件区的数据包;在使用非易失存储装置的设备需要进行升级时,只读文件固件区会启动整个设备,然后会接收到远程的升级脚本和数据包,即远程升级指令和升级包,然后判断升级包的类型,若升级包为增量升级包,则直接写入可读可写文件固件区;若升级包为整包升级包,则在一般文件系统区接收整包升级包后,使用tar之后将整包升级包覆盖可读可写文件固件区。
进一步地,为验证是否成功升级,需要校验可读可写文件固件区是否正常运行;首先将标志区内的启动标志位的优先级修改为可读可惜文件固件区启动,然后重启,重启后,在BootLoader区的程序引导阶段,更改可读可写文件固件区的升级标志为不可升级,此时进行校验可读可写文件固件区是否正常运行,校验的方法为,通过定时重置处理,即喂狗处理,
若正常运行,即未出现重置,则可读可写文件固件区正常运行,启动成功,此时,压缩可读可写文件固件区的数据包,生成升级镜像包,并在擦除只读文件固件区后,写入升级镜像包,待校验只读文件固件区正常启动后,返回升级成功标志
具体地,可读可写文件固件区整个使用高压缩率快解压算法,打包所有数据,生成升级径向包,然后擦除只读文件固件区内的数据,并将升级镜像包写入只读文件固件区,从而完成只读文件固件区的升级包写入
然后更新标志区中的启动标志的优先级为只读文件固件区优先,然后为验证只读文件固件区的升级是否成功,需要再次重启非易失存储装置,然后BootLoader区引导程序更改只读文件固件区的启动标志为不可启动,再进行定时重置处理,判断是否出现重置情况,若未出现,则表示只读文件固件区正常启动,升级成功,并上报升级成功标志。
若可读可写文件固件区无法正常运行,即出现重置情况,此时可读可写文件固件区的启动标志位为无法启动,需启动只读文件固件区,即由只读文件固件区启动升级前的版本,并在启动后,进行回滚处理,将回滚处理后的数据包覆盖可读可写文件固件区,并返回升级失败标志。
具体地,回滚处理为,将只读文件固件区的高压缩原始包通过展开的方式,整区覆盖可读可写文件固件区,然后修改可读可写文件固件区的启动标志为可启动,修改其升级标志为不可启动,并发送给远程终端,远程升级包错误的信息,即返回升级失败标志。
一种充电设备,充电设备包括如实施例一任意一项的非易失存储装置,其中,充电设备可以为智能充电桩等用于充电的设备,在本实施例中不作具体限制。
以上所述,仅为本发明的较佳实施例,并非对本发明任何形式上和实质上的限制,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还将可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。凡熟悉本专业的技术人员,在不脱离本发明的精神和范围的情况下,当可利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对上述实施例所作的任何等同变化的更动、修饰与演变,均仍属于本发明的技术方案的范围内。
Claims (10)
1.一种非易失存储装置,其特征在于,包括BootLoader区、只读文件固件区、可读可写文件固件区和标志区;
所述BootLoader区用于根据所述标志区的标志判断所启动的分区;
所述只读文件固件区用于存储系统关键固件,且所述只读文件固件区的数据写入方式为整体写入覆盖;
所述可读可写文件固件区用于实现备份回滚,且所述可读可写文件固件区的数据写入方式为分开写入覆盖,其中,所述备份回滚表示,当进行增量升级时,可实现增量包的写入并生成镜像覆盖所述只读文件固件区;
所述标志区用于存储启动标志、启动校验和升级标志。
2.根据权利要求1所述的一种非易失存储装置,其特征在于,还包括一般文件系统区,所述一般文件系统区用于存储一般文件系统的存储运行数据或用户数据日志。
3.根据权利要求1所述的一种非易失存储装置,其特征在于,所述可读可写文件固件区为只读文件固件区的异常损坏备份,所述只读文件固件区为所述可读可写文件固件区的增量升级备份。
4.一种非易失存储装置的固件损坏处理方法,其特征在于,所述固件损坏处理方法应用于权利要求1-3任意一项所述的一种非易失存储装置,包括以下步骤:
判断只读文件固件区是否正常启动;
若正常启动,则只读文件固件区未损坏,若无法启动,则重启非易失存储装置,并启动可读可写文件固件区,并压缩所述可读可写文件固件区的所有数据,生成覆盖备份数据;
基于所述覆盖备份数据,覆盖所述只读文件固件区的所有数据,并复位所述只读文件固件区的启动标志。
5.根据权利要求4所述的一种非易失存储装置的固件损坏处理方法,其特征在于,判断只读文件固件区是否正常启动,包括以下步骤:
读取只读文件区的启动标志,判断所述启动标志是否可启动;
若所述启动标志为可启动,则进行定时重置处理,并修改所述启动标志为无法启动;
定时重置处理时,判断是否出现重置,若出现,则所述只读文件固件区无法启动,若未出现,则所述只读文件固件区正常启动。
6.根据权利要求1所述的一种非易失存储装置的固件损坏处理方法,其特征在于,还包括以下步骤:
当所述只读文件固件区无法启动时,判断所述可读可写文件固件区是否正常启动。
7.根据权利要求5所述的一种非易失存储装置的固件损坏处理方法,其特征在于,所述重启非易失存储装置基于所述定时重置处理的结果为重置状态时进行。
8.一种非易失存储装置的升级方法,其特征在于,所述升级方法应用于权利要求1-3任意一项所述的一种非易失存储装置,包括以下步骤:
接收远程升级指令和升级包,基于所述升级包的类型,更新可读可写文件固件区的数据包;
校验所述可读可写文件固件区是否正常运行;
若正常运行,则压缩所述可读可写文件固件区的数据包,生成升级镜像包,并在擦除只读文件固件区后,写入升级镜像包,待校验只读文件固件区正常启动后,返回升级成功标志;
若无法正常运行,则启动只读文件固件区,并进行回滚处理,将回滚处理后的数据包覆盖所述可读可写文件固件区,并返回升级失败标志。
9.根据权利要求8所述的一种非易失存储装置的升级方法,其特征在于,基于所述升级包的类型,更新可读可写文件固件区的数据包,包括以下步骤:
若所述升级包为增量升级包,则直接写入可读可写文件固件区;
若所述升级包为整包升级包,则在一般文件系统区接收整包升级包后,将所述整包升级包覆盖所述可读可写文件固件区。
10.一种充电设备,所述充电设备包括如权利要求1-3任意一项所述的非易失存储装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211430136.7A CN115686919A (zh) | 2022-11-15 | 2022-11-15 | 一种非易失存储装置、固件损坏处理方法、升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211430136.7A CN115686919A (zh) | 2022-11-15 | 2022-11-15 | 一种非易失存储装置、固件损坏处理方法、升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686919A true CN115686919A (zh) | 2023-02-03 |
Family
ID=85052851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211430136.7A Pending CN115686919A (zh) | 2022-11-15 | 2022-11-15 | 一种非易失存储装置、固件损坏处理方法、升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686919A (zh) |
-
2022
- 2022-11-15 CN CN202211430136.7A patent/CN115686919A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7275153B2 (en) | Booting and boot code update system using boot strapper code to select between a loader and a duplicate backup loader | |
US8041988B2 (en) | Firmware update for consumer electronic device | |
US8181007B2 (en) | Electronic device and method for secure operating system update in embedded system | |
CN101329631B (zh) | 一种嵌入式系统自动检测和恢复启动的方法及装置 | |
CN111552592A (zh) | 一种双备份启动方法及系统 | |
GB2466685A (en) | Fault tolerant updating of firmware | |
US20100235617A1 (en) | System recovery method and embedded system with automatic recovery function | |
CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
CN103455354A (zh) | 一种防止固件升级失败的方法和设备 | |
CN105260215A (zh) | 一种u盘升级车载行车记录仪终端的方法 | |
CN113114730B (zh) | 升级方法、装置、终端设备及存储介质 | |
CN109933374B (zh) | 一种计算机启动方法 | |
CN113157303A (zh) | 升级方法、嵌入式系统、终端及计算机存储介质 | |
CN113641390B (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN114741096A (zh) | 升级处理方法、设备及存储介质 | |
CN116361817B (zh) | 一种Linux下ubi文件系统的保护方法 | |
CN110908722B (zh) | 应用于操作系统启动的方法、装置、电子设备及存储介质 | |
CN112882757A (zh) | 一种嵌入式系统双分区安全启动方法 | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
CN110704085A (zh) | Raid可执行文件更新方法、装置、设备及存储介质 | |
CN115686919A (zh) | 一种非易失存储装置、固件损坏处理方法、升级方法 | |
CN114356658A (zh) | 固件升级异常的处理方法、计算机设备以及可读存储介质 | |
CN106325912B (zh) | 嵌入式操作系统的启动方法及装置 | |
CN113672302A (zh) | 一种路由器启动方法、装置、路由器及存储介质 | |
CN111897583A (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 |