CN107315616A - 一种固件的加载方法、装置及电子设备 - Google Patents

一种固件的加载方法、装置及电子设备 Download PDF

Info

Publication number
CN107315616A
CN107315616A CN201710523744.5A CN201710523744A CN107315616A CN 107315616 A CN107315616 A CN 107315616A CN 201710523744 A CN201710523744 A CN 201710523744A CN 107315616 A CN107315616 A CN 107315616A
Authority
CN
China
Prior art keywords
storage location
firmware
stored
normal
storage
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.)
Granted
Application number
CN201710523744.5A
Other languages
English (en)
Other versions
CN107315616B (zh
Inventor
毕延帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710523744.5A priority Critical patent/CN107315616B/zh
Publication of CN107315616A publication Critical patent/CN107315616A/zh
Application granted granted Critical
Publication of CN107315616B publication Critical patent/CN107315616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing 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 (10)

1.一种固件的加载方法,其特征在于,包括:
检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件。
2.根据权利要求1所述的加载方法,其特征在于,所述加载方法还包括:
采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和所述第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
3.根据权利要求2所述的加载方法,其特征在于,当所述第二存储位置中存储的固件不是正常固件时,还包括:
验证所述第三存储位置中存储的固件是否是正常固件;
若验证出所述第三存储位置中存储的固件是正常固件,加载所述第三存储位置中存储的固件;
若验证出所述第三存储位置中存储的固件不是正常固件,验证所述第四存储位置中存储的固件是否是正常固件;
若验证出所述第四存储位置中存储的固件是正常固件,加载所述第四存储位置中存储的固件。
4.根据权利要求3所述的加载方法,其特征在于,若验证出所述第四存储位置中存储的固件不是正常固件后,还包括:
加载预设位置中存储的出厂固件;
或者,加载除所述第一存储位置、所述第二存储位置、所述第三存储位置和所述第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
5.根据权利要求1所述的加载方法,其特征在于,所述检测第一存储位置中存储的固件是否是正常固件,包括:
采用循环冗余校验CRC校验机制,验证所述第一存储位置中存储的固件是否是正常固件。
6.一种固件的加载装置,其特征在于,包括:
检测模块,用于检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
第一加载模块,用于若所述检测模块检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件。
7.根据权利要求6所述的加载装置,其特征在于,所述加载装置还包括:
第一更新模块,用于采用乒乓备份的方式,轮流更新所述第一存储位置和第三存储位置中存储的固件;其中,所述第三存储位置中存储的固件与所述第一存储位置中存储的固件的版本不同;
第二更新模块,用于根据更新后的所述第一存储位置和所述第三存储位置中存储的固件,相应的更新所述第二存储位置和所述第四存储位置中存储的固件;
其中,所述第二存储位置中存储的固件为所述第一存储位置中存储的固件的备份,所述第四存储位置存储有所述第三存储位置中存储的固件的备份。
8.根据权利要求7所述的加载装置,其特征在于,当所述第二存储位置中存储的固件不是正常固件时,还包括:
第一验证模块,用于验证所述第三存储位置中存储的固件是否是正常固件;
第二加载模块,用于若所述第一验证模块验证出所述第三存储位置中存储的固件是正常固件,加载所述第三存储位置中存储的固件;
第二验证模块,用于若所述第一验证模块验证出所述第三存储位置中存储的固件不是正常固件,验证所述第四存储位置中存储的固件是否是正常固件;
第三加载模块,用于若所述第二验证模块验证出所述第四存储位置中存储的固件是正常固件,加载所述第四存储位置中存储的固件。
9.根据权利要求8所述的加载装置,其特征在于,还包括:
第四加载模块,用于若所述第二验证模块验证出所述第四存储位置中存储的固件不是正常固件,加载预设位置中存储的出厂固件,或者,加载除所述第一存储位置、所述第二存储位置、所述第三存储位置和所述第四存储位置之外的、且序号最小的存储位置中保存的正常固件。
10.一种电子设备,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储程序;
处理器用于调用程序,其中,所述程序用于:
检测第一存储位置中存储的固件是否是正常固件;其中,所述第一存储位置为与最高版本存储位置信息对应的存储位置;
若检测出所述第一存储位置中存储的固件不是正常固件,且当第二存储位置中存储的固件是正常固件时,加载所述第二存储位置中存储的固件。
CN201710523744.5A 2017-06-30 2017-06-30 一种固件的加载方法、装置及电子设备 Active CN107315616B (zh)

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 true CN107315616A (zh) 2017-11-03
CN107315616B 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)

Cited By (8)

