CN105550057B - 嵌入式软件系统故障检测恢复方法和系统 - Google Patents

嵌入式软件系统故障检测恢复方法和系统 Download PDF

Info

Publication number
CN105550057B
CN105550057B CN201511026822.8A CN201511026822A CN105550057B CN 105550057 B CN105550057 B CN 105550057B CN 201511026822 A CN201511026822 A CN 201511026822A CN 105550057 B CN105550057 B CN 105550057B
Authority
CN
China
Prior art keywords
task
software system
monitoring
application
embedded software
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.)
Active
Application number
CN201511026822.8A
Other languages
English (en)
Other versions
CN105550057A (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.)
HNAC Technology Co Ltd
Original Assignee
HNAC Technology 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 HNAC Technology Co Ltd filed Critical HNAC Technology Co Ltd
Priority to CN201511026822.8A priority Critical patent/CN105550057B/zh
Publication of CN105550057A publication Critical patent/CN105550057A/zh
Application granted granted Critical
Publication of CN105550057B publication Critical patent/CN105550057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function

Landscapes

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

Abstract

本发明涉及一种嵌入式软件系统故障检测恢复方法和系统,实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障,并对出现故障的应用任务进行重启。检测嵌入式软件系统是否出现任务调度故障,并在检测到嵌入式软件系统出现任务调度故障时,对嵌入式软件系统进行故障恢复。不仅可以检测出实时多任务系统中的局部软件故障和整体的软件系统故障,并且在软件系统出现故障时可以自动恢复软件系统到正常运行状态,实现了有选择性的软件故障检测和恢复,检测范围更全面、无死角,且简单可靠。

Description

