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

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

Info

Publication number
CN106354635A
CN106354635A CN201610727513.1A CN201610727513A CN106354635A CN 106354635 A CN106354635 A CN 106354635A CN 201610727513 A CN201610727513 A CN 201610727513A CN 106354635 A CN106354635 A CN 106354635A
Authority
CN
China
Prior art keywords
self
program code
data
inspection
threshold value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610727513.1A
Other languages
English (en)
Other versions
CN106354635B (zh
Inventor
宋彦锋
杨芳
徐云松
沈沉
左群业
张文
浮明军
张保善
刘秋菊
杨生苹
王西邓
裘愉涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
Xuji Group Co Ltd
State Grid Zhejiang Electric Power Co Ltd
XJ Electric Co Ltd
Xuchang XJ Software Technology Co Ltd
Jiaxing Power Supply Co of State Grid Zhejiang Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
Xuji Group Co Ltd
State Grid Zhejiang Electric Power Co Ltd
XJ Electric Co Ltd
Xuchang XJ Software Technology Co Ltd
Jiaxing Power Supply Co of State Grid Zhejiang Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, Xuji Group Co Ltd, State Grid Zhejiang Electric Power Co Ltd, XJ Electric Co Ltd, Xuchang XJ Software Technology Co Ltd, Jiaxing Power Supply Co of State Grid Zhejiang Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201610727513.1A priority Critical patent/CN106354635B/zh
Publication of CN106354635A publication Critical patent/CN106354635A/zh
Application granted granted Critical
Publication of CN106354635B publication Critical patent/CN106354635B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种嵌入式设备的程序代码段自检方法及装置
技术领域
本发明属于嵌入式***应用技术领域,具体涉及一种嵌入式设备的程序代码段自检方法及装置。
背景技术
嵌入式设备的可靠性和实时性一般要求都很高,任何情况下都要保证设备的可靠动作,提高设备的可靠性和实时性是嵌入式产品设计的重点工作。由于一些不可预测的因素或者是没有发现的潜在危险导致程序代码段异常,可能导致设备产生不可预知的危险,在这种情况下很难保证设备动作的可靠性,甚至会对***造成严重的后果。
发明内容
本发明的目的是提供一种嵌入式设备的程序代码段自检方法,用以解决嵌入式设备程序代码段运行时出错的问题。
为解决上述技术问题,本发明提供一种嵌入式设备的程序代码段自检方法,步骤包括:
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负荷值对应一个门槛值,此时可以通过直接计算或者查表来确定门槛值。
本发明还提供一种嵌入式设备的程序代码段自检装置,包括如下模块:用于解析目标文件,获取记录程序代码区的内存定位信息、代码区长度,并将整个程序代码在内存中的备份区进行备份的模块;用于程序运行时,实时比较检测程序运行区和备份区数据的模块;用于处理比较结果,若一致,则数据正常;若不一致,则数据异常,并告警的模块。
上述嵌入式设备的程序代码段自检装置,实际上是基于本发明方法流程的一种计算机解决方案,即一种软件构架,上述各种模块即为与方法流程相对应的各处理进程或程序。由于对上述方法的介绍已经足够清楚完整,故对该装置不再进行详细描述。

Claims (8)

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所述的嵌入式设备的程序代码段自检装置,其特征在于,还包括用于数据异常时,将异常情况写入报告的模块。
CN201610727513.1A 2016-08-25 2016-08-25 一种嵌入式设备的程序代码段自检方法及装置 Active CN106354635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610727513.1A CN106354635B (zh) 2016-08-25 2016-08-25 一种嵌入式设备的程序代码段自检方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610727513.1A CN106354635B (zh) 2016-08-25 2016-08-25 一种嵌入式设备的程序代码段自检方法及装置

Publications (2)

Publication Number Publication Date
CN106354635A true CN106354635A (zh) 2017-01-25
CN106354635B CN106354635B (zh) 2018-11-09

Family

ID=57854227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610727513.1A Active CN106354635B (zh) 2016-08-25 2016-08-25 一种嵌入式设备的程序代码段自检方法及装置

Country Status (1)

Country Link
CN (1) CN106354635B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766267A (zh) * 2018-12-15 2019-05-17 中国平安人寿保险股份有限公司 Cpu高耗代码定位方法、装置、电子设备及存储介质
CN111027072A (zh) * 2019-12-20 2020-04-17 北京安天网络安全技术有限公司 Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1908909A (zh) * 2006-08-24 2007-02-07 无敌科技(西安)有限公司 一种开机程序备援***及其方法
US7191445B2 (en) * 2001-08-31 2007-03-13 Texas Instruments Incorporated Method using embedded real-time analysis components with corresponding real-time operating system software objects
CN102520974A (zh) * 2011-10-26 2012-06-27 京信通信***(中国)有限公司 自动恢复直放站射频数据表的方法及装置
CN104298599A (zh) * 2014-10-21 2015-01-21 卡斯柯信号有限公司 嵌入式软件运行时故障的在线自检与切片恢复方法及装置
CN104572414A (zh) * 2014-12-23 2015-04-29 深圳市邦彦信息技术有限公司 一种用于vxWorks的CPU占用率检测方法和***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191445B2 (en) * 2001-08-31 2007-03-13 Texas Instruments Incorporated Method using embedded real-time analysis components with corresponding real-time operating system software objects
CN1908909A (zh) * 2006-08-24 2007-02-07 无敌科技(西安)有限公司 一种开机程序备援***及其方法
CN102520974A (zh) * 2011-10-26 2012-06-27 京信通信***(中国)有限公司 自动恢复直放站射频数据表的方法及装置
CN104298599A (zh) * 2014-10-21 2015-01-21 卡斯柯信号有限公司 嵌入式软件运行时故障的在线自检与切片恢复方法及装置
CN104572414A (zh) * 2014-12-23 2015-04-29 深圳市邦彦信息技术有限公司 一种用于vxWorks的CPU占用率检测方法和***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766267A (zh) * 2018-12-15 2019-05-17 中国平安人寿保险股份有限公司 Cpu高耗代码定位方法、装置、电子设备及存储介质
CN111027072A (zh) * 2019-12-20 2020-04-17 北京安天网络安全技术有限公司 Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置
CN111027072B (zh) * 2019-12-20 2024-02-27 北京安天网络安全技术有限公司 Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置

Also Published As

Publication number Publication date
CN106354635B (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
US11138056B2 (en) System and method for unsupervised prediction of machine failures
US10579453B2 (en) Stream-processing data
WO2020052147A1 (zh) 监测设备故障检测方法及装置
US11403551B2 (en) System and method for validating unsupervised machine learning models
CN113658414B (zh) 矿场设备故障预警方法、装置、终端设备及存储介质
EP3355197B1 (en) Fault processing method, related apparatus, and computer
CN110708204A (zh) 一种基于运维知识库的异常处理方法、***、终端及介质
US11933695B2 (en) System and method for detecting anomalies in sensory data of industrial machines located within a predetermined proximity
US20210240178A1 (en) System and method for recognizing and forecasting anomalous sensory behavioral patterns of a machine
CN108170581A (zh) 一种故障预警方法、装置及电子设备
CN104044969A (zh) 电梯故障预警方法和***
WO2019019429A1 (zh) 一种虚拟机异常检测方法、装置、设备及存储介质
CN104331310A (zh) 一种后台应用一键化安装方法及***
CN114676019B (zh) 一种中央处理器状态监测方法、装置、设备、存储介质
CN106354635A (zh) 一种嵌入式设备的程序代码段自检方法及装置
KR20150007913A (ko) 고장 예측 장치
CN111310778A (zh) 检测装置、检测方法以及记录检测程序的记录介质
CN117313019B (zh) 一种基于深度强化学习的数据异常检测方法
CN112534371A (zh) 优化用于监视工业机器操作的机器学习算法的准确度
CN116415851A (zh) 一种基于深度学习的设施运维性态指标智能识别评价方法
CN111193617B (zh) 网页篡改识别方法、装置、电子设备及存储介质
JP2012088887A (ja) トレースデータ取得装置、トレースデータ取得装置のトレースデータ取得方法およびデバッグシステム
CN114755036A (zh) 磁浮列车悬浮***的故障检测方法、装置、设备及介质
CN103678095A (zh) 一种告警检测方法
CN100369009C (zh) 使用***管理中断信号的监控***及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant