一种嵌入式设备的启动方法及软件升级方法技术

技术编号:2827956 阅读:273 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种嵌入式设备的启动方法及软件升级方法,通过对单片闪存芯片的存储空间进行逻辑分区,划分为一个控制信息区、互为备份的第一镜像区及第二镜像区,所述嵌入式设备启动时能够将第一镜像区或第二镜像区中可用的镜像数据加载到设备内存中,并能够对无效的镜像区提供升级。使用本发明专利技术的方法,简化了硬件电路设计的复杂性,实现了嵌入式设备用单片闪存的安全运行和对设备进行安全升级。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统(ES)的支撑技术,尤其涉及一种嵌入式设备的启 动方法及软件升级方法。
技术介绍
ES是以应用为中心、以计算机技术为基础,并且软硬件可裁剪,适用于应 用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它 一般由嵌入式微处理器(EMPU)、外围硬件设备、嵌入式操作系统(EOS)以 及各种应用程序组成。ES与普通的个人计算机(PC)的应用系统不同,即使 是针对不同的具体应用而设计的ES之间差别也很大。 一般地,ES功能相对比 较单一,且在兼容性方面要求不高。嵌入式设备在启动、正常运行及进行软件升级过程中,均需要调用硬件系 统存储器中的操作系统软件以及具有特定功能的应用程序,即镜像文件。嵌入式设备在启动过程中,需从镜像文件中读取相应的应用程序。采用可 擦写的存储器提供运行程序的镜像文件,为实现设备在线升级功能提供了方便。 但嵌入式设备在升级过程中,往往存在某些原因,如误操作、突然断电等, 造成升级过程意外中断,这又要求对软件升级过程的安全性才是供可靠的保障, 以防止一个镜像文件被改写的同时,保证另 一个升级前的镜像文件是安全的、 完整的备份。通常的做法是采用两片存储器件 一片选用只读存储器(ROM),内部存 放安全模式的镜像文件;另一片选用可读可写的闪存(Flash Memory)作为升 级专用存储器,内部存放升级镜像文件。这种方式虽然升级的实现过程比较简 单,但存在如下缺点需要增加外围电路才能使两套存储器件共存,增加了硬件的复杂性;使用两片存储器件,增大了成本投入;安全模式下嵌入式设备不 能进行升级。实际使用中某些操作必须在安全模式下进行,而有时设备在安全 模式下也需要进行软件更新,这给设备的正常使用造成许多不便。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种嵌入式设备的启动方法,提高 了嵌入式设备启动的可靠性。本专利技术的另一个目的在于提供一种嵌入式设备的升级方法,在简化设备硬 件系统中存储器外围电路的同时,使嵌入式设备能够实现安全升级。为达到上述目的,本专利技术的技术方案是这样实现的一种嵌入式设备的启动方法,将设备内部用于存储镜像数据的闪存划分为 控制信息区、第一镜像区及第二镜像区三个逻辑分区;其中,控制信息区中包 括有当前镜像区状态标志、第一镜像区的属性及第二镜像区的属性;第一镜像 区及第二镜像区中均包括有镜像数据及镜像加载计数器;该方法还包括a、 检查每个镜像区的镜像加载计数器值是否超过预设阈值,若超过,贝'j将 该镜像区设置为无效,然后执行步骤b;否则,直接执行步骤b;b、 读取所选择的当前镜像区状态标志,判断所述镜像区是否为主用,若为 备用,则执行步骤c;否则,执行步骤d;c、 判断备用镜像区的镜像数据是否可用,若可用,则执行步骤d,否则, 退出本次启动过程,等待对该备用镜像区进行升级;d、 将可用的镜像数据以及与硬件相关的初始启动代码加载到所述嵌入式设 备的内存中。其中,所述步骤d之前进一步包括将所述待加载镜像区的镜像加载计数 器值加1 。所述步骤d之后进一步包括将所述镜像区的镜像加载计数器值清零。 所述控制信息区设置于闪存内的任一位置。 所述第 一镜像区与第二镜像区的容量相同。所述当前镜像区状态标志为主用状态或备用状态。所述第 一镜像区及第二镜像区的属性,至少包括存储第 一镜像区和第. 一-镜 像区的起始位置、长度、有效性、版本号。所述镜像数据包括使嵌入式设备进行工作的软件、软件运行所需工作空间 及用户数据所占的空间。所述镜像加载计数器的计数过程为当镜像数据成功加载到内存,则计数 值清零;否则若装载失败,则镜像加载计数值自动加1。一种嵌入式设备的软件升级方法,将设备内部用于存储镜像数据的闪存划 分为控制信息区、第一镜像区及第二镜像区三个逻辑分区;其中,控制信息区 中包括有当前镜像区状态标志、第一镜像区的属性及第二镜像区的属性;第-镜像区及第二镜像区中均包括有镜像数据及镜像加载计数器;该方法还包括A、 选定待升级的镜像区,并将该镜像区设置为无效;B、 将升级文件写入所述镜像区;C、 升级文件完全写入镜像区后,将所述镜像区设置为有效。 其中,步骤B之后进一步包括Bl、判断写入的升级文件是否完整,若不完整,则返回步骤B;否则,执 行步骤C。步骤Bl所述判断写入升级文件是否完整,具体为比较源升级文件A镜 像数据文件的字节数是否一致,若一致,则写入的升级文件是完整的;否则, 升级文件不完整。所述控制信息区设置于闪存内的任一位置。所述第 一镜像区与第二镜像区的容量相同。所述当前镜像区状态标志为主用状态或备用状态。所述第 一镜像区及第二镜像区的属性,至少包括存储第 一镜像区和第二镜 像区的起始位置、长度、有效性、版本号。所述镜像数据包括使嵌入式设备进行工作的软件、软件运行所需工作空间 及用户数据所占的空间。1 )本专利技术采用对单片闪存进行逻辑分区的方法,简化了硬件电路设计的复 杂性。2) 本专利技术采用对闪存进行逻辑分区的方法,划分出的第 一镜像区与第二镜 像区容量大小完全相同,为两个镜像区实现相互备份以及安全升级提供了客观 条件。3) 本专利技术仅采用一片闪存芯片,就能实现以往用两片不同存储器才能完成的工作,节约了嵌入式设备的成本。4) 本专利技术的升级方法,可以任选第一镜像区或第二镜像区进行升级,打破 了以往嵌入式设备在安全模式下不能升级的惯例,增强了嵌入式设备的易用性。附图说明图1为本专利技术实施例中闪存的存储空间逻辑划分示意图;图2为本专利技术实施例中图1的控制信息区内部逻辑结构示意图;图3为本专利技术实施例中图1的第一或第二镜像区内部逻辑结构示意图;图4为本专利技术实施例中嵌入式设备的启动过程示意图;具体实施方式下面结合附图及本专利技术的实施例对本专利技术的方法作进一步详细的说明。图1为本专利技术实施例中闪存的存储空间逻辑划分示意图,如图l所示,将 闪存的存储空间进行逻辑分区,划分为控制信息区、第一镜像区及第二镜像 区三部分;其中,第一镜像区和第二镜像区的大小、结构完全相同,两者差别 仅在于在闪存中所处的位置不同。对闪存的存储空间进行逻辑分区以及确定各个分区所占存储空间的大小, 需要考虑如下几个因素将当前嵌入式设备工作所需的软件的字节数、软件运行所需工作空间的字节数以及用户数据所占空间的字节数,三者之和作为镜像文件所需的存储空间, 即镜像区的大小。根据镜像区的大小估算嵌入式设备所需闪存的存储容量,然 后加上少量控制信息所需的容量,共同确定应该选用多大容量的闪存芯片。目前已有存储容量为1M、 2M、 4M、 8M、 16M、 32M、 64M、 128M、 256M字节 等甚至容量更大的单片闪存芯片,由于闪存芯片存储容量越大价格就越高,选 用的芯片容量过小,不能满足嵌入式设备的工作需求;选用的芯片容量过大, 又会增加不必要的成本、造成资源浪费,所以需综合考虑容量与成本。这里,所述根据镜像区的大小估算嵌入式设备所需闪存的存储容量,具体 为两倍的镜像区存储容量,再加上大小不超过1M字节的控制信息的容量之 和,以小于但接近已有某种容量的芯片为最佳。例如,如果镜像文件的大小为 14M左右,对应的就应该选用32M的单片闪存芯片作为该嵌入式设备的存储 器。在应用中,把所述32M的单片闪存的存储空间划分本文档来自技高网
...