嵌入式软件系统故障检测恢复方法和系统
技术领域
本发明涉及故障检测技术领域,特别是涉及一种嵌入式软件系统故障检测恢复方法和系统。
背景技术
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。嵌入式软件广泛应用于国防、工控、家用、商用、办公、医疗等领域。
传统的嵌入式软件故障检测及恢复方法,一般是在某个循环程序或中断程序中周期性的进行“喂狗”操作,当软件系统出现故障,超过一定时间没有“喂狗”时,硬件看门狗启动,对CPU进行复位,软件系统重新运行。而在实时多任务系统中,各任务程序独立完成不同的功能,当系统中任何一个任务运行出现故障时,都会引起整个软件系统重新启动,可能会带来严重后果。此外,当软件系统某一功能模块出现故障时,只要硬件看门狗的“喂狗”程序可以正常运行,软件系统就不会重启,这时软件系统就处于带病运行状态,会导致某些功能失效或其它意想不到的后果。传统的嵌入式软件故障检测及恢复方法存在可靠性低的缺点。
发明内容
基于此,有必要针对上述问题,提供一种可靠性高的嵌入式软件系统故障检测恢复方法和系统。
一种嵌入式软件系统故障检测恢复方法,包括以下步骤:
实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障;
若是,则对出现故障的应用任务进行重启;
检测所述嵌入式软件系统是否出现任务调度故障;
在检测到所述嵌入式软件系统出现任务调度故障时,对所述嵌入式软件系统进行故障恢复。
一种嵌入式软件系统故障检测恢复系统,包括:
任务监控模块,用于实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障;
任务重启模块,用于在应用任务出现故障时,对出现故障的应用任务进行重启;
调度检测模块,用于检测所述嵌入式软件系统是否出现任务调度故障;
故障恢复模块,用于在检测到所述嵌入式软件系统出现任务调度故障时,对所述嵌入式软件系统进行故障恢复。
上述嵌入式软件系统故障检测恢复方法和系统,实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障,并对出现故障的应用任务进行重启。检测嵌入式软件系统是否出现任务调度故障,并在检测到嵌入式软件系统出现任务调度故障时,对嵌入式软件系统进行故障恢复。通过实时监控嵌入式软件系统的各应用任务的运行情况,当检测到某一应用任务出现故障时重启应用任务来恢复软件系统到正常状态运行。检测嵌入式软件系统的任务调度是否失效,若任务调度失效则对嵌入式软件系统进行故障恢复,以达到软件系统整体恢复的目的。不仅可以检测出实时多任务系统中的局部软件故障和整体的软件系统故障,并且在软件系统出现故障时可以自动恢复软件系统到正常运行状态,实现了有选择性的软件故障检测和恢复,检测范围更全面、无死角,且简单可靠。
附图说明
图1为一实施例中嵌入式软件系统故障检测恢复方法的流程图;
图2为另一实施例中嵌入式软件系统故障检测恢复方法的流程图;
图3为一实施例中嵌入式软件系统故障检测恢复系统的结构图;
图4为另一实施例中嵌入式软件系统故障检测恢复系统的结构图。
具体实施方式
一种嵌入式软件系统故障检测恢复方法,适用于对实时多任务嵌入式软件系统进行故障检测和恢复。如图1所示,上述方法包括以下步骤:
步骤S120:实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障。实时对嵌入式软件系统的各应用任务进行检测,监控各应用任务的运行情况,当实时多任务系统中的某一应用任务未在设定时间内作出反应时,则可判定为此应用任务运行出现故障。若检测到应用任务出现故障,则进行步骤S130;若否,可返回步骤S120,继续对应用任务进行监控,也可直接进行步骤S140,进行任务调度故障检测。本实施例中在步骤S120未检测到应用任务出现故障时进行步骤S140。在其中一个实施例中,具体可通过软件看门狗模块对应用任务进行监控。步骤S120包括步骤122和步骤124。
步骤122:通过嵌入式软件系统的实时多任务系统中预设的监控任务,实时接收实时多任务系统中各应用任务发送的软件喂狗信号。可预先在实时多任务系统中建立一个运行优先级最高的任务作为监控任务,通过监控任务对各应用任务进行监控,实时接收各应用任务发送的软件喂狗信号。
具体以对DMP300C保护测控装置的软件系统进行故障检测和恢复为例,软件系统的调度器采用实时内核对各应用任务进行调度。应用任务在程序初始化后申请全局资源,包括内存、文件等。应用任务调用软件看门狗模块的ResetTaskWtd函数复位软件看门狗模块的定时计数器,持续发送软件喂狗信号至软件看门狗模块进行“喂狗”,同时应用任务执行相应的功能流程。
步骤124:通过监控任务提取在预设时间内未发出软件喂狗信号的应用任务作为出现故障的应用任务。预设时间的具体取值范围可根据实际情况调整,监控任务每100ms周期性的检测各应用任务是否在预设时间内调用了TerminateTask函数对软件看门狗进行了复位,如果应用任务超出预设时间没有及时调用TerminateTask函数,则认为此应用任务出现故障。
步骤S130:对出现故障的应用任务进行重启。若检测到应用任务出现故障,则通过软件看门狗模块对出现故障的应用任务进行重启,来恢复软件系统到正常状态运行。在其中一个实施例中,步骤S130包括132至步骤136。
步骤132:通过监控任务释放出现故障的应用任务所占资源。具体可调用出现超时的应用任务的TerminateTask回调函数,释放应用任务占用的资源。
步骤134:通过监控任务删除出现故障的应用任务。具体可调用实时内核的TaskDel函数删除超时的应用任务。
步骤136:通过监控任务重新创建出现故障的应用任务。具体可调用实时内核的TaskCreate函数重新创建出现超时的应用任务。
通过软件看门狗模块对应用任务监控,并对检测到出现故障的应用任务进行重启,以达到有选择性的恢复局部故障的目的。
步骤S140:检测嵌入式软件系统是否出现任务调度故障。当软件系统故障较严重时,可能会使实时操作系统内核的任务调度失效,即出现任务调度故障,导致整个软件系统停止运行。若未检测到应用任务,或者对出现故障的应用任务进行重启之后,对嵌入式软件系统进行任务调度故障检测,判断是否存在整体软件系统故障。
具体地,任务调度故障可包括两种情况:1、监控任务得不到执行,在检测到应用任务出现故障时无法对应用任务进行重启。2、监控任务在运行但应用任务得不到执行,这种情况下监控任务会检测出其它应用任务出现运行超时的情况,并对其它应用任务进行重启,尝试恢复其它应用任务的运行,但此时因调度器已经出现故障,其它应用任务虽然重启但是仍然分配不到CPU的执行时间。
对应地,在其中一个实施例中,步骤S140包括步骤142和/或步骤144。
步骤142:检测在设定时间内是否接收到监控任务发送的硬件喂狗信号;若否,则嵌入式软件系统出现任务调度故障。设定时间的具体取值范围同样可根据实际情况调整,针对监控任务得不到执行这一情况,具体可通过硬件看门狗对监控任务进行监控,使监控任务定期对硬件看门狗装置进行“喂狗”操作,如果监测任务未在设定时间内发送硬件喂狗信号,则说明监控任务本身没有运行,在检测到应用任务出现故障时无法对应用任务进行重启。此时可认为嵌入式软件系统出现任务调度故障。
步骤144:将监控任务挂起预设时长,检测监控任务挂起前后嵌入式软件系统的调度计数器是否发生变化;若否,则嵌入式软件系统出现任务调度故障。预设时长的具体取值并不唯一,将监控任务挂起即是指暂时停止监控任务。针对监控任务在运行但应用任务得不到执行这一情况,监控任务定期将自己挂起一段时间。由于调度器每切换一次当前运行的任务,调度计数器会加1,在监控任务恢复运行后,通过对比挂起前后调度器的调度计数器是否发生变化来判断调度器是否失效。
具体可在调用实时内核的TaskCreate函数重建应用任务后,将实时内核的调度计数器CtxSwCnt的值保存到OldCtxSwCnt变量中。调用实时内核的Sleep(100)函数,将监控任务本身挂起100ms。调用硬件看门狗装置的ResetWtd函数,复位硬件看门狗装置的定时计数器。在监控任务恢复运行后比较调度计数器的值OldCtxSwCnt是否等于CtxSwCnt。如果挂起前调度计数器和挂起后的调度计数器相等,则可以确定调度器已失效,嵌入式软件系统出现任务调度故障。
本实施例中步骤S140同时包括步骤142和步骤144,针对任务调度故障的两种具体情况,分别采用对应方式进行任务调度故障检测,可检测出调度器以及软件看门狗监控功能是否失效,在进行整体软件系统故障检测时提高检测准确性。
步骤S150:在检测到嵌入式软件系统出现任务调度故障时,对嵌入式软件系统进行故障恢复。当确认嵌入式软件系统出现任务调度故障时,则对嵌入式软件系统进行故障恢复。本实施例中可通过停止发送硬件喂狗信号至硬件看门狗装置,利用硬件看门狗装置的复位信号对CPU进行复位重启,以达到软件系统整体恢复的目的。
在其中一个实施例中,如图2所示,步骤S120之前,嵌入式软件系统故障检测恢复方法还可包括步骤S110。
步骤S110:对嵌入式软件系统的应用任务进行初始化处理。在对应用任务进行监控之前对嵌入式软件系统进行初始化处理,具体可通过软件看门狗模块初始化并调用实时内核的TaskCreate函数创建监控任务。各应用任务调用软件看门狗模块的RegisterTask函数进行注册,函数参数包括:任务ID、任务优先级、软件看门狗复位时间、任务运行回调函数和任务终止回调函数。软件看门狗模块调用实时内核的TaskCreate函数创建所有注册的应用任务,完成嵌入式软件系统的初始化处理。
上述嵌入式软件系统故障检测恢复方法,通过实时监控嵌入式软件系统的各应用任务的运行情况,当检测到某一应用任务出现故障时重启应用任务来恢复软件系统到正常状态运行。检测嵌入式软件系统的任务调度是否失效,若任务调度失效则对嵌入式软件系统进行故障恢复,以达到软件系统整体恢复的目的。不仅可以检测出实时多任务系统中的局部软件故障和整体的软件系统故障,并且在软件系统出现故障时可以自动恢复软件系统到正常运行状态,实现了有选择性的软件故障检测和恢复,检测范围更全面、无死角,且简单可靠。
本发明还提供了一种嵌入式软件系统故障检测恢复系统,适用于对实时多任务嵌入式软件系统进行故障检测和恢复。如图3所示,上述系统包括任务监控模块120、任务重启模块130、调度检测模块140和故障恢复模块150。
任务监控模块120用于实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障。实时对嵌入式软件系统的各应用任务进行检测,监控各应用任务的运行情况,当实时多任务系统中的某一应用任务未在设定时间内作出反应时,则可判定为此应用任务运行出现故障。在其中一个实施例中,具体可通过软件看门狗模块对应用任务进行监控。任务监控模块120包括第一监控单元和第二监控单元。
第一监控单元用于通过嵌入式软件系统的实时多任务系统中预设的监控任务,实时接收实时多任务系统中各应用任务发送的软件喂狗信号。可预先在实时多任务系统中建立一个运行优先级最高的任务作为监控任务,通过监控任务对各应用任务进行监控,实时接收各应用任务发送的软件喂狗信号。
具体以对DMP300C保护测控装置的软件系统进行故障检测和恢复为例,软件系统的调度器采用实时内核对各应用任务进行调度。应用任务在程序初始化后申请全局资源,包括内存、文件等。应用任务调用软件看门狗模块的ResetTaskWtd函数复位软件看门狗模块的定时计数器,持续发送软件喂狗信号至软件看门狗模块进行“喂狗”,同时应用任务执行相应的功能流程。
第二监控单元用于通过监控任务提取在预设时间内未发出软件喂狗信号的应用任务作为出现故障的应用任务。预设时间的具体取值范围可根据实际情况调整,监控任务每100ms周期性的检测各应用任务是否在预设时间内调用了TerminateTask函数对软件看门狗进行了复位,如果应用任务超出预设时间没有及时调用TerminateTask函数,则认为此应用任务出现故障。
任务重启模块130用于在应用任务出现故障时,对出现故障的应用任务进行重启。若检测到应用任务出现故障,则通过软件看门狗模块对出现故障的应用任务进行重启,来恢复软件系统到正常状态运行。在其中一个实施例中,任务重启模块130包括第一重启单元、第二重启单元和第三重启单元。
第一重启单元用于通过监控任务释放出现故障的应用任务所占资源。具体可调用出现超时的应用任务的TerminateTask回调函数,释放应用任务占用的资源。
第二重启单元用于通过监控任务删除出现故障的应用任务。具体可调用实时内核的TaskDel函数删除超时的应用任务。
第三重启单元用于通过监控任务重新创建出现故障的应用任务。具体可调用实时内核的TaskCreate函数重新创建出现超时的应用任务。
通过软件看门狗模块对应用任务监控,并对检测到出现故障的应用任务进行重启,以达到有选择性的恢复局部故障的目的。
调度检测模块140用于检测嵌入式软件系统是否出现任务调度故障。当软件系统故障较严重时,可能会使实时操作系统内核的任务调度失效,即出现任务调度故障,导致整个软件系统停止运行。若未检测到应用任务,或者对出现故障的应用任务进行重启之后,对嵌入式软件系统进行任务调度故障检测,判断是否存在整体软件系统故障。本实施例中调度检测模块140在任务监控模块120未检测到应用任务出现故障时,以及在任务重启模块130对出现故障的应用任务进行重启后均进行任务调度故障检测。
具体地,任务调度故障可包括两种情况:1、监控任务得不到执行,在检测到应用任务出现故障时无法对应用任务进行重启。2、监控任务在运行但应用任务得不到执行,这种情况下监控任务会检测出其它应用任务出现运行超时的情况,并对其它应用任务进行重启,尝试恢复其它应用任务的运行,但此时因调度器已经出现故障,其它应用任务虽然重启但是仍然分配不到CPU的执行时间。
对应地,在其中一个实施例中,调度检测模块140包括第一检测单元和/或第二检测单元。
第一检测单元用于检测在设定时间内是否接收到监控任务发送的硬件喂狗信号;若否,则嵌入式软件系统出现任务调度故障。设定时间的具体取值范围同样可根据实际情况调整,针对监控任务得不到执行这一情况,具体可通过硬件看门狗对监控任务进行监控,使监控任务定期对硬件看门狗装置进行“喂狗”操作,如果监测任务未在设定时间内发送硬件喂狗信号,则说明监控任务本身没有运行,在检测到应用任务出现故障时无法对应用任务进行重启。此时可认为嵌入式软件系统出现任务调度故障。
第二检测单元用于在将监控任务挂起预设时长,检测监控任务挂起前后嵌入式软件系统的调度计数器是否发生变化;若否,则嵌入式软件系统出现任务调度故障。预设时长的具体取值并不唯一,将监控任务挂起即是指暂时停止监控任务。针对监控任务在运行但应用任务得不到执行这一情况,监控任务定期将自己挂起一段时间。由于调度器每切换一次当前运行的任务,调度计数器会加1,在监控任务恢复运行后,通过对比挂起前后调度器的调度计数器是否发生变化来判断调度器是否失效。
具体可在调用实时内核的TaskCreate函数重建应用任务后,将实时内核的调度计数器CtxSwCnt的值保存到OldCtxSwCnt变量中。调用实时内核的Sleep(100)函数,将监控任务本身挂起100ms。调用硬件看门狗装置的ResetWtd函数,复位硬件看门狗装置的定时计数器。在监控任务恢复运行后比较调度计数器的值OldCtxSwCnt是否等于CtxSwCnt。如果挂起前调度计数器和挂起后的调度计数器相等,则可以确定调度器已失效,嵌入式软件系统出现任务调度故障。
本实施例中调度检测模块140同时包括第一检测单元和第二检测单元,针对任务调度故障的两种具体情况,分别采用对应方式进行任务调度故障检测,可检测出调度器以及软件看门狗监控功能是否失效,在进行整体软件系统故障检测时提高检测准确性。
故障恢复模块150用于在检测到嵌入式软件系统出现任务调度故障时,对嵌入式软件系统进行故障恢复。当确认嵌入式软件系统出现任务调度故障时,则对嵌入式软件系统进行故障恢复。本实施例中可通过停止发送硬件喂狗信号至硬件看门狗装置,利用硬件看门狗装置的复位信号对CPU进行复位重启,以达到软件系统整体恢复的目的。
在其中一个实施例中,如图4所示,嵌入式软件系统故障检测恢复系统还包括初始化模块110。
初始化模块110用于在任务监控模块120实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障之前,对嵌入式软件系统的应用任务进行初始化处理。在对应用任务进行监控之前对嵌入式软件系统进行初始化处理,具体可通过软件看门狗模块初始化并调用实时内核的TaskCreate函数创建监控任务。各应用任务调用软件看门狗模块的RegisterTask函数进行注册,函数参数包括:任务ID、任务优先级、软件看门狗复位时间、任务运行回调函数和任务终止回调函数。软件看门狗模块调用实时内核的TaskCreate函数创建所有注册的应用任务,完成嵌入式软件系统的初始化处理。
上述嵌入式软件系统故障检测恢复系统,通过实时监控嵌入式软件系统的各应用任务的运行情况,当检测到某一应用任务出现故障时重启应用任务来恢复软件系统到正常状态运行。检测嵌入式软件系统的任务调度是否失效,若任务调度失效则对嵌入式软件系统进行故障恢复,以达到软件系统整体恢复的目的。不仅可以检测出实时多任务系统中的局部软件故障和整体的软件系统故障,并且在软件系统出现故障时可以自动恢复软件系统到正常运行状态,实现了有选择性的软件故障检测和恢复,检测范围更全面、无死角,且简单可靠。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种嵌入式软件系统故障检测恢复方法,其特征在于,包括以下步骤:
实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障,具体包括:通过所述嵌入式软件系统的实时多任务系统中预设的监控任务,实时接收所述实时多任务系统中各应用任务发送的软件喂狗信号;通过所述监控任务提取在预设时间内未发出软件喂狗信号的应用任务作为出现故障的应用任务;
若是,则通过软件看门狗模块对出现故障的应用任务进行重启;
检测所述嵌入式软件系统是否出现任务调度故障,具体包括:将所述监控任务挂起预设时长,复位硬件看门狗装置的定时计数器,检测所述监控任务挂起前后所述嵌入式软件系统的调度计数器是否发生变化;若否,则所述嵌入式软件系统出现任务调度故障;其中,将监控任务挂起即是指暂时停止监控任务,调度器每切换一次当前运行的任务,所述调度计数器的计数加1,所述任务调度故障包括所述监控任务处于运行状态,而所述应用任务处于未执行状态的情况;
在检测到所述嵌入式软件系统出现任务调度故障时,通过所述硬件看门狗装置对所述嵌入式软件系统进行故障恢复。
2.根据权利要求1所述的嵌入式软件系统故障检测恢复方法,其特征在于,所述对出现故障的应用任务进行重启的步骤,包括以下步骤:
通过所述监控任务释放出现故障的应用任务所占资源;
通过所述监控任务删除出现故障的应用任务;
通过所述监控任务重新创建出现故障的应用任务。
3.根据权利要求1所述的嵌入式软件系统故障检测恢复方法,其特征在于,所述实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障的步骤之前,还包括对所述嵌入式软件系统的应用任务进行初始化处理的步骤。
4.一种嵌入式软件系统故障检测恢复系统,其特征在于,包括:
任务监控模块,用于实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障;
任务重启模块,用于在应用任务出现故障时,通过软件看门狗模块对出现故障的应用任务进行重启,所述任务监控模块包括:第一监控单元,用于通过所述嵌入式软件系统的实时多任务系统中预设的监控任务,实时接收所述实时多任务系统中各应用任务发送的软件喂狗信号;第二监控单元,用于通过所述监控任务提取在预设时间内未发出软件喂狗信号的应用任务作为出现故障的应用任务;
调度检测模块,用于检测所述嵌入式软件系统是否出现任务调度故障,所述调度检测模块包括:第一检测单元,用于将所述监控任务挂起预设时长,复位硬件看门狗装置的定时计数器,检测所述监控任务挂起前后所述嵌入式软件系统的调度计数器是否发生变化;若否,则所述嵌入式软件系统出现任务调度故障,其中,将监控任务挂起即是指暂时停止监控任务,调度器每切换一次当前运行的任务,所述调度计数器的计数加1,所述任务调度故障包括所述监控任务处于运行状态,而所述应用任务处于未执行状态的情况;
故障恢复模块,用于在检测到所述嵌入式软件系统出现任务调度故障时,通过所述硬件看门狗装置对所述嵌入式软件系统进行故障恢复。
5.根据权利要求4所述的嵌入式软件系统故障检测恢复系统,其特征在于,所述任务重启模块包括:
第一重启单元,用于通过所述监控任务释放出现故障的应用任务所占资源;
第二重启单元,用于通过所述监控任务删除出现故障的应用任务;
第三重启单元,用于通过所述监控任务重新创建出现故障的应用任务。
6.根据权利要求4所述的嵌入式软件系统故障检测恢复系统,其特征在于,还包括初始化模块,所述初始化模块用于在所述任务监控模块实时对嵌入式软件系统的多个应用任务进行监控,检测是否存在应用任务出现故障之前,对所述嵌入式软件系统的应用任务进行初始化处理。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法的步骤。
CN201511026822.8A 2015-12-30 2015-12-30 嵌入式软件系统故障检测恢复方法和系统 Active CN105550057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511026822.8A CN105550057B (zh) 2015-12-30 2015-12-30 嵌入式软件系统故障检测恢复方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511026822.8A CN105550057B (zh) 2015-12-30 2015-12-30 嵌入式软件系统故障检测恢复方法和系统

