CN107315616B - 一种固件的加载方法、装置及电子设备 - Google Patents
一种固件的加载方法、装置及电子设备 Download PDFInfo
- Publication number
- CN107315616B CN107315616B CN201710523744.5A CN201710523744A CN107315616B CN 107315616 B CN107315616 B CN 107315616B CN 201710523744 A CN201710523744 A CN 201710523744A CN 107315616 B CN107315616 B CN 107315616B
- Authority
- CN
- China
- Prior art keywords
- firmware
- storage position
- firmware stored
- storage
- stored
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 66
- 238000012795 verification Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 6
- 239000007787 solid Substances 0.000 description 21
- 238000010586 diagram Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种固件的加载方法、装置及电子设备,本发明中将固件分别存储在第一存储位置和第二存储位置,当第一存储位置或第二存储位置中的固件损坏时,可以使用另一个存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
Description
技术领域
本发明涉及数据存储领域,更具体的说,涉及一种固件的加载方法、装置及电子设备。
背景技术
随着互联网、云计算和物联网等技术的不断发展,固态硬盘SSD作为新一代的存储工具,被广泛使用。
其中,固态硬盘作为嵌入式设备,在上电启动时,需要加载固态硬盘中的NandFlash中或者是Nor Flash中的固件,以保证固态硬盘的正常运行。其中,固件包括SSD算法的主程序,是固态硬盘的软件系统的核心。
当现有技术中的固件损坏时,固态硬盘将不能正常运行。
发明内容
有鉴于此,本发明提供一种固件的加载方法、装置及电子设备,以解决当现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种固件的加载方法,包括:
检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件。
优选地,所述加载方法还包括:
采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和所述第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
优选地,当所述第二存储位置中存储的固件不是正常固件时,还包括:
验证所述第三存储位置中存储的固件是否是正常固件;
若验证出所述第三存储位置中存储的固件是正常固件,加载所述第三存储位置中存储的固件;
若验证出所述第三存储位置中存储的固件不是正常固件,验证所述第四存储位置中存储的固件是否是正常固件;
若验证出所述第四存储位置中存储的固件是正常固件,加载所述第四存储位置中存储的固件。
优选地,若验证出所述第四存储位置中存储的固件不是正常固件后,还包括:
加载预设位置中存储的出厂固件;
或者,加载除所述第一存储位置、所述第二存储位置、所述第三存储位置和所述第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
优选地,所述检测第一存储位置中存储的固件是否是正常固件,包括:
采用循环冗余校验CRC校验机制,验证所述第一存储位置中存储的固件是否是正常固件。
一种固件的加载装置,包括:
检测模块,用于检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
第一加载模块,用于若所述检测模块检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件。
优选地,所述加载装置还包括:
第一更新模块,用于采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
第二更新模块,用于根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和所述第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
优选地,当所述第二存储位置中存储的固件不是正常固件时,还包括:
第一验证模块,用于验证所述第三存储位置中存储的固件是否是正常固件;
第二加载模块,用于若所述第一验证模块验证出所述第三存储位置中存储的固件是正常固件,加载所述第三存储位置中存储的固件;
第二验证模块,用于若所述第一验证模块验证出所述第三存储位置中存储的固件不是正常固件,验证所述第四存储位置中存储的固件是否是正常固件;
第三加载模块,用于若所述第二验证模块验证出所述第四存储位置中存储的固件是正常固件,加载所述第四存储位置中存储的固件。
优选地,还包括:
第四加载模块,用于若所述第二验证模块验证出所述第四存储位置中存储的固件不是正常固件,加载预设位置中存储的出厂固件,或者,加载除所述第一存储位置、所述第二存储位置、所述第三存储位置和所述第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
一种电子设备,包括存储器和处理器;
其中,所述存储器用于存储程序;
处理器用于调用程序,其中,所述程序用于:
检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种固件的加载方法、装置及电子设备,本发明中将固件分别存储在第一存储位置和第二存储位置,当第一存储位置或第二存储位置中的固件损坏时,可以使用另一个存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种固件的加载方法的方法流程图;
图2为本发明提供的另一种固件的加载方法的方法流程图;
图3为本发明提供的一种固件的加载装置的结构示意图;
图4为本发明提供的另一种固件的加载装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种固件的加载方法,参照图1,包括:
S11、检测第一存储位置中存储的固件是否是正常固件;若检测出第一存储位置中存储的固件是正常固件,执行步骤S12;若检测出第一存储位置中存储的固件不是正常固件,执行步骤S13。
其中,第一存储位置为与最高版本存储位置信息对应的存储位置。其中,最高版本存储位置信息存在固件配置信息。
可选的,在本实施例的基础上,步骤S11包括:
采用循环冗余校验CRC校验机制,验证第一存储位置中存储的固件是否是正常固件。
循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
具体的,采用循环冗余校验CRC校验机制,验证读取的固件是否是正常固件,包括:
利用固件的头部FW head和文件格式文件中ELF File中包含的数据,通过CRC校验机制,计算得到一个数值,与存储在固件的尾部中的保存的数值作比较,如果一致,则证明读取的固件是正常固件,若不一致,则证明读取的固件不是正常固件。
需要说明的是,固件被写入以及在被读取的过程中,固件可能会出现比特bit错误,所以需要去验证读取的固件是否是正常固件。
可选的,在本实施例的基础上,采用循环冗余校验CRC校验机制,验证出读取的固件是正常固件后,还可以去验证FW head中的标志位是否是预设的标志位,如果是预设的标志位,则进一步验证读取的固件是正常固件,如果不是预设的标志位,则说明读取的固件不是正常固件。
本实施例中,通过采用CRC校验机制验证读取的固件是否是正常固件,进而能够保证加载的固件是正常固件,保证了固件使用的安全性和稳定性,保证固态硬盘能够安全启动。
S12、加载第一存储位置中存储的固件。
加载第一存储位置中存储的固件,即为将第一存储位置中存储的固件读取出来。
S13、当第二存储位置中存储的固件是正常固件时,加载第二存储位置中存储的固件。
其中,第二存储位置中存储的固件为第一存储位置中存储的固件的备份。
需要说明的是,校验第二存储位置中存储的固件是否是正常固件,仍是采用CRC校验机制。
本实施例中,将固件分别存储在第一存储位置和第二存储位置,当第一存储位置或第二存储位置中的固件损坏时,可以使用另一个存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
在图1对应的实施例的基础上,固态硬盘还包括第三存储位置和第四存储位置;
其中,第三存储位置存储的固件与第一存储位置中存储的固件的版本不同,第二存储位置中存储的固件为第一存储位置中存储的固件的备份,第四存储位置存储有第三存储位置中存储的固件的备份。
具体的,固态硬盘中设置有第一位置和第二位置,其中,Nand Flash中的一个槽位的多个块作为第一位置。Nor Flash中的一个槽位的多个块作为第二位置。Nand Flash和Nor Flash为固态硬盘中的两个不同的存储位置、且Nand Flash和Nor Flash存储的介质不同。
第一位置包括第一存储位置和第三存储位置。将Nand Flash中的槽位的多个块平均分成第一存储位置和第三存储位置。其中,第一存储位置和第三存储位置中存储的固件的版本不同。第一存储位置和第三存储位置中存储的固件的版本不同,是为了能够同时存储两个不同版本的固件。
例如:第一存储位置占用空间为target 0-1,channel 0-7的每个block0,那么就一共有2*8*1=16个block。
第三存储位置占用空间为target 2-3,channel 0-7的每个block0,那么就一共有2*8*1=16个block。
确定出第一存储位置、第三存储位置后,就需要将固件分别写入第一存储位置和第三存储位置中。
第二位置包括第二存储位置和第四存储位置。具体的,将Nor Flash中的槽位的多个块平均分成第二存储位置和第四存储位置。
需要说明的是,将Nand Flash中的槽位的多个块平均分成第一存储位置和第三存储位置,以及将Nor Flash中的槽位的多个块平均分成第二存储位置和第四存储位置,是为了能够在第一存储位置、第三存储位置、第二存储位置和第四存储位置中均存储固件。
需要说明的是,本实施例中选择出了第一存储位置、第二存储位置、第三存储位置和第四存储位置后,还可以选择固态硬盘中的其他至少一个槽位来存储固件,其中,其他至少一个槽位的数量可以是一至六中的任一数值。
本实施例中,之所以确定出四个存储位置,是为了能够使固件存储在四个存储位置中,其中一个存储位置的固件损坏后,还可以使用其他的存储位置中的固件,降低了固件损坏对整个固态硬盘的影响。
可选的,当固态硬盘包括第一存储位置、第二存储位置、第三存储位置和第四存储位置时,加载方法还包括:
1)采用乒乓备份的方式,轮流更新第一存储位置和第三存储位置中存储的固件;其中,第三存储位置中存储的固件与第一存储位置中存储的固件的版本不同;
具体的,乒乓(ping-pongs)备份的方式,是指第一次更新第一存储位置中存储的固件,第二次更新第三存储位置中存储的固件,采用轮流更新第一存储位置和第三存储位置中存储的固件,是为了在第一存储位置和第三存储位置中能够同时保存两种版本的固件。
需要说明的是,当固件自身出现问题或者是固件出现了高版本的固件时,此时就需要更新固件。其中,更新固件是用户行为,只有在用户去更新固件时,固件才会进行更新,即固件不会自动更新。
需要说明的是,在第一次将固件写入第一存储位置和第三存储位置中时,第一存储位置和第三存储位置中存储的固件是相同,后期对固件进行更新,进而使第一存储位置和第三存储位置中存储的固件的版本不同。
2)根据更新后的第一存储位置和第三存储位置中存储的固件,相应的更新第二存储位置和第四存储位置中存储的固件;
其中,第二存储位置中存储的固件为第一存储位置中存储的固件的备份,第四存储位置存储有第三存储位置中存储的固件的备份。
第一存储位置与第二存储位置对应,第三存储位置与第四存储位置对应。
具体的,将更新后的第一存储位置存储的固件粘贴并替换了第二存储位置中存储的固件,将更新后的第三存储位置存储的固件粘贴并替换了第四存储位置中存储的固件。
设置第二存储位置和第四存储位置的目的就是为了第一存储位置或第三存储位置中的固件损坏时,还能够有备份的固件可以使用。
此外,轮流更新第一存储位置和第三存储位置中存储的固件后,还需要更新固件配置信息。
其中,固态硬盘中保存有一份固件配置信息,固件更新信息中记录有槽位数、最高版本存储位置信息和块数等信息,其中,槽位数是指固件存储的槽位都有哪些,最高版本存储位置信息是指最高版本的固件的存储位置,块数是指固件存储在哪些块中。
当第一存储位置或第三存储位置中存储的固件进行更新后,固件配置信息中的最高版本存储位置信息会发生改变,所以在第一存储位置或第三存储位置中存储的固件进行更新后,就需要更新固件配置信息。
本实施例中,采用乒乓备份的方式,轮流更新第一存储位置和第三存储位置中存储的固件,能够同时保留两个版本的固件,进而在更新固件中突然掉电或者是当前固件出现错误的情况下,可回退到之前的版本。
同时,相应的更新第二存储位置和第四存储位置中存储的固件,能够保证在第一存储位置和第三存储位置中存储的固件发生损坏时,还能够使用第二存储位置和第四存储位置中存储的备份固件。
可选的,参照图2,当第一存储位置中存储的固件不是正常固件时,验证第二存储位置中存储的固件不是正常固件,即需要执行步骤S23以及后续步骤。
S23、验证第二存储位置中存储的固件是否是正常固件,若验证出第二存储位置中存储的固件是正常固件,执行步骤S24,若验证出第二存储位置中存储的固件不是正常固件,执行步骤S25。
S24、加载第二存储位置中存储的固件;
S25、验证第三存储位置中存储的固件是否是正常固件;若验证出第三存储位置中存储的固件是正常固件,执行步骤S26,若验证出第三存储位置中存储的固件不是正常固件,执行步骤S27。
其中,采用CRC校验机制,验证第三存储位置中存储的固件是否是正常固件。
S26、加载第三存储位置中存储的固件;
S27、验证第四存储位置中存储的固件是否是正常固件;若验证出第四存储位置中存储的固件是正常固件,执行步骤S28,若验证出第四存储位置中存储的固件不是正常固件,执行步骤S29。
采用CRC校验机制,验证第四存储位置中存储的固件是否是正常固件。
S28、加载第四存储位置中存储的固件。
S29、加载预设位置中存储的出厂固件,或者,加载除第一存储位置、第二存储位置、第三存储位置和第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
具体的,预设位置为固态硬盘中的槽位slot1,slot1中保存有出厂固件,当验证出第一存储位置、第二存储位置、第三存储位置和第四存储位置中的固件均无法正常使用时,此时加载出厂固件。
或者,用户可以手动选择使用其他槽位中保存的正常固件。其中,可以选择除第一存储位置、第二存储位置、第三存储位置和第四存储位置之外的、且序号最小的存储位置中保存的正常固件,也可以采用其他规则选择其他存储位置中的正常固件。
本实施例中,当第一存储位置和第二存储位置中的固件损坏时,可以使用第三存储位置和第四存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
另外,还可以将固件保存在除第一存储位置、第二存储位置、第三存储位置和第四存储位置之外的其他存储位置,以及在槽位slot1保存出厂固件,这样当第一存储位置、第二存储位置、第三存储位置和第四存储位置中的固件出现损坏时,还能够加载其他位置中的正常固件,或者是加载出厂固件,提高了容错率。
可选的,本发明的另一实施例中提供了一种固件的加载装置,参照图3,包括:
检测模块101,用于检测第一存储位置中存储的固件是否是正常固件;其中,第一存储位置为与最高版本存储位置信息对应的存储位置;
第一加载模块102,用于若检测模块101检测出第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载第二存储位置中存储的固件。
可选的,在本实施例的基础上,检测模块101用于检测第一存储位置中存储的固件是否是正常固件时,具体用于:
采用循环冗余校验CRC校验机制,验证第一存储位置中存储的固件是否是正常固件。
本实施例中,将固件分别存储在第一存储位置和第二存储位置,当第一存储位置或第二存储位置中的固件损坏时,可以使用另一个存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的对应说明,在此不再赘述。
可选的,在图3对应的实施例的基础上,加载装置还包括:
第一更新模块,用于采用乒乓备份的方式,轮流更新第一存储位置和第三存储位置中存储的固件;其中,第三存储位置中存储的固件与第一存储位置中存储的固件的版本不同;
第二更新模块,用于根据更新后的第一存储位置和第三存储位置中存储的固件,相应的更新第二存储位置和第四存储位置中存储的固件;
其中,第二存储位置中存储的固件为第一存储位置中存储的固件的备份,第四存储位置存储有第三存储位置中存储的固件的备份。
本实施例中,采用乒乓备份的方式,轮流更新第一存储位置和第三存储位置中存储的固件,能够同时保留两个版本的固件,进而在更新固件中突然掉电或者是当前固件出现错误的情况下,可回退到之前的版本。
同时,相应的更新第二存储位置和第四存储位置中存储的固件,能够保证在第一存储位置和第三存储位置中存储的固件发生损坏时,还能够使用第二存储位置和第四存储位置中存储的备份固件。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的对应说明,在此不再赘述。
可选的,在图3对应的实施例的基础上,
当第二存储位置中存储的固件不是正常固件时,还包括:
第一验证模块103,用于验证第三存储位置中存储的固件是否是正常固件;
第二加载模块104,用于若第一验证模块103验证出第三存储位置中存储的固件是正常固件,加载第三存储位置中存储的固件;
第二验证模块105,用于若第一验证模块103验证出第三存储位置中存储的固件不是正常固件,验证第四存储位置中存储的固件是否是正常固件;
第三加载模块106,用于若第二验证模块105验证出第四存储位置中存储的固件是正常固件,加载第四存储位置中存储的固件。
第四加载模块107,用于若第二验证模块105验证出第四存储位置中存储的固件不是正常固件,加载预设位置中存储的出厂固件,或者,加载除第一存储位置、第二存储位置、第三存储位置和第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
本实施例中,当第一存储位置和第二存储位置中的固件损坏时,可以使用第三存储位置和第四存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
另外,还可以将固件保存在除第一存储位置、第二存储位置、第三存储位置和第四存储位置之外的其他存储位置,以及在槽位slot1保存出厂固件,这样当第一存储位置、第二存储位置、第三存储位置和第四存储位置中的固件出现损坏时,还能够加载其他位置中的正常固件,或者是加载出厂固件,提高了容错率。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的对应说明,在此不再赘述。
可选的,本发明的另一实施例中提供了一种电子设备,包括存储器和处理器;
其中,存储器用于存储程序;
处理器用于调用程序,其中,程序用于:
检测第一存储位置中存储的固件是否是正常固件;其中,第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载第二存储位置中存储的固件。
本实施例中,将固件分别存储在第一存储位置和第二存储位置,当第一存储位置或第二存储位置中的固件损坏时,可以使用另一个存储位置中的固件,解决了现有技术中的固件损坏时,固态硬盘将不能正常运行的问题。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种固件的加载方法,其特征在于,包括:
检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件;
采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
2.根据权利要求1所述的加载方法,其特征在于,当所述第二存储位置中存储的固件不是正常固件时,还包括:
验证所述第三存储位置中存储的固件是否是正常固件;
若验证出所述第三存储位置中存储的固件是正常固件,加载所述第三存储位置中存储的固件;
若验证出所述第三存储位置中存储的固件不是正常固件,验证所述第四存储位置中存储的固件是否是正常固件;
若验证出所述第四存储位置中存储的固件是正常固件,加载所述第四存储位置中存储的固件。
3.根据权利要求2所述的加载方法,其特征在于,若验证出所述第四存储位置中存储的固件不是正常固件后,还包括:
加载预设位置中存储的出厂固件;
或者,加载除所述第一存储位置、所述第二存储位置、所述第三存储位置和所述第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
4.根据权利要求1所述的加载方法,其特征在于,所述检测第一存储位置中存储的固件是否是正常固件,包括:
采用循环冗余校验CRC校验机制,验证所述第一存储位置中存储的固件是否是正常固件。
5.一种固件的加载装置,其特征在于,包括:
检测模块,用于检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
第一加载模块,用于若所述检测模块检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件;
第一更新模块,用于采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
第二更新模块,用于根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
6.根据权利要求5所述的加载装置,其特征在于,当所述第二存储位置中存储的固件不是正常固件时,还包括:
第一验证模块,用于验证所述第三存储位置中存储的固件是否是正常固件;
第二加载模块,用于若所述第一验证模块验证出所述第三存储位置中存储的固件是正常固件,加载所述第三存储位置中存储的固件;
第二验证模块,用于若所述第一验证模块验证出所述第三存储位置中存储的固件不是正常固件,验证所述第四存储位置中存储的固件是否是正常固件;
第三加载模块,用于若所述第二验证模块验证出所述第四存储位置中存储的固件是正常固件,加载所述第四存储位置中存储的固件。
7.根据权利要求6所述的加载装置,其特征在于,还包括:
第四加载模块,用于若所述第二验证模块验证出所述第四存储位置中存储的固件不是正常固件,加载预设位置中存储的出厂固件,或者,加载除所述第一存储位置、所述第二存储位置、所述第三存储位置和所述第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
8.一种电子设备,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储程序;
处理器用于调用程序,其中,所述程序用于:
检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件;
采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710523744.5A CN107315616B (zh) | 2017-06-30 | 2017-06-30 | 一种固件的加载方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710523744.5A CN107315616B (zh) | 2017-06-30 | 2017-06-30 | 一种固件的加载方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107315616A CN107315616A (zh) | 2017-11-03 |
CN107315616B true CN107315616B (zh) | 2020-08-21 |
Family
ID=60180992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710523744.5A Active CN107315616B (zh) | 2017-06-30 | 2017-06-30 | 一种固件的加载方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107315616B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943526A (zh) * | 2017-12-08 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种基于服务器实现快速开机启动的方法及系统 |
CN108762797A (zh) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种ssd固件在线更新方法、系统及ssd |
CN109471642A (zh) * | 2018-11-15 | 2019-03-15 | 北京行易道科技有限公司 | 固件生成存储方法及装置、固件启动方法及装置 |
CN109814908A (zh) * | 2019-01-17 | 2019-05-28 | 深圳忆联信息系统有限公司 | 固件稳定升级的方法、装置、计算机设备及存储介质 |
CN112996026B (zh) * | 2021-04-27 | 2021-09-10 | 深圳市乙辰科技股份有限公司 | 一种无线网络设备的双备份升级方法及系统 |
CN113448760B (zh) * | 2021-06-05 | 2023-03-10 | 山东英信计算机技术有限公司 | 一种硬盘异常状态的恢复方法、系统、设备以及介质 |
CN113641382A (zh) * | 2021-07-27 | 2021-11-12 | 瑞芯微电子股份有限公司 | 可分区系统更新方法及存储介质 |
CN114464231B (zh) * | 2022-01-14 | 2024-02-13 | 苏州浪潮智能科技有限公司 | 一种固件存储方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI248581B (en) * | 2000-07-05 | 2006-02-01 | Mustek Systems Inc | Renewing an firmware of computer system |
CN102622249A (zh) * | 2012-03-05 | 2012-08-01 | 山东华芯半导体有限公司 | 一种防止cpu自锁的安全启动方法 |
CN102857358A (zh) * | 2011-06-29 | 2013-01-02 | 环旭电子股份有限公司 | 可修复固件的客户端设备及其固件修复方法 |
CN204883674U (zh) * | 2015-04-30 | 2015-12-16 | 西门子(深圳)磁共振有限公司 | 现场可编程门阵列的配置电路、射频单元和磁共振系统 |
US9229809B2 (en) * | 2011-09-11 | 2016-01-05 | Microsoft Technology Licensing Llc | Nonvolatile media journaling of verified data sets |
CN106020875A (zh) * | 2016-05-16 | 2016-10-12 | 北京奇虎科技有限公司 | 嵌入式终端的固件更新管理方法和装置 |
CN106776122A (zh) * | 2016-11-23 | 2017-05-31 | 武汉光迅科技股份有限公司 | 一种基于Flash启动过程中主备保护的方法 |
CN106802813A (zh) * | 2016-12-06 | 2017-06-06 | 智车优行科技(北京)有限公司 | 用于空中固件升级的方法、装置及车辆 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8590040B2 (en) * | 2010-12-22 | 2013-11-19 | Intel Corporation | Runtime platform firmware verification |
TW201301133A (zh) * | 2011-06-29 | 2013-01-01 | Universal Scient Ind Shanghai | 可修復韌體的用戶端設備及其韌體修復方法 |
-
2017
- 2017-06-30 CN CN201710523744.5A patent/CN107315616B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI248581B (en) * | 2000-07-05 | 2006-02-01 | Mustek Systems Inc | Renewing an firmware of computer system |
CN102857358A (zh) * | 2011-06-29 | 2013-01-02 | 环旭电子股份有限公司 | 可修复固件的客户端设备及其固件修复方法 |
US9229809B2 (en) * | 2011-09-11 | 2016-01-05 | Microsoft Technology Licensing Llc | Nonvolatile media journaling of verified data sets |
CN102622249A (zh) * | 2012-03-05 | 2012-08-01 | 山东华芯半导体有限公司 | 一种防止cpu自锁的安全启动方法 |
CN204883674U (zh) * | 2015-04-30 | 2015-12-16 | 西门子(深圳)磁共振有限公司 | 现场可编程门阵列的配置电路、射频单元和磁共振系统 |
CN106020875A (zh) * | 2016-05-16 | 2016-10-12 | 北京奇虎科技有限公司 | 嵌入式终端的固件更新管理方法和装置 |
CN106776122A (zh) * | 2016-11-23 | 2017-05-31 | 武汉光迅科技股份有限公司 | 一种基于Flash启动过程中主备保护的方法 |
CN106802813A (zh) * | 2016-12-06 | 2017-06-06 | 智车优行科技(北京)有限公司 | 用于空中固件升级的方法、装置及车辆 |
Also Published As
Publication number | Publication date |
---|---|
CN107315616A (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107315616B (zh) | 一种固件的加载方法、装置及电子设备 | |
US9286164B2 (en) | Electronic device to restore MBR, method thereof, and computer-readable medium | |
US8171379B2 (en) | Methods, systems and media for data recovery using global parity for multiple independent RAID levels | |
US8793530B2 (en) | Controlling a solid state disk (SSD) device | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
US11163886B2 (en) | Information handling system firmware bit error detection and correction | |
CN106021002B (zh) | 一种嵌入式设备数据读写方法及装置 | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN103970481A (zh) | 重建存储器阵列的方法和装置 | |
CN102467440A (zh) | 内存错误检测系统及方法 | |
US9690651B2 (en) | Controlling a redundant array of independent disks (RAID) that includes a read only flash data storage device | |
CN108932249B (zh) | 一种管理文件系统的方法及装置 | |
US20150186207A1 (en) | Method and processor for writing and error tracking log subsystem of file system | |
CN106775610A (zh) | 一种电子设备启动方法及一种电子设备 | |
US20140089653A1 (en) | Electronic apparatus, method of restoring guid partition table (gpt) and computer-readable recording medium | |
CN112015447A (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
US9280431B2 (en) | Prioritizing backups on a disk level within enterprise storage | |
US20140156943A1 (en) | Information processing apparatus, information processing method, and program | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
US20190354433A1 (en) | Parity log with by-pass | |
CN102520223A (zh) | 用于电能表的软件抗干扰方法 | |
JP2011008663A (ja) | ストレージ制御装置及びストレージ装置のデータ回復方法 | |
CN110795155B (zh) | 系统启动方法及装置、电子设备、存储介质 | |
CN112540799A (zh) | 启动数据的管理方法、系统、终端设备及存储介质 | |
CN111783162A (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 |
Effective date of registration: 20200723 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |