书签 分享 收藏 举报 版权申诉 / 7

一种嵌入式设备的程序代码段自检方法及装置.pdf

  • 上传人:bo****18
  • 文档编号:6026857
  • 上传时间:2019-04-03
  • 格式:PDF
  • 页数:7
  • 大小:360.72KB
  • 摘要
    申请专利号:

    CN201610727513.1

    申请日:

    2016.08.25

    公开号:

    CN106354635A

    公开日:

    2017.01.25

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

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

    IPC分类号:

    G06F11/36

    主分类号:

    G06F11/36

    申请人:

    许继集团有限公司; 许继电气股份有限公司; 许昌许继软件技术有限公司; 国家电网公司; 国网浙江省电力公司; 国网浙江省电力公司嘉兴供电公司

    发明人:

    宋彦锋; 杨芳; 徐云松; 沈沉; 左群业; 张文; 浮明军; 张保善; 刘秋菊; 杨生苹; 王西邓; 裘愉涛

    地址:

    461000 河南省许昌市许继大道1298号

    优先权:

    专利代理机构:

    郑州睿信知识产权代理有限公司 41119

    代理人:

    崔旭东

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种嵌入式设备的程序代码段自检方法及装置,属于嵌入式系统应用技术领域,方法包括如下步骤:解析目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程序代码在内存中的备份区进行备份;程序运行时,实时比较检测程序运行区和备份区数据;处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警。加入程序代码段自检功能之后,使设备能够在运行过程中实时检测程序代码段,并及时发现异常情况,一旦有异常情况发生,设备会将异常情况记录并报警,帮助现场工作人员能尽快的定位并解决问题,避免问题的扩大而造成不可挽回的损失。

    权利要求书

    1.一种嵌入式设备的程序代码段自检方法,其特征在于,包括如下步骤:
    1)解析目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程序代
    码在内存中的备份区进行备份;
    2)程序运行时,实时比较检测程序运行区和备份区数据;
    3)处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警。
    2.根据权利要求1所述的嵌入式设备的程序代码段自检方法,其特征在于,还包括实时
    检测并判定CPU负荷情况,用于设定程序代码段自检任务门槛值的步骤,所述门槛值包括监
    测时间间隔和数据自检粒度;CPU负荷增大时,减小数据自检粒度和/或增大监测时间间隔;
    CPU负荷减小时,增大数据自检粒度和/或减小监测时间间隔。
    3.根据权利要求2所述的嵌入式设备的程序代码段自检方法,其特征在于,设定门槛值
    时,将CPU负荷的变化分为若干个范围,每个范围对应一个门槛值。
    4.根据权利要求1所述的嵌入式设备的程序代码段自检方法,其特征在于,还包括数据
    异常时,将异常情况写入报告的步骤。
    5.一种嵌入式设备的程序代码段自检装置,其特征在于,包括如下模块:
    1)用于解析目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程
    序代码在内存中的备份区进行备份的模块;
    2)用于程序运行时,实时比较检测程序运行区和备份区数据的模块;
    3)用于处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警的模块。
    6.根据权利要求5所述的嵌入式设备的程序代码段自检装置,其特征在于,还包括用于
    实时检测并判定CPU负荷情况,用于设定程序代码段自检任务门槛值的模块,所述门槛值包
    括监测时间间隔和数据自检粒度;CPU负荷增大时,减小数据自检粒度和/或增大检测时间
    间隔;CPU负荷减小时,增大数据自检粒度和/或减小监测时间间隔。
    7.根据权利要求6所述的嵌入式设备的程序代码段自检装置,其特征在于,设定门槛值
    时,将CPU负荷变化分为若干个范围,每个范围对应一个门槛值。
    8.根据权利要求5所述的嵌入式设备的程序代码段自检装置,其特征在于,还包括用于
    数据异常时,将异常情况写入报告的模块。

    说明书

    一种嵌入式设备的程序代码段自检方法及装置

    技术领域

    本发明属于嵌入式系统应用技术领域,具体涉及一种嵌入式设备的程序代码段自
    检方法及装置。

    背景技术

    嵌入式设备的可靠性和实时性一般要求都很高,任何情况下都要保证设备的可靠
    动作,提高设备的可靠性和实时性是嵌入式产品设计的重点工作。由于一些不可预测的因
    素或者是没有发现的潜在危险导致程序代码段异常,可能导致设备产生不可预知的危险,
    在这种情况下很难保证设备动作的可靠性,甚至会对系统造成严重的后果。

    发明内容

    本发明的目的是提供一种嵌入式设备的程序代码段自检方法,用以解决嵌入式设
    备程序代码段运行时出错的问题。

    为解决上述技术问题,本发明提供一种嵌入式设备的程序代码段自检方法,步骤
    包括:

    1)解析目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程
    序代码在内存中的备份区进行备份;

    2)程序运行时,实时比较检测程序运行区和备份区数据;

    3)处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警。

    进一步地,还包括实时检测并判定CPU负荷情况,用于设定程序代码段自检任务门
    槛值的步骤,所述门槛值包括监测时间间隔和数据自检粒度;CPU负荷增大时,减小数据自
    检粒度和/或增大监测时间间隔;CPU负荷减小时,增大数据自检粒度和/或减小监测时间间
    隔。

    进一步地,设定门槛值时,将CPU负荷的变化分为若干个范围,每个范围对应一个
    门槛值。

    进一步地,还包括数据异常时,将异常情况写入报告的步骤。

    本发明还提供一种嵌入式设备的程序代码段自检装置,包括如下模块:用于解析
    目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程序代码在内存中
    的备份区进行备份的模块;用于程序运行时,实时比较检测程序运行区和备份区数据的模
    块;用于处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警的模块。

    进一步地,还包括用于实时检测并判定CPU负荷情况,用于设定程序代码段自检任
    务门槛值的模块,所述门槛值包括监测时间间隔和数据自检粒度;CPU负荷增大时,减小数
    据自检粒度和/或增大检测时间间隔;CPU负荷减小时,增大数据自检粒度和/或减小监测时
    间间隔。

    进一步地,设定门槛值时,将CPU负荷变化分为若干个范围,每个范围对应一个门
    槛值。

    进一步地,还包括用于数据异常时,将异常情况写入报告的模块。

    本发明的有益效果是:在解析目标文件时将程序代码区在制定的内存做备份,在
    设备运行时实时比较检测程序运行区和备份数据。加入的程序代码段自检功能,使设备能
    够在运行过程中实时检测程序代码段,并及时发现异常情况,一旦发现异常,设备会将异常
    情况记录并告警;帮助现场工作人员尽快的定位并解决问题,保证了设备运行的安全性和
    可靠性,避免问题的扩大而造成不可挽回的损失。

    附图说明

    图1是程序代码段自检任务流程图;

    图2是CPU占用率检测任务流程图。

    具体实施方式

    下面结合附图说明,对本发明进行进一步详细说明。

    本发明提供一种嵌入式设备的程序代码段自检方法,具体实施步骤如图1所示。

    首先,初始化需要解析的目标文件和自检任务门槛的默认值。解析目标文件得到
    程序代码段的地址和大小,并将程序代码段的数据复制到一个指定的内存位置,作为备份
    代码区。自定义自检任务门槛的默认值,包括监测时间间隔和数据自检粒度。在此实施例
    中,监测时间间隔默认值设置为10ms,数据自检粒度默认值设置为128字节。

    然后,进行程序代码段检测任务。设备运行时,实时比较程序运行区代码段和备份
    区代码段的128字节的二进制数据,实现对代码段的检测。没有异常就检测下一128字节的
    数据,如果发现异常则告警并将异常情况写入报告,使现场人员及时发现异常,并方便技术
    人员准确定位异常并改正错误。

    其中,在设备运行时,代码段自检任务会根据CPU的负荷情况来设定代码段自检的
    门槛值,门槛值包括监测时间间隔和数据自检粒度,做到在不影响设备性能的情况下保证
    设备运行的安全性和可靠性。具体CPU占用率检测任务方法如图2所示。

    在初始化阶段,记录一段固定延时的时间间隔,此时其他任务都没有开始运行,可
    获取一个比较精确的标准参照时间间隔。该任务运行期间,记录一段固定延时的时间间隔
    (和该任务初始化时的间隔一样),设备运行期间,该任务的优先级最低,只要有其他任务运
    行,该任务就会被打断去执行其他任务,直到其他任务都执行完毕并处于挂起状态,该任务
    才会被继续执行。CPU任务越多,执行越频繁,实际统计的时间间隔就越长。将标准参照时间
    间隔和该时间间隔比较就能够得到CPU的占有率,知道CPU的负荷大小。

    当CPU负荷比较大时,当前CPU任务比较繁重,调用更改程序代码段自检任务门槛
    的接口,将程序代码段自检任务的数据自检粒度减小或者监测时间间隔增大,或者同时减
    小数据自检粒度和增大监测时间间隔,通过此方法来降低自检速度,使得程序代码段任务
    尽量小的减少对CPU的消耗。

    当CPU负荷比较小时,当前CPU任务比较轻松,调用更改程序代码段自检任务门槛
    的接口,将程序代码段自检任务的数据自检粒度增大或者监测时间间隔减小,或者同时增
    大数据自检粒度和减小监测时间间隔,通过此方法来提高自检速度。

    可具体设置为:当CPU占有率小于30%时候,CPU自检任务调用更改程序代码段自
    检任务门槛的接口,将程序代码段自检任务的监测时间间隔改为2ms、数据自检粒度改为
    256字节;当CPU占有率在30%~60%之间的时候,将门槛都恢复默认值;当CPU占有率大于
    60%时候,CPU自检任务调用更改程序代码段自检任务门槛的接口,将程序代码段自检任务
    监测时间间隔改为20ms、数据自检粒度改为64字节。

    在上述实施例中,将CPU负荷情况分为三个范围,即30%以下、30%~60%之间、
    60%以上,每一个范围对应一个门槛值,即30%以下门槛值为监测时间间隔2ms、数据自检
    粒度256字节;30%~60%之间门槛值为监测时间间隔10ms、数据自检粒度128字节;60%以
    上为监测时间间隔20ms、数据自检粒度64字节。作为其他实施方式,可根据实际情况,将CPU
    负荷情况进一步细分成更多的范围,对应更多的门槛值,甚至是每个CPU负荷值对应一个门
    槛值,此时可以通过直接计算或者查表来确定门槛值。

    本发明还提供一种嵌入式设备的程序代码段自检装置,包括如下模块:用于解析
    目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程序代码在内存中
    的备份区进行备份的模块;用于程序运行时,实时比较检测程序运行区和备份区数据的模
    块;用于处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警的模块。

    上述嵌入式设备的程序代码段自检装置,实际上是基于本发明方法流程的一种计
    算机解决方案,即一种软件构架,上述各种模块即为与方法流程相对应的各处理进程或程
    序。由于对上述方法的介绍已经足够清楚完整,故对该装置不再进行详细描述。

    关 键  词:
    一种 嵌入式 设备 程序代码 自检 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种嵌入式设备的程序代码段自检方法及装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6026857.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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