Publications (2)

Publication Number Publication Date
CN105550057A CN105550057A (zh) 2016-05-04
CN105550057B true CN105550057B (zh) 2020-05-12

Family

ID=55829254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511026822.8A Active CN105550057B (zh) 2015-12-30 2015-12-30 嵌入式软件系统故障检测恢复方法和系统

Country Status (1)

Country Link
CN (1) CN105550057B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484555B (zh) * 2016-09-29 2019-05-17 Oppo广东移动通信有限公司 异常检测与恢复的方法及移动终端
CN108563530A (zh) * 2018-04-16 2018-09-21 杭州鸿泉物联网技术股份有限公司 看门狗及其实现方法
JP2022500722A (ja) * 2018-06-29 2022-01-04 センサーボット ピーティーイー. エルティーディー. タスク管理方法及びそのシステム
CN109388563A (zh) * 2018-09-26 2019-02-26 北京广利核系统工程有限公司 安全可靠的核安全级dcs软件执行顺序监测方法和系统
CN111026577B (zh) * 2019-12-27 2023-10-31 中国水产科学研究院渔业机械仪器研究所 软件系统功能自恢复的软件架构方法及其系统
CN113778060B (zh) * 2021-09-15 2023-07-25 上海卫星工程研究所 卫星遥控接收终端在轨异常监测与故障恢复方法及系统
CN114647540B (zh) * 2022-05-23 2022-08-19 四川傲势科技有限公司 嵌入式调度器故障恢复方法、嵌入式系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885847A (zh) * 2014-02-08 2014-06-25 京信通信系统(中国)有限公司 一种基于嵌入式系统的喂狗方法及装置
CN104035536A (zh) * 2014-06-18 2014-09-10 中国船舶重工集团公司第七二二研究所 一种嵌入式系统监控及复位控制方法
CN104516839A (zh) * 2015-01-07 2015-04-15 王建农 一种嵌入式应用系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100359481C (zh) * 2003-09-13 2008-01-02 华为技术有限公司 多任务系统的异常监控装置及其方法
US20120317442A1 (en) * 2010-01-15 2012-12-13 Hitachi, Ltd. Embedded device and embedded system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885847A (zh) * 2014-02-08 2014-06-25 京信通信系统(中国)有限公司 一种基于嵌入式系统的喂狗方法及装置
CN104035536A (zh) * 2014-06-18 2014-09-10 中国船舶重工集团公司第七二二研究所 一种嵌入式系统监控及复位控制方法
CN104516839A (zh) * 2015-01-07 2015-04-15 王建农 一种嵌入式应用系统

