一种RAM检测方法及系统.pdf

上传人:e2 文档编号:1491930 上传时间:2018-06-18 格式:PDF 页数:17 大小:1.47MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310436088.7

申请日:

2013.09.23

公开号:

CN103455436A

公开日:

2013.12.18

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/02申请日:20130923|||公开

IPC分类号:

G06F12/02; G11C29/04

主分类号:

G06F12/02

申请人:

北京经纬恒润科技有限公司

发明人:

刘博; 张阳; 王载琼

地址:

100101 北京市朝阳区安翔北里11号B座8层

优先权:

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

王宝筠

PDF下载: PDF下载
内容摘要

本发明实施例提供一种RAM检测方法及系统,其中方法包括:预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段,在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。

权利要求书

权利要求书
1.  一种随机存储器RAM检测方法,其特征在于,预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段,所述方法包括:
在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。

2.  根据权利要求1所述的方法,其特征在于,所述对RAM空间进行分段处理包括:
将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续;
所述将RAM空间划分为一个存储重要数据的区域段及其他区域段包括:
将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段。

3.  根据权利要求1或2所述的方法,其特征在于,所述对所述其他区域段进行RAM检测包括:
先对所述其他区域段中不存储数据的空白段进行检测,再对所述其他区域段中存储数据的非空白段进行检测。

4.  根据权利要求3所述的方法,其特征在于,所述对所述其他区域段中不存储数据的空白段进行检测包括:
向所述空白段的起始地址写入第一数据,读出所述起始地址中的数据;
若所读出的数据与所述第一数据不同,则确定所述空白段的地址空间异常;
若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;
若再次读出的数据与所述第二数据不同,则确定所述空白段的地址空间异常;
若再次读出的数据与所述第二数据相同,则确定所述空白段的地址空间正常。

5.  根据权利要求3所述的方法,其特征在于,所述对所述其他区域段中存储数据的非空白段进行检测包括:
将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
向所述非空白段的起始地址写入第一数据,读出所述起始地址中的数据;
若所读出的数据与所述第一数据不同,则确定所述非空白段的地址空间异常;
若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;
若再次读出的数据与所述第二数据不同,则确定所述非空白段的地址空间异常;
若再次读出的数据与所述第二数据相同,则确定所述非空白段的地址空间正常;
在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。

6.  根据权利要求4所述的方法,其特征在于,所述方法还包括:
在检测完RAM空白段的地址空间正常后,调用预先存储在ROM中的RAM检测程序对RAM区域段中存储数据的非空白段进行检测。

7.  一种随机存储器RAM检测系统,其特征在于,包括:
分段模块,用于预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;
第一检测模块,用于在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
第二检测模块,用于在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。

8.  根据权利要求7所述的系统,其特征在于,所述第二检测模块包括:
空白段检测单元,用于对所述其他区域段中不存储数据的空白段进行检测;
非空白段检测单元,用于在所述空白段检测单元对所述其他区域段中不存储数据的空白段检测完毕后,再对所述其他区域段中存储数据的非空白段进行检测。

9.  根据权利要求8所述的系统,其特征在于,所述空白段检测单元包括:
第一写入子单元,用于向所述空白段的起始地址写入第一数据;
第一读出子单元,用于读出所述起始地址中的数据;
第一确定子单元,用于在所读出的数据与所述第一数据不同时,确定所述空白段的地址空间异常;
第二写入子单元,用于在所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;
第二读出子单元,用于在所述第二写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;
第二确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据不同时,确定所述空白段的地址空间异常;
第三确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据相同时,确定所述空白段的地址空间正常。

10.  根据权利要求8所述的系统,其特征在于,所述非空白段检测单元包括:
数据保存子单元,用于将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
第三写入子单元,用于向所述非空白段的起始地址写入第一数据;
第三读出子单元,用于读出所述起始地址中的数据;
第四确定子单元,用于在所述第三读出子单元所读出的数据与所述第一数据不同时,确定所述非空白段的地址空间异常;
第四写入子单元,用于在所述第三读出子单元所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;
第四读出子单元,用于在所述第四写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;
第五确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据不同时,确定所述非空白段的地址空间异常;
第六确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据相同时,确定所述非空白段的地址空间正常;
数据回存子单元,用于在确定所述非空白段的地址空间正常后,将保存 至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。

说明书

