片上多备份的高可靠嵌入式系统固件及其工作方法

文档序号:6332986阅读:180来源:国知局
专利名称:片上多备份的高可靠嵌入式系统固件及其工作方法
技术领域
本发明涉及一种片上多备份的高可靠嵌入式系统固件及其工作方法,属于嵌入式 系统技术领域。
背景技术
目前在嵌入式系统中1、NAND FLASH 的特点NAND FLASH芯片是以块(BLOCK)为基本单位擦写的。不同类型的FLASH芯片,块 大小的容量不同,从8K BYTE到128K BYTE不等,其中第一个块具有特别重要的地位。在 FLASH芯片的加电过程中,会检测第一个块的状况,从第一个块开始上电初始化。如果第一 个块损坏,对FLASH芯片的硬件检测就认为是不可修复的芯片损坏,使整个FLASH芯片都不可用。2、CRC和MD5校验算法在数据存储领域,为了保证数据的正确,就不得不采用检错手段。在诸多检错手段 和保证数据完整方面,CRC和MD5是比较著名的。CRC(Cyclical Redundancy Check)是循环冗余检验,实际应用时,发送装置计算 出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的 CRC相比较,根据异同检错;MD5 (Message Digest Algorithm MD5)是消息摘要的第五版, 是计算机安全领域广泛使用的一种散列函数,通过对一段信息(Message)产生信息摘要 (Message-Digest),然后对比摘要的方式,保证数据的完整性。3、DES加解密算法DES (Data Encryption Algorithm)数据加密算法,利用多次组合迭代算法和换位 算法,把明文编制成保密强度较高的密文。4、嵌入式系统启动加载程序(Bootloader)的启动过程如附图1所示,启动加载程序的启动一般分为两个阶段(分别简写为stagel和 stage 2), stage 1是依赖硬件体系结构的部分,主要是硬件检测和初始化;stage 2实现 检测和初始化外设等的更复杂功能,读取系统参数,引导操作系统内核。当今,上述各项技术已经发展成熟,并已经在工业界得到了一定的实际应用,但是 没有将它们应用到嵌入式领域。

发明内容
本发明的目的就是针对上述现有技术的不足,为了提高固件的可靠性和安全性, 提供一种片上多备份的高可靠嵌入式系统固件及其工作方法。为实现上述目的,本发明采用如下技术方案一种片上多备份的高可靠嵌入式系统固件,它包括嵌入式系统存储设备,所述存 储设备的上电加载地址处设有预启动程序;在随后的存储地址上依次存储有多个启动加载
3程序,在最后启动加载程序后的存储地址上则依次存放多个操作系统内核映象。一种片上多备份的高可靠嵌入式系统固件的工作方法,它的步骤为1)上电启动系统,开始运行预启动程序;2)预启动程序完成基本硬件的检测和初始化,然后按照预先设定的顺序根据校验 算法依次对存储的启动加载程序进行校验;若遇到没有错误的则停止校验,并加载运行这 个程序;若没有正确的则不启动系统;3)启动加载程序准备好系统运行的环境,按照预先设定的顺序根据校验算法依次 对存储的操作系统内核映像进行校验,若遇到没有错误的映像则停止校验,进入下一个阶 段,对此映像解密;若没有正确的则不启动系统。所述步骤2)和步骤3)中的校验算法均采用CRC或者MD5校验算法。所述步骤3)中,映像解密的过程为首先用选定的加密算法对操作系统内核映像 进行加密,然后将加密后的映像存储到嵌入式设备的相应存储地址中;启动时,先用与加密 算法相对应的解密算法进行解密,经判别后,启动此操作系统内核映像。本发明的片上多备份的高可靠嵌入式系统固件,其中具有预启动程序(Pre-Boot) 及校验码,全部存放到FLASH的第一个块中。在嵌入式系统存储设备的上电加载地址处 依次存放一个预启动程序(Pre-Boot)、多个启动加载程序(Bootloader)、多个操作系统内 核(OS Kernel)映像。由预启动程序(Pre-Boot)完成基本硬件的检测和初始化,并对后 面多个启动加载程序(Bootloader)进行校验,选择一个正确的加载运行;由启动加载程序 (Bootloader)准备好系统运行环境,完成对多个操作系统内核映像的校验,并选择一个正 确的映像进行解密和运行。基于预启动程序(Pre-Boot),嵌入式系统的启动加载过程如下(1)启动预启动程序(Pre-Boot),校验和选择启动加载程序(Bootloader)由于预启动程序放到了存储设备的上电加载地址处部分,上电启动系统后,预启 动程序会首先得到运行首先实现启动加载程序的stage 1的功能,完成基本硬件的检 测和初始化;然后对多个启动加载程序的校验和选择,根据校验算法(CRC或者MD5)依 次对存储的启动加载程序(Bootloader)进行校验,选择一个通过校验的启动加载程序 (Bootloader)力口载运行。由于需要保证校验码和预启动程序(Pre-Boot)存放的位置可靠、安全,而根据 NAND FLASH的特点,所以将其全部存放到FLASH的第一个块中。(2)多个操作系统内核映像的校验和选择启动加载程序(Bootloader)按照预先设定的顺序根据校验算法(CRC或者MD5) 依次对存储的操作系统内核映像进行校验,选择一个通过校验的操作系统内核映像启动系 统。(3)操作系统内核映像的解密加载首先用一定的加密算法(如DES)对操作系统内核映像进行加密,然后将加密后的 映像存储到嵌入式设备中。启动时,先用解密算法进行解密,经判别后,启动此操作系统内 核映像。本发明的有益效果是将上述各项功能结合在一起,整合在一个嵌入式产品中, 得到片上多备份的高可靠嵌入式系统固件预启动程序(Pre-Boot)存放到FLASH的第一个块中,基于FLASH第一个块的高稳定性可以保证预启动程序的可靠性;启动加载程序 (Bootloader)的备份,可以确保在有启动加载程序因为出现坏块损坏时,预启动程序依然 可以找到一个正确的启动加载程序执行;操作系统内核映像的备份,同样可以保证在有内 核映像损坏时,启动加载程序可以找到一个正确的映像启动系统;对操作系统内核的加密, 使得只有在知道解密算法的前提下才能启动系统,这样进一步保证了系统的安全性。