Also Published As

Publication number Publication date
CN105550057A (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
CN105550057B (zh) 嵌入式软件系统故障检测恢复方法和系统
CN101354677B (zh) 一种应用程序运行状态的检测方法及装置
CN100568191C (zh) 嵌入式系统的全程喂狗方法
US20160055046A1 (en) System fault detection and processing method, device, and computer readable storage medium
US20150006978A1 (en) Processor system
CN111796954A (zh) 基于jvm的看门狗的控制方法、装置、设备及存储介质
CN103530197B (zh) 一种检测及解决Linux系统死锁的方法
CN110865900A (zh) 增强嵌入式系统健壮性的一种方法
JPH10214208A (ja) ソフトウェアの異常監視方式
CN115904793B (zh) 一种基于多核异构系统的内存转存方法、系统及芯片
CN113535448A (zh) 一种多重看门狗控制方法及其控制系统
CN117149482A (zh) 一种对线程状态进行检测的方法和装置、电子设备、介质
KR101300806B1 (ko) 다중 프로세스 시스템에서 오동작 처리 장치 및 방법
CN107133130B (zh) 计算机运行监测方法和装置
JP2965075B2 (ja) プログラム実行状態監視方法
US8099637B2 (en) Software fault detection using progress tracker
CN113692008B (zh) 一种处理收发异常的方法、装置、设备和存储介质
JP2009151440A (ja) プログラムハング検出方法及びそれを適用したコンピュータ装置
JP5438667B2 (ja) マイクロプロセッサの間欠異常検出方法
JP2006227962A (ja) アプリケーションタスク監視システムおよび方法
CN103226507A (zh) 一种嵌入式系统中防止系统崩溃的方法
CN101944056A (zh) 一种多任务系统监控方法及装置
CN117234787B (zh) 系统级芯片运行状态监控方法及系统
CN116662117A (zh) 基于定时器监控linux系统的方法、装置及存储介质
CN115514689B (zh) 一种应用程序守护方法、装置及存储介质

Legal Events

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