CN102063361A - 一种降低嵌入式软件死机概率的方法 - Google Patents
一种降低嵌入式软件死机概率的方法 Download PDFInfo
- Publication number
- CN102063361A CN102063361A CN 201010609761 CN201010609761A CN102063361A CN 102063361 A CN102063361 A CN 102063361A CN 201010609761 CN201010609761 CN 201010609761 CN 201010609761 A CN201010609761 A CN 201010609761A CN 102063361 A CN102063361 A CN 102063361A
- Authority
- CN
- China
- Prior art keywords
- monitored
- embedded software
- turnover
- clock
- zone
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及嵌入式软件,其公开了一种降低嵌入式软件死机概率的方法,在死机概率最小的时钟程序里对嵌入式软件的运行进行监控,从而将嵌入式软件的死机概率降到最低。其技术方案的要点可概括为:在各中断、进程、公共变量的进出口设置标志位,在时钟里设置监视程序对这些标志位进行监视,一旦有非正常进出的中断、进程、公共变量,则对其进行恢复操作。本发明的有益效果是:在死机概率最小的时钟程序里对各中断、进程及公共变量进行监视,将嵌入式软件的死机概率降到最低,适用于嵌入式软件。
Description
技术领域
本发明涉及嵌入式软件,具体的说是涉及一种降低嵌入式软件死机概率的方法。
背景技术
嵌入式产品在上电运行过程中,其软件是靠若干个中断和进程以及公共变量来运行的;如果能够实时检测出哪个中断和进程出了问题,从而在开发和测试阶段就完成对问题软件的修改,尽量降低软件死机概率,即使是产品已经交到用户手里,也能对出现问题的中断和进程以及公共变量通过修复程序进行自我修复,从而避免无故死机。
在传统技术中,为了降低嵌入式软件死机概率,都是采取随意创建一个线程或者进程监视其他线程或者进程的运行,该方式的确可以有效降低嵌入式软件死机概率,然而,用于监视其他线程或进程而随意创建的一个线程或进程和其他线程或进程的死机概率是一样的,换句话说,如果用于监视其他线程或进程而创建的线程或进程死机的话,那么对其他线程或进程也起不到监视作用,因此,传统技术无法将嵌入式软件死机概率降到最低。
发明内容
本发明所要解决的技术问题是:提出一种降低嵌入式软件死机概率的方法,在死机概率最小的时钟程序里对嵌入式软件的运行进行监控,从而将嵌入式软件的死机概率降到最低。
本发明解决上述技术问题所采用的技术方案是:一种降低嵌入式软件死机概率的方法,包括以下步骤:
a.对各个中断的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各中断是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的中断进行恢复操作;
b.对各个进程的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各进程是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的进程进行恢复操作;
c.对各个公共变量的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各公共变量是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的公共变量进行恢复操作。
进一步,还包括:如果操作系统源代码开放,则对内存分配的各个函数以及内存分配函数设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断内存分配的各个函数及内存分配函数是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的内存分配函数和内存分配的各函数进行恢复操作。
本发明的有益效果是:在死机概率最小的时钟程序里对各中断、进程及公共变量进行监视,将嵌入式软件的死机概率降到最低。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图对本发明作进一步的描述。
传统技术中采取随意创建一个线程或进程去监视其它线程或进程的方式,由于随意创建的线程或进程与被监视的线程或进程的死机概率是一样的,因而并不能把嵌入式软件的死机概率降到最低;针对上述缺陷,本发明提出一种降低嵌入式软件死机概率的方法,在死机概率最小的时钟程序里对嵌入式软件的运行进行监控,从而将嵌入式软件的死机概率降到最低。
首先要从理论上确认时钟是死机的唯一标志,由于系统CPU是按照时间片的方法给各个进(线)程、中断分配任务的。如果时钟出错,必然造成CPU的混乱,整个系统也就崩溃了。虽然一般的进(线)程、中断停止运行了,但CPU是照常工作的,只不过有时候表现为系统操作不反应;因此时钟的死机概率比普通的进程、中断的死机概率小的多,在时钟代码段中实现对各个任务的监控程序是能大幅度降低嵌入式软件死机概率的,而非创建普通的线程或者进程去监视其他的线程或者进程。
如图1所示,本发明中的降低嵌入式软件死机概率的方法,采用以下措施实现:
1.对各个中断的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各中断是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的中断进行恢复操作;由于中断是一次性执行完毕的,因此从理论上来讲,针对中断的标志位是不需要设置信号锁定的,但是为了保险起见还是要设置信号锁定操作的;
2.对各个进程的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各进程是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的进程进行恢复操作;如果某个进程的执行统计代码正常进出是100句,而时钟监视的只有80句,并且一段时间内持续不变(需要统计CPU执行完所有进程的时间),则可以认为这个进程是出问题了,当然还要判断这个进程是不是主动被挂起等状态;
3.对各个公共变量的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各公共变量是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的公共变量进行恢复操作;
4.如果操作系统源代码开放,则需要对内存分配的各个函数,尤其是对内存分配函数(诸如malloc和calloc以及free等)实现监控;监控方式同样是对内存分配的各个函数以及内存分配函数设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断内存分配的各个函数及内存分配函数是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的内存分配函数和内存分配的各函数进行恢复操作。
除上述手段以外,我们也可以对各个被监视的进(线)程或者中断代码优化,分析具体的产品代码,做出最优化的设计,从而降低死机概率。例如:一种对视频程序的监视过程中,除了正常的入口和出口设置监视外,对于解码出错我们设计了优化程序:采取了5分钟内出错10次视为解码器寄存器出问题,需要对解码器进行复位。
综上,在被监视的对象出现问题时,可以在开发和测试阶段尽量对出问题的对象进行修改设计,使其尽量完善,也可以设计修复程序,以便普通用户也能对出问题的对象进行自我修复。
Claims (2)
1.一种降低嵌入式软件死机概率的方法,其特征在于:包括以下步骤:
a.对各个中断的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各中断是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的中断进行恢复操作;
b.对各个进程的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各进程是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的进程进行恢复操作;
c.对各个公共变量的入口和出口设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断各公共变量是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的公共变量进行恢复操作。
2.如权利要求1所述的一种降低嵌入式软件死机概率的方法,其特征在于:还包括:如果操作系统源代码开放,则对内存分配的各个函数以及内存分配函数设立标志位,在时钟里设立监视程序对这些标志位进行监视,判断内存分配的各个函数及内存分配函数是否正常进出,如果是,则继续对这些标志位进行监视,如果不是,则对非正常进出的内存分配函数和内存分配的各函数进行恢复操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010609761 CN102063361A (zh) | 2010-12-28 | 2010-12-28 | 一种降低嵌入式软件死机概率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010609761 CN102063361A (zh) | 2010-12-28 | 2010-12-28 | 一种降低嵌入式软件死机概率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102063361A true CN102063361A (zh) | 2011-05-18 |
Family
ID=43998646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010609761 Pending CN102063361A (zh) | 2010-12-28 | 2010-12-28 | 一种降低嵌入式软件死机概率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063361A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970571A (zh) * | 2014-05-20 | 2014-08-06 | 中国航空动力机械研究所 | 航空发动机的控制软件运行出错的恢复方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499041A (zh) * | 2009-03-17 | 2009-08-05 | 成都优博创技术有限公司 | 一种避免主机在访问共享设备造成异常死锁的方法 |
CN101561778A (zh) * | 2008-04-15 | 2009-10-21 | 中兴通讯股份有限公司 | 一种检测多任务操作系统任务死循环的方法 |
-
2010
- 2010-12-28 CN CN 201010609761 patent/CN102063361A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561778A (zh) * | 2008-04-15 | 2009-10-21 | 中兴通讯股份有限公司 | 一种检测多任务操作系统任务死循环的方法 |
CN101499041A (zh) * | 2009-03-17 | 2009-08-05 | 成都优博创技术有限公司 | 一种避免主机在访问共享设备造成异常死锁的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970571A (zh) * | 2014-05-20 | 2014-08-06 | 中国航空动力机械研究所 | 航空发动机的控制软件运行出错的恢复方法及系统 |
CN103970571B (zh) * | 2014-05-20 | 2017-07-25 | 中国航空动力机械研究所 | 航空发动机的控制软件运行出错的恢复方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976932B (zh) | 故障注入测试设备和方法 | |
US4809280A (en) | Microcomputer system with watchdog timer | |
CN101149636B (zh) | 复位系统和方法 | |
CN108540483A (zh) | 一种基于区块链的设备监控方法及装置 | |
CN108255728B (zh) | 软件的失效模式的识别方法及装置 | |
CN102521098B (zh) | Cpu死机监控的处理方法和装置 | |
CN103745293A (zh) | 一种rcm分析方法 | |
CN103927239A (zh) | 一种终端设备的系统恢复方法及装置 | |
CN106933690A (zh) | 一种基于mcu的硬件看门狗实现方法 | |
CN105208590A (zh) | 移动终端操作系统卡顿异常的检测恢复方法及移动终端 | |
CN112612709B (zh) | 一种用于铁路信号系统的软件架构安全分析实现方法 | |
CN113658414A (zh) | 矿场设备故障预警方法、装置、终端设备及存储介质 | |
Germanos et al. | Diagnosability under weak fairness | |
CN101937396A (zh) | 软件程序中变量的不安全使用的检测方法 | |
CN105426263A (zh) | 一种实现金库系统安全运行的方法及系统 | |
CN115826393A (zh) | 一种飞控系统的双余度管理方法及装置 | |
CN102063361A (zh) | 一种降低嵌入式软件死机概率的方法 | |
KR20180134677A (ko) | 결함 주입 테스트 방법 및 장치 | |
Daskaya et al. | Formal safety analysis in industrial practice | |
CN202153352U (zh) | 防止计算机控制系统失效的看门狗装置 | |
Takai | Robust failure prognosis of partially observed discrete event systems | |
Cichocki et al. | Formal support for fault modelling and analysis | |
Kinoshita et al. | Analysis of a driver and automated driving system interaction using a communicating sequential process | |
CN105607616A (zh) | 一种对冗余系统进行可靠性分析的方法 | |
CN102193835B (zh) | 基于3取2计算机系统的预执行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110518 |