说明书一种RAM检测方法及系统
技术领域
本发明涉及硬件检测技术领域,更具体地说,涉及一种RAM检测方法及系统。
背景技术
RAM(random access memory,随机存储器)是指存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器,其是控制器内部的核心部件。
目前众多的设备对控制器的运行速度及执行时间有非常高的要求,而对RAM进行检测却要花费很长的时间,为保障控制器的运行速度及执行时间,目前通常不会对RAM进行检测;然而这就使得控制器的安全性存在隐患,一旦RAM发生损坏,那么控制器执行的动作就会异常,从而使得设备存在使用上的安全隐患。
因此,如何提供一种RAM检测方法,以对RAM进行全面的检测,并不影响控制器的运行速度及执行时间,从而解除RAM所存在的安全隐患成为本领域人员急需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种RAM检测方法及系统,以解决现有技术无法对RAM进行全面的检测的问题。
为实现上述目的,本发明实施例提供如下技术方案:
一种RAM检测方法,预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段,所述方法包括:
在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。
其中,所述对RAM空间进行分段处理包括:
将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址 连续;
所述将RAM空间划分为一个存储重要数据的区域段及其他区域段包括:
将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段。
其中,所述对所述其他区域段进行RAM检测包括:
先对所述其他区域段中不存储数据的空白段进行检测,再对所述其他区域段中存储数据的非空白段进行检测。
其中,所述对所述其他区域段中不存储数据的空白段进行检测包括:
向所述空白段的起始地址写入第一数据,读出所述起始地址中的数据;
若所读出的数据与所述第一数据不同,则确定所述空白段的地址空间异常;
若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;
若再次读出的数据与所述第二数据不同,则确定所述空白段的地址空间异常;
若再次读出的数据与所述第二数据相同,则确定所述空白段的地址空间正常。
其中,所述对所述其他区域段中存储数据的非空白段进行检测包括:
将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
向所述非空白段的起始地址写入第一数据,读出所述起始地址中的数据;
若所读出的数据与所述第一数据不同,则确定所述非空白段的地址空间异常;
若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;
若再次读出的数据与所述第二数据不同,则确定所述非空白段的地址空间异常;
若再次读出的数据与所述第二数据相同,则确定所述非空白段的地址空间正常;
在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正 常的空白段中的数据拷贝回所述非空白段中。
其中,所述方法还包括:
在检测完RAM空白段的地址空间正常后,调用预先存储在ROM中的RAM检测程序对RAM区域段中存储数据的非空白段进行检测。
本发明实施例还提供一种RAM检测系统,包括:
分段模块,用于预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;
第一检测模块,用于在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
第二检测模块,用于在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。
其中,所述第二检测模块包括:
空白段检测单元,用于对所述其他区域段中不存储数据的空白段进行检测;
非空白段检测单元,用于在所述空白段检测单元对所述其他区域段中不存储数据的空白段检测完毕后,再对所述其他区域段中存储数据的非空白段进行检测。
其中,所述空白段检测单元包括:
第一写入子单元,用于向所述空白段的起始地址写入第一数据;
第一读出子单元,用于读出所述起始地址中的数据;
第一确定子单元,用于在所读出的数据与所述第一数据不同时,确定所述空白段的地址空间异常;
第二写入子单元,用于在所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;
第二读出子单元,用于在所述第二写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;
第二确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据不同时,确定所述空白段的地址空间异常;
第三确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据相同时,确定所述空白段的地址空间正常。
其中,所述非空白段检测单元包括:
数据保存子单元,用于将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
第三写入子单元,用于向所述非空白段的起始地址写入第一数据;
第三读出子单元,用于读出所述起始地址中的数据;
第四确定子单元,用于在所述第三读出子单元所读出的数据与所述第一数据不同时,确定所述非空白段的地址空间异常;
第四写入子单元,用于在所述第三读出子单元所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;
第四读出子单元,用于在所述第四写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;
第五确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据不同时,确定所述非空白段的地址空间异常;
第六确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据相同时,确定所述非空白段的地址空间正常;
数据回存子单元,用于在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。
基于上述技术方案,本发明实施例提供的RAM检测方法,将控制器内部的RAM空间进行分段处理,划分成一个存储重要数据的区域段及其他区域段,当操作系统启动时,先对所述存储重要数据的区域段进行RAM检测,在操作系统启动后,预先设定的低优先级周期任务来临时,再对RAM的其他区域段进行RAM检测;本发明实施例采用操作系统与RAM检测功能相结合的方式,在不同的时机对存储重要数据的区域段和其他区域段进行检测,从而避免了RAM检测花费较长时间,而对控制器的运行速度及执行时间造成影响的问题,同时在预先设定的低优先级周期任务来临时,对RAM的其他区域段进行RAM检测,从而可以在避免影响控制器的其它功能的情况下将RAM检测实施完毕,提高了控制器的性能指标。本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的RAM检测方法的流程图;
图2为本发明实施例对控制器内部RAM空间进行划分的示意图;
图3为本发明实施例提供的对其他区域段中不存储数据的空白段进行检测的方法流程图;
图4为本发明实施例提供的对其他区域段中存储数据的非空白段进行检测的方法流程图;
图5为本发明实施例提供的RAM检测系统的结构框图;
图6为本发明实施例提供的第二检测模块的结构框图;
图7为本发明实施例提供的空白段检测单元的结构框图;
图8为本发明实施例提供的非空白段检测单元的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的RAM检测方法的流程图,参照图1,该方法可以包括:
步骤S100、预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;
本发明实施例对RAM空间划分的原则为确保空间的连续性,即数据段空间和栈空间地址要连续,空白区域地址要连续,从而避免空间的浪费。可选的,在具体实现上,可以将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续。
图2为对控制器内部RAM空间进行划分的示例,非空白区域段a和非空白区域段c为数据区,其他区域为空白区域段,如空白段b。
其中,重要数据可以是保证控制器的操作系统可以正常执行下去的数据,在所划分出来的RAM空间的区域段中,可以选取一个区域段存储重要数据;其他区域段可以是所划分出来的RAM空间的区域段中除存储重要数据的区域段外的区域段,其他区域段包括了存储数据的非空白区域段和不存储数据的空白区域段。
通常操作系统中确保操作系统正常执行下去的数据不会很多,即重要数据的数据量不会太多,因此相对于其他区域段,存储重要数据的区域段可以划分的相对小些。
步骤S110、在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
通常系统中确保系统正常执行下去的数据不会很多,这样在操作系统启动时可以先对此区域进行检测,由于空间很小,检测时间会很短。并且存储重要数据的区域段涉及到了操作系统的正常运行,先对存储重要数据的区域段进行检测可以确保操作系统的正常运行。
步骤S120、在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。
对于采用操作系统的控制器,其操作系统具有很多的周期任务,有的周期任务优先级较高,有的周期任务优先级较低;周期任务的优先级划分的依据可以根据应用的实际情况区分,例如刹车系统,刹车信号是很重要的,这个信号的采集就需要放在高优先级的任务中,确保不会被其他任务打断;在本发明实施例中,高优先级的任务是可以打断低优先级的任务,但是低优先级的任务是不能打断高优先级的任务。
可选的,本发明实施例预先设定的低优先级周期任务,可以是操作系统的很多周期任务中优先级最低的周期任务。在该预先设定的低优先级周期任务来临时,可对除存储重要数据的区域段外的其他区域段进行RAM检测,结合步骤S110中对存储重要数据的区域段的RAM检测,即可实现对RAM的所有区域进行全面的检测。
值得注意的是,步骤S100为本发明实施例预先执行的步骤,执行完一次 步骤S100之后,可执行多次的步骤S110和步骤S120;即本发明实施例在预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段之后;可在操作系统每次启动时,对所述存储重要数据的区域段进行RAM检测;在每次预先设定的低优先级周期任务来临时,对所述其他区域段进行RAM检测。
本发明实施例提供的RAM检测方法,将控制器内部的RAM空间进行分段处理,划分成一个存储重要数据的区域段及其他区域段,当操作系统启动时,先对所述存储重要数据的区域段进行RAM检测,在操作系统启动后,预先设定的低优先级周期任务来临时,再对RAM的其他区域段进行RAM检测;本发明实施例采用操作系统与RAM检测功能相结合的方式,在不同的时机对存储重要数据的区域段和其他区域段进行检测,从而避免了RAM检测花费较长时间,而对控制器的运行速度及执行时间造成影响的问题,同时在预先设定的低优先级周期任务来临时,对RAM的其他区域段进行RAM检测,从而可以在避免影响控制器的其它功能的情况下将RAM检测实施完毕,提高了控制器的性能指标。本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。
可选的,本发明实施例在对除存储重要数据的区域段的其他区域段进行RAM检测时,可先对所述其他区域段中不存储数据的空白段进行检测,再对所述其他区域段中存储数据的非空白段进行检测。图3示出了对其他区域段中不存储数据的空白段进行检测的方法流程,参照图3,该方法可以包括:
步骤S200、向所述空白段的起始地址写入第一数据;
可选的,第一数据可以为1;
步骤S210、读出所述起始地址中的数据;
步骤S220、判断所读出的数据与所述第一数据是否相同,若否,执行步骤S230,若是,执行步骤S240;
步骤S230、确定所述空白段的地址空间异常;
步骤S240、向所述起始地址中写入第二数据;
可选的,第二数据可以为0;
步骤S250、再次读出所述起始地址中的数据;
步骤S260、判断再次读出的数据与所述第二数据是否相同,若否,执行步骤S230,若是,执行步骤S270;
步骤S270、确定所述空白段的地址空间正常。
在本发明实施例中,只要写入的第一数据和读出的数据不等,或者写入的第二数据和读出的数据不等,则可证明此地址空间异常,需要记录故障;只有在写入的第一数据和读出的数据相等,且写入的第二数据和读出的数据相等时,才可证明此地址空间正常。
图4示出了对其他区域段中存储数据的非空白段进行检测的方法流程,参照图4,该方法可以包括:
步骤S300、将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
由于需要对地址空间的数据进行改写,所以需要先将非空白段中的数据进行保存,将非空白段中的数据拷贝到已经检测完地址空间正常的空白段中,可选的,可通过图3所示方法确定已经检测完的地址空间正常的空白段。
可选的,由于在拷贝过程中有可能发生错误,所以需要利用CRC算法将拷贝后的数据与拷贝前的数据进行比较,如果经校验后结果相同,则可执行后续流程;否则重新将非空白段中的数据拷贝到已经检测完地址空间正常的空白段中,直到校验结果相同才执行后续流程。
步骤S310、向所述非空白段的起始地址写入第一数据;
步骤S320、读出所述起始地址中的数据;
步骤S330、判断所读出的数据与所述第一数据是否相同,若否,执行步骤S340,若是,执行步骤S350;
步骤S340、确定所述非空白段的地址空间异常;
步骤S350、向所述起始地址中写入第二数据;
步骤S360、再次读出所述起始地址中的数据;
步骤S370、判断所读出的数据与所述第二数据是否相同,若否,执行步骤S340、若是,执行步骤S380;
步骤S380、确定所述非空白段的地址空间正常;
步骤S390、在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。
可选的,在检测完毕后,需要再将拷贝回所述非空白段中的数据,与所述非空白段中原来保存的数据进行CRC校验,在校验通过后RAM检测执行完毕。
可选的,在检测完RAM空白段的地址空间正常后,可调用预先存储在ROM(Read Only Memory,只读内存)中的RAM检测程序对RAM区域段中存储数据的非空白段进行检测。为了加快程序的处理速度,本发明将RAM检测程序从ROM中拷贝到RAM中运行,拷贝的时机为检测完空白段正常后进行拷贝。如在开发阶段可以确保某段RAM空间正常,那么也可以在系统启动后直接将RAM检测程序从ROM空间拷贝到RAM空间,这样就会更节省RAM检测执行的时间。
值得注意的是,图3所示方法中的第一数据和图4所示方法中的第一数据可以是相同的数据,也可以是不同的数据;图3所示方法中的第二数据和图4所示方法中的第二数据可以是相同的数据,也可以是不同的数据。只要保证图3所示方法和图4所示方法的各方法中的第一数据和第二数据为不等的数据即可。
下面提供一种较为优选的RAM检测方法,该方法可以包括:
步骤S400、预先将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续,将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段;
步骤S410、在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
步骤S420、在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段中不存储数据的空白段的起始地址写入1;
步骤S430、读出所述起始地址中的数据;
步骤S440、判断所读出的数据与1是否相同,若否,执行步骤S450,若是,执行步骤S460;
步骤S450、确定所述空白段的地址空间异常;
步骤S460、向所述起始地址中写入0;
步骤S470、再次读出所述起始地址中的数据;
步骤S480、判断再次读出的数据与0是否相同,若否,执行步骤S450,若是,执行步骤S490;
步骤S490、确定所述空白段的地址空间正常;
步骤S500、在检测完RAM空白段,且空白段的地址空间正常后,调用预先存储在ROM中的RAM检测程序,将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
步骤S510、利用CRC(Cyclic Redundancy Check,循环冗余校验码)算法将拷贝后的数据与拷贝前的数据进行比较,在拷贝后的数据与拷贝前的数据的校验结果相同时,向所述非空白段的起始地址写入1;
步骤S520、读出所述起始地址中的数据;
步骤S530、判断所读出的数据与1是否相同,若否,执行步骤S540,若是,执行步骤S550;
步骤S540、确定所述非空白段的地址空间异常;
步骤S550、向所述起始地址中写入0;
步骤S560、再次读出所述起始地址中的数据;
步骤S570、判断所读出的数据与0是否相同,若否,执行步骤S540、若是,执行步骤S580;
步骤S580、确定所述非空白段的地址空间正常;
步骤S590、在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中;
步骤S600、利用CRC算法判断拷贝回所述非空白段中的数据,与所述非空白段中原来保存的数据是否相同,若否,执行步骤S590、若是,执行步骤S610;
步骤S610、结束流程。
本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。
下面对本发明实施例提供的RAM检测系统进行介绍,下文描述的RAM检测系统与上文描述的RAM检测方法相对应,两者可相互参照。
图5为本发明实施例提供的RAM检测系统的结构框图,参照图5,该系 统可以包括:
分段模块100,用于预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;
可选的,可将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续,将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段。
第一检测模块200,用于在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;
第二检测模块300,用于在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。
本发明实施例提供的RAM检测系统,将控制器内部的RAM空间进行分段处理,划分成一个存储重要数据的区域段及其他区域段,当操作系统启动时,第一检测模块先对所述存储重要数据的区域段进行RAM检测,在操作系统启动后,预先设定的低优先级周期任务来临时,第二检测模块再对RAM的其他区域段进行RAM检测;本发明实施例采用操作系统与RAM检测功能相结合的方式,在不同的时机对存储重要数据的区域段和其他区域段进行检测,从而避免了RAM检测花费较长时间,而对控制器的运行速度及执行时间造成影响的问题,同时在预先设定的低优先级周期任务来临时,对RAM的其他区域段进行RAM检测,从而可以在避免影响控制器的其它功能的情况下将RAM检测实施完毕,提高了控制器的性能指标。本发明实施例提供的RAM检测系统能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。
图6示出了第二检测模块300的结构,参照图6,第二检测模块300可以包括:
空白段检测单元310,用于对所述其他区域段中不存储数据的空白段进行检测;
非空白段检测单元320,用于在空白段检测单元310对所述其他区域段中不存储数据的空白段检测完毕后,再对所述其他区域段中存储数据的非空白段进行检测。
图7示出了空白段检测单元310的结构,参照图7,空白段检测单元310可以包括:
第一写入子单元311,用于向所述空白段的起始地址写入第一数据;
第一读出子单元312,用于读出所述起始地址中的数据;
第一确定子单元313,用于在所读出的数据与所述第一数据不同时,确定所述空白段的地址空间异常;
第二写入子单元314,用于在所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;
第二读出子单元315,用于在第二写入子单元314向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;
第二确定子单元316,用于在第二读出子单元315再次读出的数据与所述第二数据不同时,确定所述空白段的地址空间异常;
第三确定子单元317,用于在第二读出子单元315再次读出的数据与所述第二数据相同时,确定所述空白段的地址空间正常。
图8示出了非空白段检测单元320的结构,参照图8,非空白段检测单元320可以包括:
数据保存子单元321,用于将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;
第三写入子单元322,用于向所述非空白段的起始地址写入第一数据;
第三读出子单元323,用于读出所述起始地址中的数据;
第四确定子单元324,用于在第三读出子单元323所读出的数据与所述第一数据不同时,确定所述非空白段的地址空间异常;
第四写入子单元325,用于在第三读出子单元323所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;
第四读出子单元326,用于在第四写入子单元325向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;
第五确定子单元327,用于在第四读出子单元326再次读出的数据与所述第二数据不同时,确定所述非空白段的地址空间异常;
第六确定子单元328,用于在第四读出子单元326再次读出的数据与所述第二数据相同时,确定所述非空白段的地址空间正常;
数据回存子单元329,用于在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。
本发明实施例提供的RAM检测系统能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