* Cited by examiner, † Cited by third party
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 深圳忆联信息系统有限公司 固件稳定升级的方法、装置、计算机设备及存储介质
CN112996026A (zh) * 2021-04-27 2021-06-18 深圳市乙辰科技股份有限公司 一种无线网络设备的双备份升级方法及系统
CN113448760A (zh) * 2021-06-05 2021-09-28 山东英信计算机技术有限公司 一种硬盘异常状态的恢复方法、系统、设备以及介质
CN113641382A (zh) * 2021-07-27 2021-11-12 瑞芯微电子股份有限公司 可分区系统更新方法及存储介质
CN114464231A (zh) * 2022-01-14 2022-05-10 苏州浪潮智能科技有限公司 一种固件存储方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
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
US20120167205A1 (en) * 2010-12-22 2012-06-28 Ghetie Sergiu D Runtime platform firmware verification
CN102622249A (zh) * 2012-03-05 2012-08-01 山东华芯半导体有限公司 一种防止cpu自锁的安全启动方法
CN102857358A (zh) * 2011-06-29 2013-01-02 环旭电子股份有限公司 可修复固件的客户端设备及其固件修复方法
US20130007724A1 (en) * 2011-06-29 2013-01-03 Universal Global Scientific Industrial Co., Ltd. Firmware repairable customer premises equipment and firmware repairing method thereof
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 智车优行科技(北京)有限公司 用于空中固件升级的方法、装置及车辆

Patent Citations (10)

* Cited by examiner, † Cited by third party
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
US20120167205A1 (en) * 2010-12-22 2012-06-28 Ghetie Sergiu D Runtime platform firmware verification
CN102857358A (zh) * 2011-06-29 2013-01-02 环旭电子股份有限公司 可修复固件的客户端设备及其固件修复方法
US20130007724A1 (en) * 2011-06-29 2013-01-03 Universal Global Scientific Industrial Co., Ltd. Firmware repairable customer premises equipment and firmware repairing method thereof
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 智车优行科技(北京)有限公司 用于空中固件升级的方法、装置及车辆

Cited By (11)

* Cited by examiner, † Cited by third party
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 深圳忆联信息系统有限公司 固件稳定升级的方法、装置、计算机设备及存储介质
CN112996026A (zh) * 2021-04-27 2021-06-18 深圳市乙辰科技股份有限公司 一种无线网络设备的双备份升级方法及系统
CN112996026B (zh) * 2021-04-27 2021-09-10 深圳市乙辰科技股份有限公司 一种无线网络设备的双备份升级方法及系统
CN113448760A (zh) * 2021-06-05 2021-09-28 山东英信计算机技术有限公司 一种硬盘异常状态的恢复方法、系统、设备以及介质
CN113448760B (zh) * 2021-06-05 2023-03-10 山东英信计算机技术有限公司 一种硬盘异常状态的恢复方法、系统、设备以及介质
CN113641382A (zh) * 2021-07-27 2021-11-12 瑞芯微电子股份有限公司 可分区系统更新方法及存储介质
CN114464231A (zh) * 2022-01-14 2022-05-10 苏州浪潮智能科技有限公司 一种固件存储方法及系统
CN114464231B (zh) * 2022-01-14 2024-02-13 苏州浪潮智能科技有限公司 一种固件存储方法及系统

Also Published As

Publication number Publication date
CN107315616B (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
CN107315616A (zh) 一种固件的加载方法、装置及电子设备
US9767035B2 (en) Pass-through tape access in a disk storage environment
US20130232325A1 (en) Electronic device to restore mbr, method thereof, and computer-readable medium
CN101978357A (zh) 数据更新方法、存储器系统和存储器设备
CN104182701B (zh) 一种阵列控制器、阵列和数据处理方法
CN103019880B (zh) 一种数据校验方法及存储设备、存储系统
US10572335B2 (en) Metadata recovery method and apparatus
CN112631516B (zh) 一种具有寿命管理的flash文件管理系统
US9087014B1 (en) Tape backup and restore in a disk storage environment
US10340025B2 (en) Data-storage device and block-releasing method
US10042570B2 (en) Tape backup and restore in a disk storage environment with intelligent data placement
US8788800B2 (en) OS processing method, system and non-transitory computer readable storage medium thereof
CN107402843A (zh) 数据库损坏的恢复方法、装置和设备
CN114924923A (zh) 一种硬盘写入点正确性验证方法、系统、设备及介质
CN107863127A (zh) 一种存储设备存储单元选择方法及装置
US7577804B2 (en) Detecting data integrity
CN112825098A (zh) 数据保护方法、装置、计算设备及存储介质
CN102969026B (zh) 基于数据处理系统的移动存储设备检测方法和装置
CN102956270B (zh) 移动存储设备检测方法和装置
US20140258810A1 (en) Error correction code seeding
CN116301665B (zh) 计量数据存储方法、装置、计算机设备及存储介质
US7810012B1 (en) Format for randomized data block in a storage device
JP5435143B2 (ja) ドライブ制御装置、ドライブ制御方法およびストレージ装置
JP5786702B2 (ja) セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム
CN110321073B (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: 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.

GR01 Patent grant
GR01 Patent grant