CN1400529A - 一种实时嵌入系统的故障定位方法 - Google Patents
一种实时嵌入系统的故障定位方法 Download PDFInfo
- Publication number
- CN1400529A CN1400529A CN 01123077 CN01123077A CN1400529A CN 1400529 A CN1400529 A CN 1400529A CN 01123077 CN01123077 CN 01123077 CN 01123077 A CN01123077 A CN 01123077A CN 1400529 A CN1400529 A CN 1400529A
- Authority
- CN
- China
- Prior art keywords
- fault
- field data
- location method
- initial value
- house dog
- 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
本发明涉及一种实时嵌入系统中的故障定位方法,包括如下步骤:a.软看门狗初始化,设置一个计数器初始值和时钟频率以及一个程序定时值;b.计数器开始计数;c.经过一个程序定时值的时长,判断该程序定时值是否减少为0,是则返回步骤a,否则进入步骤d;d.初始值继续减少;e.当初始值减少为0时,进入步骤f;f.软看门狗产生复位信号,提供给CPU;g.输出现场信息,系统复位。通过本发明的方法,可以将系统故障发生时的重要现场信息完整地保存下来,任务运行时大量临时数据的分析,为系统复位提供了非常有效的支持,改进了以前的看门狗只导致系统复位而无法进行数据输出及故障分析的问题。
Description
一、技术领域:
本发明涉及计算机通信领域,尤其涉及一种实时嵌入系统中的故障定位方法。
二、背景技术:
在现有的实时嵌入系统中,通常使用“看门狗”监控系统的运行状态,防止系统长期处于故障状态,无法运行。从原理上讲看门狗是一个计数器(一般而言是个减法计数器),由外部时钟驱动,每隔一定的时间间隔就会减1,直到计数器为0时就超时。启动看门狗时,在看门狗的计数器里设置了一个初始值,此后每一定时间间隔减1,当计数器的值减到0时,看门狗就会产生信号,通知系统超时。如果在看门狗超时前对看门狗的计数器进行一次设置,看门狗的计数器就会恢复初值,重新开始计数。
根据看门狗的物理构造的不同以及产生信号的不同,可以将看门狗分为硬件看门狗和软件看门狗。
在实际应用中,硬看门狗通常是一个独立于CPU之外的硬件器件,由独立的时钟驱动,硬看门狗的计数器的初始值以及外部时钟驱动频率由器件本身决定了,外部无法更改。硬看门狗的输出信号管脚与CPU的RESET管脚相连。CPU通过一个引脚将重置计数器的信号送到硬看门狗上,使得硬看门狗重新计数而不超时。系统正常运行时软件系统定时从这个引脚输出信号重置硬看门狗的定时器,而一旦系统出现故障,软件不能正常运行,硬看门狗得不到重置的信号,超时以后,硬看门狗就会从输出管脚输出一个低电平给CPU的RESET管脚,引起CPU复位,系统重新初始化,这样就避免了严重的错误导致软件系统不能正确运行,但是又无法恢复,系统“死掉”。
软看门狗实际上是高档处理器内置的一个计数器,其时钟驱动频率由处理器决定(有的可以由软件设定),而计数器的初值由软件设定,因而超时时间大小可以在一定范围内变化。软看门狗也需要定时重置计数器以防止超时(通常称为“清狗操作”)。当软看门狗超时时,由于软看门狗位于处理器内部,一般都是产生内部由CPU可以识别的信号,通常是中断(或称异常[Exception]),不经过特殊处理,不能直接引起软件系统重起。
三、发明内容:
目前的系统,对类似的问题只能采取引起CPU复位的方式,使系统重新初始化,这样可以避免系统“死掉”,但对于分析故障的各种数据没有有效的输出和相应的分析,而对于故障发生时的现场数据,往往是系统复位前的重要信息,是定位复位原因的重要线索,问题实际上没有得到解决。
本发明就是要充分利用软看门狗的特点,在软看门狗复位时保存现场信息,提供一种比较强大的故障定位方法。
本发明的目的是这样实现的:一种实时嵌入系统的故障定位方法,外部环境为带有软看门狗的CPU,其特征在于包括如下步骤:a、软看门狗初始化,设置一个计数器初始值和时钟频率以及一个程序定时值,该程序定时值小于该计数器的初始值;b、计数器开始计数,初始值和程序定时值开始减少;c、经过一个程序定时值的时长,判断该程序定时值是否减少为0,是则返回步骤a,否则进入步骤d;d、初始值继续减少;e、当初始值减少为0时,进入步骤f;f、软看门狗产生复位信号,提供给CPU,进入步骤g;g、输出现场信息,系统复位。其中步骤g中,也可以先系统复位,然后输出现场信息。所述现场信息包括CPU的寄存器状态,通过分析该寄存器记录,定位异常发生的地址和原因。所述现场信息包括当前任务信息、堆栈位置、堆栈结构、堆栈内容等。通过对堆栈结构的分析,得出异常发生前当前任务的函数调用轨迹。
通过本发明的方法,可以将系统故障发生时的重要现场信息完整地保存下来,任务运行时大量临时数据的分析,为系统复位提供了非常有效的支持,改进了以前的看门狗只导致系统复位而无法进行数据输出及故障分析的问题。
四、附图说明:
图一是现有技术中看门狗的工作原理图。
图二是使用本方法的流程图。
图三是Motorola公司的MPC8260通信处理器的配置图。
图四是本实施例的一个堆栈结构图。
五、具体实施例:
本方案基于Motorola公司的MPC8260通信处理器实现,其内核是MPC603e的CPU。本方案可以基本不加改动或加以很少改动就可移植到PowerPC系列其他的32位CPU上,本方案可以使用PSOS操作系统。
如图3所示,在SWTC位设置软看门狗的初始值,在SWI位设置当软看门狗超时的时候是引起machine check中断(向量号为0×200)还是软件复位中断(向量号为0×100),本方案选择软复位中断,实际上选择machinecheck中断本方案也一样可以处理。最后设置SWE位,将软看门狗使能。
设置一个程序定时值及一个时钟频率,本实施例可以将程序定时值设置为初始值的1/50,也可以设置为其他的小于初始值的数值;
当经过的时间间隔等于程序定时值时,判断该程序定时值是否为零,是则重新执行软看门狗初始化,重新设置一个计数器初始值和时钟频率以及程序定时值;否则继续计数,初始值继续减少;
当初始值减少为0时,软看门狗产生复位信号,提供给CPU;
输出现场数据;
最后,软看门狗产生复位信号,提供给CPU,引起系统复位。
其中,输出现场数据的步骤也可以在系统复位之后,只需要一个简单的设置即可。
所述输出的现场数据包括CPU的寄存器状态、当前任务信息、堆栈位置、堆栈结构、堆栈内容等数据。
异常信息的输出可以通过多种渠道,一是通过直接的串口打印,可以输出到与MPC8260串口连接的标准终端上,二是通过基于MPC8260的产品的输出手段输出,如告警、调试信息输出或者产品的打印渠道。
根据PowerPC CPU的异常处理机制,本方案屏蔽了操作系统对CPU异常(Exception)的处理,直接接管了PowerPC CPU的所有异常,按照自己定义的异常处理方式对CPU的硬件异常进行处理。其中System Reset(0×100)和Machine Check(0×200)可以根据选择用来处理软件狗超时记录现场信息。
在异常处理过程中需要记录软件应用程序运行的上下文(Context),包括当前任务的调用栈关系、当前任务的堆栈内容,以及所有的通用寄存器(GPRs:r0~r31),记录了与异常上下文相关的专用寄存器(SPRs),这些寄存器有:CR、BAR、CTR、LR、XER、SRR0、SRR1、DAR、DSISR,这些寄存器记录了异常发生时的机器状态,定位异常发生的地址和原因。
异常信息在异常处理程序中就记录到内存,本设计方案中将异常信息记录到非易失(Non-volatile)的存储器,如Flash、带后备电池的SRAM等。
对于System Reset异常,SRR0保存了异常发生时系统正要执行的指令的地址,SRR1的16~31比特记录了机器状态(与MSR寄存器的完全相同)。对于软看门狗超时复位,这里记录的机器状态是软看门狗超时的那个时刻的机器状态,这里记录的指令是软看门狗超时的那个时刻CPU正在执行的指令,这两个寄存器有助于我们定位异常发生的指令以及原因。而堆栈信息则有助于我们进一步了解软看门狗超时的那个时刻系统正在运行的任务的情况,这个任务往往是引起错误的任务。对于任务的相关信息的了解,只有通过对任务的堆栈进行分析。
我们根据这样的调用栈结构,可以分析出当前任务的调用栈结构,尤其是可以分析出函数调用关系,这样我们就可以分析定位系统故障的具体地点和原因。
除上述实施例外,本发明还可以有其他实施方式。例如打印的输出渠道和存储介质可以灵活改变等,或者在该系统中添加其他未实质性改变系统工作方法的设备等,凡此种种,均落在本发明的权利要求之中。
Claims (9)
1、一种实时嵌入系统的故障定位方法,外部环境为带有软看门狗的CPU,其特征在于包括如下步骤:
a、软看门狗初始化,设置一个计数器初始值和时钟频率以及一个程序定时值,该程序定时值小于该计数器的初始值;
b、计数器开始计数,初始值和程序定时值开始减少;
c、经过一个程序定时值的时长,判断该程序定时值是否减少为0,是则返回步骤a,否则进入步骤d;
d、初始值继续减少;
e、当初始值减少为0时,进入步骤f;
f、软看门狗产生复位信号,提供给CPU,进入步骤g;
g、输出现场信息,系统复位。
2、如权利要求1所述的故障辅助定位方法,其特征在于所述的步g中,先系统复位,然后输出现场信息。
3、如权利要求1或2所述的故障辅助定位方法,其特征在于:该现场信息包括CPU的寄存器状态,通过分析该寄存器记录,定位异常发生的地址和原因。
4、如权利要求1或2所述的故障辅助定位方法,其特征在于:该现场信息包括堆栈位置、堆栈结构、堆栈内容等,通过对堆栈结构的分析,得出异常发生前当前任务的函数调用轨迹。
5、如权利要求1或2所述的故障辅助定位方法,其特征在于:该现场信息包括当前任务信息。
6、如权利要求1或2所述的故障辅助定位方法,其特征在于通过制作转换工具对异常信息进行转换分析。
7、如权利要求1或2所述的故障辅助定位方法,其特征在于:该现场数据被记录到内存。
8、如权利要求1或2所述的故障辅助定位方法,其特征在于:该现场数据被记录到非易失存储器。
9、如权利要求1或2所述的故障辅助定位方法,其特征在于:该现场数据通过打印输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01123077 CN1400529A (zh) | 2001-07-30 | 2001-07-30 | 一种实时嵌入系统的故障定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01123077 CN1400529A (zh) | 2001-07-30 | 2001-07-30 | 一种实时嵌入系统的故障定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1400529A true CN1400529A (zh) | 2003-03-05 |
Family
ID=4664996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 01123077 Pending CN1400529A (zh) | 2001-07-30 | 2001-07-30 | 一种实时嵌入系统的故障定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1400529A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100359481C (zh) * | 2003-09-13 | 2008-01-02 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
CN100395722C (zh) * | 2003-12-24 | 2008-06-18 | 华为技术有限公司 | 一种对控制系统异常状态信息进行保存的方法 |
CN100397354C (zh) * | 2005-02-15 | 2008-06-25 | 通用汽车公司 | 用于响应控制模块故障的方法 |
CN100552635C (zh) * | 2006-10-16 | 2009-10-21 | 艾默生网络能源系统有限公司 | 一种外部看门狗电路 |
CN1716212B (zh) * | 2004-06-29 | 2010-04-28 | 联想(北京)有限公司 | 一种灾难恢复系统及方法 |
CN101458640B (zh) * | 2007-12-14 | 2012-05-23 | 环达电脑(上海)有限公司 | 可监控多线程状态的系统及其监控方法 |
CN102521098A (zh) * | 2011-11-23 | 2012-06-27 | 中兴通讯股份有限公司 | Cpu死机监控的处理方法和装置 |
CN101770404B (zh) * | 2008-12-31 | 2012-08-15 | 环旭电子股份有限公司 | 可保存状态的看门狗电路及其保存重启状态方法 |
CN103186461A (zh) * | 2011-12-30 | 2013-07-03 | 重庆重邮信科通信技术有限公司 | 一种现场数据的保存方法和恢复方法以及相关装置 |
CN104572332A (zh) * | 2015-02-09 | 2015-04-29 | 华为技术有限公司 | 处理系统崩溃的方法和装置 |
CN105677497A (zh) * | 2015-12-10 | 2016-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高可用性看门狗电路 |
CN105760305A (zh) * | 2016-03-09 | 2016-07-13 | 上海博达数据通信有限公司 | 一种linux下的系统实时性监控方法 |
CN107066508A (zh) * | 2017-01-18 | 2017-08-18 | 新华三技术有限公司 | 信息快照方法、设备及cpu |
CN107526646A (zh) * | 2016-06-20 | 2017-12-29 | 中兴通讯股份有限公司 | 监控方法、装置及看门狗系统 |
CN109032822A (zh) * | 2017-06-09 | 2018-12-18 | 中兴通讯股份有限公司 | 一种死机信息的保存方法和装置 |
CN109062718A (zh) * | 2018-07-12 | 2018-12-21 | 联想(北京)有限公司 | 一种服务器及数据处理方法 |
-
2001
- 2001-07-30 CN CN 01123077 patent/CN1400529A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100359481C (zh) * | 2003-09-13 | 2008-01-02 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
CN100395722C (zh) * | 2003-12-24 | 2008-06-18 | 华为技术有限公司 | 一种对控制系统异常状态信息进行保存的方法 |
CN1716212B (zh) * | 2004-06-29 | 2010-04-28 | 联想(北京)有限公司 | 一种灾难恢复系统及方法 |
CN100397354C (zh) * | 2005-02-15 | 2008-06-25 | 通用汽车公司 | 用于响应控制模块故障的方法 |
CN100552635C (zh) * | 2006-10-16 | 2009-10-21 | 艾默生网络能源系统有限公司 | 一种外部看门狗电路 |
CN101458640B (zh) * | 2007-12-14 | 2012-05-23 | 环达电脑(上海)有限公司 | 可监控多线程状态的系统及其监控方法 |
CN101770404B (zh) * | 2008-12-31 | 2012-08-15 | 环旭电子股份有限公司 | 可保存状态的看门狗电路及其保存重启状态方法 |
CN102521098A (zh) * | 2011-11-23 | 2012-06-27 | 中兴通讯股份有限公司 | Cpu死机监控的处理方法和装置 |
CN102521098B (zh) * | 2011-11-23 | 2014-12-10 | 中兴通讯股份有限公司 | Cpu死机监控的处理方法和装置 |
CN103186461B (zh) * | 2011-12-30 | 2016-07-06 | 重庆重邮信科通信技术有限公司 | 一种现场数据的保存方法和恢复方法以及相关装置 |
CN103186461A (zh) * | 2011-12-30 | 2013-07-03 | 重庆重邮信科通信技术有限公司 | 一种现场数据的保存方法和恢复方法以及相关装置 |
CN104572332A (zh) * | 2015-02-09 | 2015-04-29 | 华为技术有限公司 | 处理系统崩溃的方法和装置 |
CN104572332B (zh) * | 2015-02-09 | 2018-08-21 | 华为技术有限公司 | 处理系统崩溃的方法和装置 |
CN105677497A (zh) * | 2015-12-10 | 2016-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高可用性看门狗电路 |
CN105760305A (zh) * | 2016-03-09 | 2016-07-13 | 上海博达数据通信有限公司 | 一种linux下的系统实时性监控方法 |
CN107526646A (zh) * | 2016-06-20 | 2017-12-29 | 中兴通讯股份有限公司 | 监控方法、装置及看门狗系统 |
CN107066508A (zh) * | 2017-01-18 | 2017-08-18 | 新华三技术有限公司 | 信息快照方法、设备及cpu |
CN109032822A (zh) * | 2017-06-09 | 2018-12-18 | 中兴通讯股份有限公司 | 一种死机信息的保存方法和装置 |
CN109032822B (zh) * | 2017-06-09 | 2024-01-09 | 中兴通讯股份有限公司 | 一种死机信息的保存方法和装置 |
CN109062718A (zh) * | 2018-07-12 | 2018-12-21 | 联想(北京)有限公司 | 一种服务器及数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1400529A (zh) | 一种实时嵌入系统的故障定位方法 | |
US20040003327A1 (en) | Method and system to implement a system event log for system manageability | |
Kao et al. | DEFINE: A distributed fault injection and monitoring environment | |
US6253317B1 (en) | Method and apparatus for providing and handling traps | |
US5758168A (en) | Interrupt vectoring for optionally architected facilities in computer systems | |
US5109514A (en) | Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions | |
US20080022261A1 (en) | Method and Apparatus for Analyzing Error Conditions in a Massively Parallel Computer System by Identifying Anomalous Nodes Within a Communicator Set | |
EP0448212B1 (en) | Exception handling processor | |
CN102521098B (zh) | Cpu死机监控的处理方法和装置 | |
CN102063344A (zh) | 一种系统故障信息转储的方法与系统 | |
US20090172642A1 (en) | System and method for debugging a computer program | |
US20030084376A1 (en) | Software crash event analysis method and system | |
CN1275155C (zh) | 嵌入式操作系统中异常故障定位方法 | |
CN105677497A (zh) | 一种高可用性看门狗电路 | |
CN1776644A (zh) | 一种基于有限状态机的对内存变量改写进行监控的方法 | |
CN1632760A (zh) | 一种对控制系统异常状态信息进行保存的方法 | |
CN101221518B (zh) | 一种防止硬件看门狗的定时器溢出的方法、装置与系统 | |
CN115292077A (zh) | 内核异常处理方法及系统 | |
CN100449495C (zh) | 一种辅助cpu对芯片进行驱动的系统及方法 | |
CA1212478A (en) | Data processor with interrupt facility | |
CN1324478C (zh) | 一种多线程处理器线程死锁检测的方法及其系统 | |
US5963737A (en) | Interupt vectoring for trace exception facility in computer systems | |
CN112068980B (zh) | 采样cpu挂死前信息的方法和装置、设备和存储介质 | |
CN109634796A (zh) | 一种计算机的故障诊断方法、装置及系统 | |
US6795879B2 (en) | Apparatus and method for wait state analysis in a digital signal processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |