一种在不断电下保存系统数据的方法

文档序号:6339487阅读:193来源:国知局
专利名称:一种在不断电下保存系统数据的方法
技术领域
本发明涉及嵌入式设计领域,特别涉及一种利用软件和硬件结合,实现 在不断电下保存系统数据的方法。
背景技术
在嵌入式系统中,基本上以嵌入式硬件系统和嵌入式软件系统組成。嵌 入式系统的运行时长是系统稳定性的重要指标,但即使可靠性再高的嵌入式 系统,在实际运行中也会出现一些环境的问题、设计上的缺陷,导致系统复 位。嵌入式系统一般属于无人值守的系统,出现复位就需要提供有效的手段, 能够从相关信息中分析出来系统属于哪种复位、系统复位前的状态如何,进 而进一步分析,改进"&计。系统复位的原因多种多样,有软件地址异常复位,无效指令复位、人工复位、WATCHDOG溢出复位、硬件电路异常复位、电压异常复位和断电复 位等。绝大部分的复位是在不断电情况下进行的。为识别和分析复位原因, 需要在不断电情况下保存系统状态数据。在目前的嵌入式系统中, 一般使用同步动态随机存储器(SDRAM), 这种内存在不断电情况下,短时间内不刷新也不会丢失数据。因而,可在 SDRAM中划分出一块保留内存,做信息记录区,用于保存系统状态数据。中国专利申请"保持同步动态随机存取存储器存储信息的方法"(申请 号03146159.X)是一种不断电下保存数据的方法,但是由于BOOT或BIOS 程序空间有限,功能也比较简单,故只能输出比较原始的信息,输出手段也 比较简单且可能不可靠, 一般只用串口或网口把重启前的系统数据打印出 来,无法保存。 发明内容本发明所要解决的技术问题是提供一种不断电下保存系统数据的方法, 在实际应用系统不断电重启后,可以在应用系统程序运行正常后,可靠地输 出系统重启前的系统数据。为了解决上述技术问题,本发明提供了一种不断电下保存系统数椐的方法,应用于使用同步动态随机存储器的嵌入式系统,所述同步动态随4;u^储器以下简称SDRAM,包括以下步骤(a) 在SDRAM中划分一块存储空间作为信息记录区;(b) 由应用系统程序中的系统数据操作程序将需要保存的系统数据存 储于所述信息记录区,并对信息记录区的进行数据緩存处理,使系统数据能 够写入物理内存中;(c) 配置所述系统的BOOT程序和应用系统程序的内存地址范围,保 证只有所述应用系统程序中的系统数据操作程序可以对所述信息记录区进行写操作;(d) 系统重启后,在应用系统程序正常运行后,输出信息记录区的系 统数据。进一步地,上述方法还可具有以下特点所述步骤(a)中,所述作为 信息记录区的存储空间为 一段物理地址编址最大的物理内存。进一步地,上述方法还可具有以下特点所述步骤(b)中,所述对信 息记录区数据緩存的处理采用以下两种方法之一将所述信息记录区的内存 属性配置为不进行数据緩存,使程序中的写操作语句可直接操作所述信息记 录区的物理内存;将所述信息记录区的内存属性配置为进行数据緩存,在所 述信息记录区写入数据后,对所述信息记录区进行数据緩存的刷新,强制地 将緩存中的数据写入物理内存中。进一步地,上述方法还可具有以下特点所述步骤(c)进一步包括(cl)配置所述BOOT程序中操作系统管理的内存地址范围,使BOOT 程序中的操作系统不对所述信息记录区进行写操作; (c2)配置应用系统程序中搡作系统管理的内存地址范围,使应用系统 程序中的操作系统不对高端的信息记录区进行写操作。进一步地,上述方法还可具有以下特点在所述步骤(cl)和(c2)中, 所述配置操作系统管理的内存地址范围分别通过改写所述BOOT程序和所 述应用系统程序中操作系统内存管理的相应配置程序来完成。进一步地,上述方法还可具有以下特点所述步骤(cl)还包括配置 所述BOOT程序中操作系统之外的其它程序,使其不对所述信息记录区进 行写操作。进一步地,上述方法还可具有以下特点所述步骤(c2)还包括配置 所述应用系统程序中操作系统之外的程序,保证只有所述应用系统程序中的 系统数据操作程序可以对所述信息记录区进行写操作。进一步地,上述方法还可具有以下特点所述步骤(d)中,在系统正 常运行后,将所述信息记录区的系统数据输出到操作维护后台或输出设备。本方法在充分分析嵌入式系统的基础上,提出了软件和硬件结合,实现 在不断电下保存系统数据的方法,用于无人值守嵌入式系统复位前的系统数 据输出,以识别和分析复位原因。本方法可实现在应用系统程序运行正常后, 可靠地输出重启前的信息。同时本方法也是提高嵌入式系统复位可测试性设 计的一个重要方法。
具体实施方式
本实施例通过对实际运行的应用系统程序进行信息记录区的划分设置, 使实际应用系统不断电重启后,系统正常运行后也能输出系统重启前的系统数据。3G系统由多个嵌入式系统组成,这里以其中一个单板系统为例说明。本实施例中,这个单板系统有两个程序BOOT程序和应用系统程序。 其中BOOT程序对单板系统进行部分初始化,并引导应用系统程序运行, 即通常所述的BOOT版本;应用系统程序则是单板系统真正运行的程序, 承载着所有的应用和功能,即通常所说的系统运行版本。这两个程序都包含 了 VX WORKS操作系统。具体步骤如下步骤110,在SDRAM中划分一块存储空间作为信息记录区;在本实施例中划分了一块最高端的存储空间,即物理地址编址最大的物 理内存,存储空间的大小为128K字节。步骤120,由应用系统程序中的系统数据操作程序将需要保存的系统数 据存储于上述信息记录区、并对信息记录区的进行数据緩存处理;信息记录区数据緩存(CACHE)处理,可用下面两种方法之一(1) 划分信息记录区后,把该记录区的内存属性配置为不进行数据緩 存,使得对于这个记录区,程序中的写搡作语句可直接操作记录区的物理内 存,而不是通常情况下的仅仅操作CACHE。经过上述措施,在信息记录区 写入数据后,能保证数据能够真正写入信息记录区。(2) 在一般情况下,进行数据緩存有助于提高CPU效率。对信息记录 区进行一般的、通用的内存属性配置,即对信息记录区进行数据緩存,在信 息记录区写入数据后,对信息记录区进行数据緩存的刷新(只需要一次刷新, 不需要定时刷新),强制地把CACHE中的数据转移入(即写入)物理内存 中,保证数据能够真正写入信息记录区。现代的CPU动态内存系统, 一般由高速緩存CACHE和低速主存 SDRAM组成,想要把数据写入SDRAM, 一定需要考虑上述的两种緩存的 处理方法,才能保证系统数据能够真正写入SDRAM中的信息记录区,即确 实写入物理内存,而不是像程序中的写操作语句仅仅是操作CACHE。采用将数据写入物理内存的处理可以保证物理内存中有"要写入的数 据",而SDRAM本身具有的暂态保持特性(即在不断电情况下,短时间内 不刷新也不会丢失数据)可以保证SDRAM中的内存数据在重启前后保持不 变,因此在系统不断电重启时物理内存中的系统数据不会丢失。步骤130 ,在BOOT程序中配置操作系统管理的内存地址范围,使BOOT 程序中的操作系统不对高端的信息记录区进行写操作;配置操作系统管理的内存地址范围通过改写BOOT程序中搡作系统内 存管理的相应配置程序来完成。同时也需要保证BOOT程序中除操作系统外的其它部分不对上述信息 记录区进行写操作,所述其它部分通常指板支撑包程序。 一般来说,其它部 分的程序不会操作内存管理没有配置的内存,但根据实际的情况可能有不 同,比如这些程序有可能不是从操作系统内存管理中去获得内存地址段,而 直接获得一个绝对的内存地址段,这样的绝对内存地址段可能会在信息记录 区,为了避免这一点,因此需要改写程序。步骤140,在应用系统程序中配置操作系统管理的内存地址范围,保证 只有应用系统程序中的系统数据操作程序可以对设定好的信息记录区进行 写操作;配置操作系统管理的内存地址范围是通过改写应用系统程序中操作系 统内存管理的相应配置程序来完成的。对应用系统程序中操作系统以外的程序(这部分程序通常是板支撑包、 驱动)也需要配置,使其不对所述信息记录区进行写搡作,以保证只有应用 系统程序中的系统数据操作程序可以对设定好的信息记录区进行写操作。步骤150,系统重启后,在应用系统程序正常运行后,系统数据操作程 序把信息记录区的系统数据输出到操作维护后台或输出设备。在应用系统程序正常运行后,可以通过各种手段可靠地输出重启前的系 统数据,包括送往嵌入式系统的操作维护后台,并在后台保存,这一点对于 无人值守的嵌入式系统特别有用。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,比如应用于所有使用SDRAM的嵌入式系统中,也可以应用以上流程; 比如划分的信息记录区的范围在物理地址中的位置不限于本实施例中物理 地址编址最大的物理内存。这些相应的改变和变形都应属于本发明所附的权 利要求的保护范围。
权利要求
1、 一种不断电下保存系统数据的方法,应用于使用同步动态随机存储器的嵌入式系统,所迷同步动态随机存储器以下简称SDRAM,包括以下歩 骤(a) 在SDRAM中划分一块存储空间作为信息记录区;(b) 由应用系统程序中的系统数据操作程序将需要保存的系统数据存 储于所述信息记录区,并对信息记录区的进行数据緩存处理,使系统数据能 够写入物理内存中;(c) 配置所迷系统的BOOT程序和应用系统程序的内存地址范围,保 证只有所述应用系统程序中的系统数据操作程序可以对所述信息记录区进 行写操作;(d) 系统重启后,在应用系统程序正常运行后,输出信息记录区的系 统数据。
2、 如权利要求l所述的方法,其特征在于,所述步骤(a)中,所述作 为信息记录区的存储空间为一段物理地址编址最大的物理内存。
3、 如权利要求l所述的方法,其特征在于,所述步骤(b)中,所述对 信息记录区数据緩存的处理采用以下两种方法之一 将所述信息记录区的内存属性配置为不进行数据緩存,使程序中的写操 作语句可直接操作所述信息记录区的物理内存;将所述信息记录区的内存属性配置为进行数据緩存,在所述信息记录区 写入数据后,对所述信息记录区进行数据緩存的刷新,强制地将緩存中的数 据写入物理内存中。
4、 如权利要求l所述的方法,其特征在于,所述步骤(c)进一步包括(cl )配置所述BOOT程序中操作系统管理的内存地址范围,使BOOT 程序中的操作系统不对所述信息记录区进行写操作;(c2)配置应用系统程序中操作系统管理的内存地址范围,使应用系统 程序中的操作系统不对所述信息记录区进行写操作。
5、 如权利要求5所述的方法,其特征在子,在所述步骤(cl )和(c2) 中,所述配置操作系统管理的内存地址范围分别通过改写所述BOOT程序 和所述应用系统程序中操作系统内存管理的相应配置程序来完成。
6、 如权利要求5所述的方法,其特征在于,所述步骤(cl)还包括 配置所述BOOT程序中操作系统之外的其它程序,使其不对所述信息记录 区进行写操作。
7、 如权利要求5所述的方法,其特征在于,所述步骤(c2)还包括 配置所述应用系统程序中操作系统之外的程序,保证只有所述应用系统程序 中的系统数据操作程序可以对所述信息记录区进行写操作。
8、 如权利要求l所述的方法,其特征在于,所述步骤(d)中,在系统 正常运行后,将所述信息记录区的系统数据输出到操作维护后台或输出设备。
全文摘要
本发明公开了一种在不断电下保存系统数据的方法,在系统不断电重启后,可在应用系统程序运行正常后,可靠地输出系统重启前的系统数据。应用于使用SDRAM的嵌入式系统,包括以下步骤(a)在SDRAM中划分一块存储空间作为信息记录区;(b)由应用系统程序中的系统数据操作程序将需要保存的系统数据存储于所述信息记录区,并对信息记录区的进行数据缓存处理,使系统数据能够写入物理内存中;(c)配置所述系统的BOOT程序和应用系统程序的内存地址范围,保证只有所述应用系统程序中的系统数据操作程序可以对所述信息记录区进行写操作;(d)系统重启后,在应用系统程序正常运行后,输出信息记录区的系统数据。
文档编号G06F9/445GK101122874SQ200610109800
公开日2008年2月13日 申请日期2006年8月11日 优先权日2006年8月11日
发明者傅仁武, 李双全 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1