【技术保护点】
一种嵌入式设备的启动方法,其特征在于,将设备内部用于存储镜像数据的闪存划分为控制信息区、第一镜像区及第二镜像区三个逻辑分区;其中,控制信息区中包括有当前镜像区状态标志、第一镜像区的属性及第二镜像区的属性;第一镜像区及第二镜像区中均包括有镜像数据及镜像加载计数器;该方法还包括:    a、检查每个镜像区的镜像加载计数器值是否超过预设阈值,若超过,则将该镜像区设置为无效,然后执行步骤b;否则,直接执行步骤b;    b、读取所选择的当前镜像区状态标志,判断所述镜像区是否为主用,若为备用,则执行步骤c;否则,执行步骤d;    c、判断备用镜像区的镜像数据是否可用,若可用,则执行步骤d,否则,退出本次启动过程,等待对该备用镜像区进行升级;    d、将可用的镜像数据以及与硬件相关的初始启动代码加载到所述嵌入式设备的内存中。

【技术特征摘要】
1、一种嵌入式设备的启动方法,其特征在于,将设备内部用于存储镜像数据的闪存划分为控制信息区、第一镜像区及第二镜像区三个逻辑分区;其中,控制信息区中包括有当前镜像区状态标志、第一镜像区的属性及第二镜像区的属性;第一镜像区及第二镜像区中均包括有镜像数据及镜像加载计数器;该方法还包括a、检查每个镜像区的镜像加载计数器值是否超过预设阈值,若超过,则将该镜像区设置为无效,然后执行步骤b;否则,直接执行步骤b;b、读取所选择的当前镜像区状态标志,判断所述镜像区是否为主用,若为备用,则执行步骤c;否则,执行步骤d;c、判断备用镜像区的镜像数据是否可用,若可用,则执行步骤d,否则,退出本次启动过程,等待对该备用镜像区进行升级;d、将可用的镜像数据以及与硬件相关的初始启动代码加载到所述嵌入式设备的内存中。2、 根据权利要求1所述的启动方法,其特征在于,所述步骤d之前进一步 包括将所述待加载镜像区的镜像加载计数器值加1。3、 根据权利要求1或2所述的启动方法,其特征在于,所述步骤d之后进 一步包括将所述镜像区的镜像加载计数器值清零。4、 根据权利要求1所述的启动方法,其特征在于,所述控制信息区设置于 闪存内的任一位置。5、 根据权利要求l所述的启动方法,其特征在于,所述第一镜像区与第二 镜像区的容量相同。6、 根据权利要求1所述的启动方法,其特征在于,所述当前镜像区状态标 志为主用状态或备用状态。7、 根据权利要求1所述的启动方法,其特征在于,所述第一镜像区及第二 镜像区的属性,至少包括存储第一镜像区和第二镜像区的起始位置、长度、有效性、版本号。8、 根据权利要求1所述的启动方法,其特征在于,所述镜像数据包括使嵌 入式设备进行工作的软件、软件运行所需工作空间及用户数据所占的空间。9、 根据权利要求1所述的...

【专利技术属性】
技术研发人员:叶磊邓一星万武辉
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1