[发明专利]片上多备份的高可靠嵌入式系统固件及其工作方法无效
申请号: | 201010295940.X | 申请日: | 2010-09-29 |
公开(公告)号: | CN101944051A | 公开(公告)日: | 2011-01-12 |
发明(设计)人: | 戴鸿君;尹红飞;张小敏;贾智平 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F9/445 |
代理公司: | 济南圣达专利商标事务所有限公司 37221 | 代理人: | 张勇 |
地址: | 250100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 片上多 备份 可靠 嵌入式 系统 及其 工作 方法 | ||
技术领域
本发明涉及一种片上多备份的高可靠嵌入式系统固件及其工作方法,属于嵌入式系统技术领域。
背景技术
目前在嵌入式系统中:
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所示,启动加载程序的启动一般分为两个阶段(分别简写为stage1和stage 2),stage 1是依赖硬件体系结构的部分,主要是硬件检测和初始化;stage 2实现检测和初始化外设等的更复杂功能,读取系统参数,引导操作系统内核。
当今,上述各项技术已经发展成熟,并已经在工业界得到了一定的实际应用,但是没有将它们应用到嵌入式领域。
发明内容
本发明的目的就是针对上述现有技术的不足,为了提高固件的可靠性和安全性,提供一种片上多备份的高可靠嵌入式系统固件及其工作方法。
为实现上述目的,本发明采用如下技术方案:
一种片上多备份的高可靠嵌入式系统固件,它包括嵌入式系统存储设备,所述存储设备的上电加载地址处设有预启动程序;在随后的存储地址上依次存储有多个启动加载程序,在最后启动加载程序后的存储地址上则依次存放多个操作系统内核映象。
一种片上多备份的高可靠嵌入式系统固件的工作方法,它的步骤为:
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)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010295940.X/2.html,转载请声明来源钻瓜专利网。