图1是现有主流嵌入式设备的映像存储结构图;图2是本发明的映像存储结构图;图3是本发明的流程图。其中,1上电加载地址,2存储地址。
具体实施例方式下面结合附图和实施例对本发明做进一步说明。实施例图2中,片上多备份的高可靠嵌入式系统固件,在嵌入式系统存储设备的上电加 载地址1处存储一段预启动程序Pre-Boot,后面的存储地址2中依次存储多个启动加载 程序(Bootloaderl和Bootloaderf),然后的存储地址2存放多个操作系统内核映像(OS Kernel_l和 OS Kernel_2)。图3中,一种片上多备份的高可靠嵌入式系统固件的工作方法如下1)上电启动系统,开始运行预启动程序Pre-Boot。2)预启动程序完成基本硬件的检测和初始化,然后校验第一个启动加载程序 (Bootloaderl),判断其CRC校验码(或者MD5值)是否与先前存放的CRC校验码(或者 MD5值)相同,若相同证明此启动加载程序正确,进入下一个步骤;若不同,说明此启动加载 程序错误,然后以同样的方式校验第二个启动加载程序(Bootloaderf),若校验正确则进入 下一个步骤,否则系统启动失败(不启动系统)。3)启动加载程序准备好系统运行的环境,开始校验第一个操作系统内核映像(0S Kernel 1),判断其CRC校验码(或者MD5值)是否与先前存放的值相同,若相同则进行解 密,解密成功则运行第一个操作系统内核映像,启动系统直到关机;校验出错或者解密出错 都进入第二个操作系统内核映像(OSKernel 2)的校验过程,校验采取同样的方式,校验正 确则进行解密,解密成功则启动系统,不论是校验错还是解密不成功,都不启动系统。
权利要求
一种片上多备份的高可靠嵌入式系统固件,它包括嵌入式系统存储设备,其特征是,所述存储设备的上电加载地址处设有预启动程序;在随后的存储地址上依次存储有多个启动加载程序,在最后启动加载程序后的存储地址上则依次存放多个操作系统内核映象。
2.—种权利要求1所述的片上多备份的高可靠嵌入式系统固件的工作方法,其特征 是,它的步骤为1)上电启动系统,开始运行预启动程序;2)预启动程序完成基本硬件的检测和初始化,然后按照预先设定的顺序根据校验算法 依次对存储的启动加载程序进行校验;若遇到没有错误的则停止校验,并加载运行这个程 序;若没有正确的则不启动系统;3)启动加载程序准备好系统运行的环境,按照预先设定的顺序根据校验算法依次对存 储的操作系统内核映像进行校验,若遇到没有错误的映像则停止校验,进入下一个阶段,对 此映像解密;若没有正确的则不启动系统。
3.如权利要求2所述的片上多备份的高可靠嵌入式系统固件的工作方法,其特征是, 所述步骤2)和步骤3)中的校验算法均采用CRC或者MD5校验算法。
4.如权利要求2所述的片上多备份的高可靠嵌入式系统固件的工作方法,其特征是, 所述步骤3)中,映像解密的过程为首先用选定的加密算法对操作系统内核映像进行加 密,然后将加密后的映像存储到嵌入式设备的相应存储地址中;启动时,先用与加密算法相 对应的解密算法进行解密,经判别后,启动此操作系统内核映像。
全文摘要
本发明涉及一种片上多备份的高可靠嵌入式系统固件及其工作方法,提高固件的可靠性和安全性。它包括嵌入式系统存储设备,所述存储设备的上电加载地址处设有预启动程序;在随后的存储地址上依次存储有多个启动加载程序,在最后启动加载程序后的存储地址上则依次存放多个操作系统内核映象。
文档编号G06F9/445GK101944051SQ201010295940
公开日2011年1月12日 申请日期2010年9月29日 优先权日2010年9月29日
发明者尹红飞, 张小敏, 戴鸿君, 贾智平 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1