一种RAM检测方法及系统.pdf_第1页
第1页 / 共17页
一种RAM检测方法及系统.pdf_第2页
第2页 / 共17页
一种RAM检测方法及系统.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《一种RAM检测方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种RAM检测方法及系统.pdf(17页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103455436 A(43)申请公布日 2013.12.18CN103455436A*CN103455436A*(21)申请号 201310436088.7(22)申请日 2013.09.23G06F 12/02(2006.01)G11C 29/04(2006.01)(71)申请人北京经纬恒润科技有限公司地址 100101 北京市朝阳区安翔北里11号B座8层(72)发明人刘博 张阳 王载琼(74)专利代理机构北京集佳知识产权代理有限公司 11227代理人王宝筠(54) 发明名称一种RAM检测方法及系统(57) 摘要本发明实施例提供一种RAM检测方法及系统,其中方法包。

2、括:预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段,在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。(51)Int.Cl.权利要求书2页 说明书9页 附图5页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书9页 附图5页(10)申请公布号 CN 103455436 ACN 103455436 A1/。

3、2页21.一种随机存储器RAM检测方法,其特征在于,预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段,所述方法包括:在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。2.根据权利要求1所述的方法,其特征在于,所述对RAM空间进行分段处理包括:将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续;所述将RAM空间划分为一个存储重要数据的区域段及其他区域段包括:将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段。

4、空间和栈空间地址连续的RAM空间划分为所述其他区域段。3.根据权利要求1或2所述的方法,其特征在于,所述对所述其他区域段进行RAM检测包括:先对所述其他区域段中不存储数据的空白段进行检测,再对所述其他区域段中存储数据的非空白段进行检测。4.根据权利要求3所述的方法,其特征在于,所述对所述其他区域段中不存储数据的空白段进行检测包括:向所述空白段的起始地址写入第一数据,读出所述起始地址中的数据;若所读出的数据与所述第一数据不同,则确定所述空白段的地址空间异常;若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;若再次读出的数据与所述第二数据不同,则确定所。

5、述空白段的地址空间异常;若再次读出的数据与所述第二数据相同,则确定所述空白段的地址空间正常。5.根据权利要求3所述的方法,其特征在于,所述对所述其他区域段中存储数据的非空白段进行检测包括:将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;向所述非空白段的起始地址写入第一数据,读出所述起始地址中的数据;若所读出的数据与所述第一数据不同,则确定所述非空白段的地址空间异常;若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;若再次读出的数据与所述第二数据不同,则确定所述非空白段的地址空间异常;若再次读出的数据与所述第二数据相同,则确定所述非空白段。

6、的地址空间正常;在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:在检测完RAM空白段的地址空间正常后,调用预先存储在ROM中的RAM检测程序对RAM区域段中存储数据的非空白段进行检测。7.一种随机存储器RAM检测系统,其特征在于,包括:分段模块,用于预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;权 利 要 求 书CN 103455436 A2/2页3第一检测模块,用于在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;第二检测模块,用于。

7、在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。8.根据权利要求7所述的系统,其特征在于,所述第二检测模块包括:空白段检测单元,用于对所述其他区域段中不存储数据的空白段进行检测;非空白段检测单元,用于在所述空白段检测单元对所述其他区域段中不存储数据的空白段检测完毕后,再对所述其他区域段中存储数据的非空白段进行检测。9.根据权利要求8所述的系统,其特征在于,所述空白段检测单元包括:第一写入子单元,用于向所述空白段的起始地址写入第一数据;第一读出子单元,用于读出所述起始地址中的数据;第一确定子单元,用于在所读出的数据与所述第一数据不同时,确定所述空白段的地址。

8、空间异常;第二写入子单元,用于在所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;第二读出子单元,用于在所述第二写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;第二确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据不同时,确定所述空白段的地址空间异常;第三确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据相同时,确定所述空白段的地址空间正常。10.根据权利要求8所述的系统,其特征在于,所述非空白段检测单元包括:数据保存子单元,用于将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;第三写入子单元,用于向所述非空白段的起始。

9、地址写入第一数据;第三读出子单元,用于读出所述起始地址中的数据;第四确定子单元,用于在所述第三读出子单元所读出的数据与所述第一数据不同时,确定所述非空白段的地址空间异常;第四写入子单元,用于在所述第三读出子单元所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;第四读出子单元,用于在所述第四写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;第五确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据不同时,确定所述非空白段的地址空间异常;第六确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据相同时,确定所述非空白段的地址空间正常;数据回存。

10、子单元,用于在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。权 利 要 求 书CN 103455436 A1/9页4一种 RAM 检测方法及系统技术领域0001 本发明涉及硬件检测技术领域,更具体地说,涉及一种RAM检测方法及系统。背景技术0002 RAM(random access memory,随机存储器)是指存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器,其是控制器内部的核心部件。0003 目前众多的设备对控制器的运行速度及执行时间有非常高的要求,而对RAM进行检测却要花费很长的时间,为保障控制器的运行速。

11、度及执行时间,目前通常不会对RAM进行检测;然而这就使得控制器的安全性存在隐患,一旦RAM发生损坏,那么控制器执行的动作就会异常,从而使得设备存在使用上的安全隐患。0004 因此,如何提供一种RAM检测方法,以对RAM进行全面的检测,并不影响控制器的运行速度及执行时间,从而解除RAM所存在的安全隐患成为本领域人员急需解决的问题。发明内容0005 有鉴于此,本发明实施例提供一种RAM检测方法及系统,以解决现有技术无法对RAM进行全面的检测的问题。0006 为实现上述目的,本发明实施例提供如下技术方案:0007 一种RAM检测方法,预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的。

12、区域段及其他区域段,所述方法包括:0008 在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;0009 在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段进行RAM检测。0010 其中,所述对RAM空间进行分段处理包括:0011 将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续;0012 所述将RAM空间划分为一个存储重要数据的区域段及其他区域段包括:0013 将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段。0014 其中,所述对所述其他区域段进行。

13、RAM检测包括:0015 先对所述其他区域段中不存储数据的空白段进行检测,再对所述其他区域段中存储数据的非空白段进行检测。0016 其中,所述对所述其他区域段中不存储数据的空白段进行检测包括:0017 向所述空白段的起始地址写入第一数据,读出所述起始地址中的数据;0018 若所读出的数据与所述第一数据不同,则确定所述空白段的地址空间异常;0019 若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;0020 若再次读出的数据与所述第二数据不同,则确定所述空白段的地址空间异常;说 明 书CN 103455436 A2/9页50021 若再次读出的数据与。

14、所述第二数据相同,则确定所述空白段的地址空间正常。0022 其中,所述对所述其他区域段中存储数据的非空白段进行检测包括:0023 将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;0024 向所述非空白段的起始地址写入第一数据,读出所述起始地址中的数据;0025 若所读出的数据与所述第一数据不同,则确定所述非空白段的地址空间异常;0026 若所读出的数据与所述第一数据相同,则向所述起始地址中写入第二数据,再次读出所述起始地址中的数据;0027 若再次读出的数据与所述第二数据不同,则确定所述非空白段的地址空间异常;0028 若再次读出的数据与所述第二数据相同,则确定所述非空白段的地址空。

15、间正常;0029 在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。0030 其中,所述方法还包括:0031 在检测完RAM空白段的地址空间正常后,调用预先存储在ROM中的RAM检测程序对RAM区域段中存储数据的非空白段进行检测。0032 本发明实施例还提供一种RAM检测系统,包括:0033 分段模块,用于预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;0034 第一检测模块,用于在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;0035 第二检测模块,用于在当前操作系统的周期任务为预先设定的低。

16、优先级周期任务时,对所述其他区域段进行RAM检测。0036 其中,所述第二检测模块包括:0037 空白段检测单元,用于对所述其他区域段中不存储数据的空白段进行检测;0038 非空白段检测单元,用于在所述空白段检测单元对所述其他区域段中不存储数据的空白段检测完毕后,再对所述其他区域段中存储数据的非空白段进行检测。0039 其中,所述空白段检测单元包括:0040 第一写入子单元,用于向所述空白段的起始地址写入第一数据;0041 第一读出子单元,用于读出所述起始地址中的数据;0042 第一确定子单元,用于在所读出的数据与所述第一数据不同时,确定所述空白段的地址空间异常;0043 第二写入子单元,用于。

17、在所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;0044 第二读出子单元,用于在所述第二写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;0045 第二确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据不同时,确定所述空白段的地址空间异常;0046 第三确定子单元,用于在所述第二读出子单元再次读出的数据与所述第二数据相同时,确定所述空白段的地址空间正常。0047 其中,所述非空白段检测单元包括:说 明 书CN 103455436 A3/9页60048 数据保存子单元,用于将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;0049 。

18、第三写入子单元,用于向所述非空白段的起始地址写入第一数据;0050 第三读出子单元,用于读出所述起始地址中的数据;0051 第四确定子单元,用于在所述第三读出子单元所读出的数据与所述第一数据不同时,确定所述非空白段的地址空间异常;0052 第四写入子单元,用于在所述第三读出子单元所读出的数据与所述第一数据相同时,向所述起始地址中写入第二数据;0053 第四读出子单元,用于在所述第四写入子单元向所述起始地址中写入第二数据后,再次读出所述起始地址中的数据;0054 第五确定子单元,用于在所述第四读出子单元再次读出的数据与所述第二数据不同时,确定所述非空白段的地址空间异常;0055 第六确定子单元,。

19、用于在所述第四读出子单元再次读出的数据与所述第二数据相同时,确定所述非空白段的地址空间正常;0056 数据回存子单元,用于在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。0057 基于上述技术方案,本发明实施例提供的RAM检测方法,将控制器内部的RAM空间进行分段处理,划分成一个存储重要数据的区域段及其他区域段,当操作系统启动时,先对所述存储重要数据的区域段进行RAM检测,在操作系统启动后,预先设定的低优先级周期任务来临时,再对RAM的其他区域段进行RAM检测;本发明实施例采用操作系统与RAM检测功能相结合的方式,在不同的时机对存储重要数据。

20、的区域段和其他区域段进行检测,从而避免了RAM检测花费较长时间,而对控制器的运行速度及执行时间造成影响的问题,同时在预先设定的低优先级周期任务来临时,对RAM的其他区域段进行RAM检测,从而可以在避免影响控制器的其它功能的情况下将RAM检测实施完毕,提高了控制器的性能指标。本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。附图说明0058 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通。

21、技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0059 图1为本发明实施例提供的RAM检测方法的流程图;0060 图2为本发明实施例对控制器内部RAM空间进行划分的示意图;0061 图3为本发明实施例提供的对其他区域段中不存储数据的空白段进行检测的方法流程图;0062 图4为本发明实施例提供的对其他区域段中存储数据的非空白段进行检测的方法流程图;0063 图5为本发明实施例提供的RAM检测系统的结构框图;说 明 书CN 103455436 A4/9页70064 图6为本发明实施例提供的第二检测模块的结构框图;0065 图7为本发明实施例提供的空白段检测单元的结构框。

22、图;0066 图8为本发明实施例提供的非空白段检测单元的结构框图。具体实施方式0067 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0068 图1为本发明实施例提供的RAM检测方法的流程图,参照图1,该方法可以包括:0069 步骤S100、预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;0070 本发。

23、明实施例对RAM空间划分的原则为确保空间的连续性,即数据段空间和栈空间地址要连续,空白区域地址要连续,从而避免空间的浪费。可选的,在具体实现上,可以将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续。0071 图2为对控制器内部RAM空间进行划分的示例,非空白区域段a和非空白区域段c为数据区,其他区域为空白区域段,如空白段b。0072 其中,重要数据可以是保证控制器的操作系统可以正常执行下去的数据,在所划分出来的RAM空间的区域段中,可以选取一个区域段存储重要数据;其他区域段可以是所划分出来的RAM空间的区域段中除存储重要数据的区域段外的区域段,其他区域段包括了存储数据的非空。

24、白区域段和不存储数据的空白区域段。0073 通常操作系统中确保操作系统正常执行下去的数据不会很多,即重要数据的数据量不会太多,因此相对于其他区域段,存储重要数据的区域段可以划分的相对小些。0074 步骤S110、在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;0075 通常系统中确保系统正常执行下去的数据不会很多,这样在操作系统启动时可以先对此区域进行检测,由于空间很小,检测时间会很短。并且存储重要数据的区域段涉及到了操作系统的正常运行,先对存储重要数据的区域段进行检测可以确保操作系统的正常运行。0076 步骤S120、在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述。

25、其他区域段进行RAM检测。0077 对于采用操作系统的控制器,其操作系统具有很多的周期任务,有的周期任务优先级较高,有的周期任务优先级较低;周期任务的优先级划分的依据可以根据应用的实际情况区分,例如刹车系统,刹车信号是很重要的,这个信号的采集就需要放在高优先级的任务中,确保不会被其他任务打断;在本发明实施例中,高优先级的任务是可以打断低优先级的任务,但是低优先级的任务是不能打断高优先级的任务。0078 可选的,本发明实施例预先设定的低优先级周期任务,可以是操作系统的很多周期任务中优先级最低的周期任务。在该预先设定的低优先级周期任务来临时,可对除存储重要数据的区域段外的其他区域段进行RAM检测,。

26、结合步骤S110中对存储重要数据的区域段的RAM检测,即可实现对RAM的所有区域进行全面的检测。说 明 书CN 103455436 A5/9页80079 值得注意的是,步骤S100为本发明实施例预先执行的步骤,执行完一次步骤S100之后,可执行多次的步骤S110和步骤S120;即本发明实施例在预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段之后;可在操作系统每次启动时,对所述存储重要数据的区域段进行RAM检测;在每次预先设定的低优先级周期任务来临时,对所述其他区域段进行RAM检测。0080 本发明实施例提供的RAM检测方法,将控制器内部的RAM空间进行分段处。

27、理,划分成一个存储重要数据的区域段及其他区域段,当操作系统启动时,先对所述存储重要数据的区域段进行RAM检测,在操作系统启动后,预先设定的低优先级周期任务来临时,再对RAM的其他区域段进行RAM检测;本发明实施例采用操作系统与RAM检测功能相结合的方式,在不同的时机对存储重要数据的区域段和其他区域段进行检测,从而避免了RAM检测花费较长时间,而对控制器的运行速度及执行时间造成影响的问题,同时在预先设定的低优先级周期任务来临时,对RAM的其他区域段进行RAM检测,从而可以在避免影响控制器的其它功能的情况下将RAM检测实施完毕,提高了控制器的性能指标。本发明实施例提供的RAM检测方法能够在不影响控。

28、制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。0081 可选的,本发明实施例在对除存储重要数据的区域段的其他区域段进行RAM检测时,可先对所述其他区域段中不存储数据的空白段进行检测,再对所述其他区域段中存储数据的非空白段进行检测。图3示出了对其他区域段中不存储数据的空白段进行检测的方法流程,参照图3,该方法可以包括:0082 步骤S200、向所述空白段的起始地址写入第一数据;0083 可选的,第一数据可以为1;0084 步骤S210、读出所述起始地址中的数据;0085 步骤S220、判断所读出的数据与所述第一数据是否相同,若否,执行步骤S230,若是,执。

29、行步骤S240;0086 步骤S230、确定所述空白段的地址空间异常;0087 步骤S240、向所述起始地址中写入第二数据;0088 可选的,第二数据可以为0;0089 步骤S250、再次读出所述起始地址中的数据;0090 步骤S260、判断再次读出的数据与所述第二数据是否相同,若否,执行步骤S230,若是,执行步骤S270;0091 步骤S270、确定所述空白段的地址空间正常。0092 在本发明实施例中,只要写入的第一数据和读出的数据不等,或者写入的第二数据和读出的数据不等,则可证明此地址空间异常,需要记录故障;只有在写入的第一数据和读出的数据相等,且写入的第二数据和读出的数据相等时,才可证。

30、明此地址空间正常。0093 图4示出了对其他区域段中存储数据的非空白段进行检测的方法流程,参照图4,该方法可以包括:0094 步骤S300、将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;0095 由于需要对地址空间的数据进行改写,所以需要先将非空白段中的数据进行保存,将非空白段中的数据拷贝到已经检测完地址空间正常的空白段中,可选的,可通过图3说 明 书CN 103455436 A6/9页9所示方法确定已经检测完的地址空间正常的空白段。0096 可选的,由于在拷贝过程中有可能发生错误,所以需要利用CRC算法将拷贝后的数据与拷贝前的数据进行比较,如果经校验后结果相同,则可执行后续流程。

31、;否则重新将非空白段中的数据拷贝到已经检测完地址空间正常的空白段中,直到校验结果相同才执行后续流程。0097 步骤S310、向所述非空白段的起始地址写入第一数据;0098 步骤S320、读出所述起始地址中的数据;0099 步骤S330、判断所读出的数据与所述第一数据是否相同,若否,执行步骤S340,若是,执行步骤S350;0100 步骤S340、确定所述非空白段的地址空间异常;0101 步骤S350、向所述起始地址中写入第二数据;0102 步骤S360、再次读出所述起始地址中的数据;0103 步骤S370、判断所读出的数据与所述第二数据是否相同,若否,执行步骤S340、若是,执行步骤S380;。

32、0104 步骤S380、确定所述非空白段的地址空间正常;0105 步骤S390、在确定所述非空白段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中。0106 可选的,在检测完毕后,需要再将拷贝回所述非空白段中的数据,与所述非空白段中原来保存的数据进行CRC校验,在校验通过后RAM检测执行完毕。0107 可选的,在检测完RAM空白段的地址空间正常后,可调用预先存储在ROM(Read Only Memory,只读内存)中的RAM检测程序对RAM区域段中存储数据的非空白段进行检测。为了加快程序的处理速度,本发明将RAM检测程序从ROM中拷贝到RAM中运行,拷贝的时机。

33、为检测完空白段正常后进行拷贝。如在开发阶段可以确保某段RAM空间正常,那么也可以在系统启动后直接将RAM检测程序从ROM空间拷贝到RAM空间,这样就会更节省RAM检测执行的时间。0108 值得注意的是,图3所示方法中的第一数据和图4所示方法中的第一数据可以是相同的数据,也可以是不同的数据;图3所示方法中的第二数据和图4所示方法中的第二数据可以是相同的数据,也可以是不同的数据。只要保证图3所示方法和图4所示方法的各方法中的第一数据和第二数据为不等的数据即可。0109 下面提供一种较为优选的RAM检测方法,该方法可以包括:0110 步骤S400、预先将RAM空间划分为若干段,每段RAM空间的数据段。

34、空间和栈空间地址连续,将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段;0111 步骤S410、在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;0112 步骤S420、在当前操作系统的周期任务为预先设定的低优先级周期任务时,对所述其他区域段中不存储数据的空白段的起始地址写入1;0113 步骤S430、读出所述起始地址中的数据;0114 步骤S440、判断所读出的数据与1是否相同,若否,执行步骤S450,若是,执行步骤S460;说 明 书CN 103455436 A7/9页100115 步骤。

35、S450、确定所述空白段的地址空间异常;0116 步骤S460、向所述起始地址中写入0;0117 步骤S470、再次读出所述起始地址中的数据;0118 步骤S480、判断再次读出的数据与0是否相同,若否,执行步骤S450,若是,执行步骤S490;0119 步骤S490、确定所述空白段的地址空间正常;0120 步骤S500、在检测完RAM空白段,且空白段的地址空间正常后,调用预先存储在ROM中的RAM检测程序,将所述非空白段中的数据保存至已检测的地址空间正常的空白段中;0121 步骤S510、利用CRC(Cyclic Redundancy Check,循环冗余校验码)算法将拷贝后的数据与拷贝前的。

36、数据进行比较,在拷贝后的数据与拷贝前的数据的校验结果相同时,向所述非空白段的起始地址写入1;0122 步骤S520、读出所述起始地址中的数据;0123 步骤S530、判断所读出的数据与1是否相同,若否,执行步骤S540,若是,执行步骤S550;0124 步骤S540、确定所述非空白段的地址空间异常;0125 步骤S550、向所述起始地址中写入0;0126 步骤S560、再次读出所述起始地址中的数据;0127 步骤S570、判断所读出的数据与0是否相同,若否,执行步骤S540、若是,执行步骤S580;0128 步骤S580、确定所述非空白段的地址空间正常;0129 步骤S590、在确定所述非空白。

37、段的地址空间正常后,将保存至已检测的地址空间正常的空白段中的数据拷贝回所述非空白段中;0130 步骤S600、利用CRC算法判断拷贝回所述非空白段中的数据,与所述非空白段中原来保存的数据是否相同,若否,执行步骤S590、若是,执行步骤S610;0131 步骤S610、结束流程。0132 本发明实施例提供的RAM检测方法能够在不影响控制器的运行速度及执行时间的情况下,对RAM进行全面的检测,解除RAM所存在的安全隐患。0133 下面对本发明实施例提供的RAM检测系统进行介绍,下文描述的RAM检测系统与上文描述的RAM检测方法相对应,两者可相互参照。0134 图5为本发明实施例提供的RAM检测系统的结构框图,参照图5,该系统可以包括:0135 分段模块100,用于预先对RAM空间进行分段处理,将RAM空间划分为一个存储重要数据的区域段及其他区域段;0136 可选的,可将RAM空间划分为若干段,每段RAM空间的数据段空间和栈空间地址连续,将数据段空间和栈空间地址连续的一段RAM空间划分为所述存储重要数据的区域段,将其他段数据段空间和栈空间地址连续的RAM空间划分为所述其他区域段。0137 第一检测模块200,用于在操作系统启动时,对所述存储重要数据的区域段进行RAM检测;说 明 书CN 103455436 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1