CN100465906C - 一种实时检测定位硬件复位原因的装置及其方法 - Google Patents
一种实时检测定位硬件复位原因的装置及其方法 Download PDFInfo
- Publication number
- CN100465906C CN100465906C CNB2006100987235A CN200610098723A CN100465906C CN 100465906 C CN100465906 C CN 100465906C CN B2006100987235 A CNB2006100987235 A CN B2006100987235A CN 200610098723 A CN200610098723 A CN 200610098723A CN 100465906 C CN100465906 C CN 100465906C
- Authority
- CN
- China
- Prior art keywords
- interrupt
- cycle
- counter
- interrupt counter
- timer
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实时检测定位硬件复位原因的装置及其方法。该方法包括步骤:当定时器中断产生装置按中断周期产生中断的时候,对定时器中断计数器进行计数;看门狗模块按照其清除周期被清除,同时对存储器中的定时器中断计数器、外部中断计数器、中断累计运行时间做清零处理;当外部中断接收装置接收到外部中断产生的时候,对外部中断计数器进行计数;当设备复位重新启动时,从存储器中读取当前的定时器中断计数器、外部中断计数器和中断累计运行时间,然后输出,确定复位原因,同时对定时器中断计数器、外部中断计数器和中断累计运行时间做清零处理。本方法主要用来识别和检测硬件系统产生的复位。
Description
技术领域
本发明涉及一种实现识别和检测硬件看门狗溢出复位和检测电压欠压复位的装置及其方法。该装置及其方法主要应用于嵌入式系统领域。
背景技术
在嵌入式系统中,基本上以嵌入式硬件系统和嵌入式软件系统组成。嵌入式系统的运行时间是系统稳定性的重要指标,但即使可靠性再高的嵌入式系统,在实际运行中也会出现一些环境的问题、设计上的缺陷,导致系统运行中断,复位。嵌入式系统一般属于无人值守的系统,复位就需要能够提供有效的手段,能够从相关信息中分析出来系统属于那种复位,进而进一步分析,改进设计。
系统复位的原因多种多样,有软件地址异常复位,无效指令复位、人工复位、硬件电路异常复位、电压异常复位、WATCHDOG(看门狗,一般用来实现在系统瘫痪时候,自动恢复的场景)溢出复位等。软件地址异常复位,无效指令复位属于软件异常复位,在一般的嵌入式系统中,都会产生相应的异常中断,通过对异常中断的处理,软件比较容易通过输出相应的信息来区分这两种系统复位。人工复位是可控复位,也比较容易识别。硬件电路异常复位、电压异常复位、WATCHDOG溢出复位属于硬件系统产生的复位,软件无法截获,因此对于这种情况很难用软件直接输出信息来区分是哪种异常复位。
在目前的嵌入式中,对于硬件复位的检测方法是,从硬件设备接出探头,并接到示波器或者硬件逻辑分析仪上,通过设定信号触发条件,抓取相应的硬件复位信号来区分是哪种复位。这种方法存在非常大的缺陷,主要有:
1 环境条件,一般在嵌入式系统运行地点没有配置示波器和逻辑分析仪这些设备,如果配置,则大大提高成本。如果运输,也涉及很多的运输上的成本。
2 时效性,很多异常复位具有强烈的环境和当时运行条件的相关性,都有强烈的时间特性。如果和示波器和逻辑分析仪则很可能破坏了中这种特性,无法有效定位问题。由于不具备时效性,因此很多时候需要重现故障,因此会产生很多这方面的成本。
3 本方法主要区分硬件WATCHDOG复位、硬件中断异常多、硬件其他原因复位。
发明内容
本发明所要解决的技术问题在于提供一种实时检测定位硬件复位原因的装置及其方法,以解决硬件看门狗溢出复位和欠压硬件复位的检测方法,用于无人值守嵌入式系统复位的检测问题,特别是为了解决嵌入式系统硬件复位的检测问题。
为了解决上述问题,本发明提供了一种实时检测定位硬件复位原因的装置,用来识别和检测硬件系统产生的复位的原因,其中包括:
一个定时器中断产生装置,其设置中断周期Tt,定时器中断按中断周期Tt产生中断的时候,对定时器中断计数器A加1计数;
一个看门狗WATCHDOG模块,其设置清除周期Tw、溢出周期T;
一个或多个外部中断接收装置,其在接收到外部中断产生的时候,对外部中断计数器Ai加1计数;
一个存储器,包括一段用于存储中断数据的内存,该内存不被其他软件使用,在系统复位的时候该内存不被清除,该中断数据包括:定时器中断计数器A的值、外部中断计数器Ai的值、中断累计运行时间Mai和当前一次中断运行时间Tai;
其中,所述看门狗WATCHDOG模块按照其清除周期Tw被清除,同时对存储器中的定时器中断计数器A、外部中断计数器Ai、中断累计运行时间Mai做清零处理;当设备复位重新启动时,从存储器中读取当前的定时器中断计数器A的值、外部中断计数器Ai的值和中断累计运行时间Mai,并根据这些值确定复位原因:如果当前定时器中断计数器A的值乘以中断周期Tt,等于看门狗WATCHDOG溢出周期T时,则此次复位是看门狗WATCHDOG引起的复位;如果当前定时器中断计数器A的值乘以中断周期Tt,小于,溢出周期T减去中断周期Tt时,则是由于其他硬件原因导致的自复位;如果是看门狗WATCHDOG溢出导致的复位,根据中断累计运行时间Mai,则可以判断是否是由于哪个中断太多的原因导致中断溢出;同时对定时器中断计数器A、外部中断计数器Ai和中断累计运行时间Mai做清零处理。
进一步地,本发明所述的装置,其中,所述看门狗WATCHDOG模块,其设置清除周期Tw,进一步设置为中断周期的10倍以上;所述存储器,为非易失性存储器,可以为高端保留内存。
进一步地,本发明所述的装置,其中,所述外部中断接收装置,其在接收到外部中断产生的时候,进一步计算外部中断计数器此次中断需要的中断运行时间Tai,以及计算原中断累计运行时间与此次中断需要的中断运行时间的和,为当前中断累计运行时间Mai=Mai+Tai。
为了解决上述问题,本发明还提供了一种实时检测定位硬件复位原因的方法,用来识别和检测硬件系统产生的复位的原因,其中包括如下步骤:
当定时器中断产生装置按中断周期Tt产生中断的时候,对定时器中断计数器A加1计数;
看门狗WATCHDOG模块按照其清除周期Tw被清除,同时对存储器中的定时器中断计数器A、外部中断计数器Ai、中断累计运行时间Mai做清零处理,该存储器包括一段用于存储中断数据的内存,该内存不被其他软件使用,在系统复位的时候该内存不被清除;
当外部中断接收装置接收到外部中断产生的时候,对外部中断计数器Ai加1计数;
当设备复位重新启动时,从存储器中读取当前的定时器中断计数器A的值、外部中断计数器Ai的值和中断累计运行时间Mai,并根据这些值确定复位原因:当前定时器中断计数器A的值乘以中断周期Tt,等于看门狗WATCHDOG溢出周期时,则此次复位是看门狗WATCHDOG引起的复位;如果当前定时器中断计数器A的值乘以中断周期Tt,小于,溢出周期T减去中断周期Tt时,则是由于其他硬件原因导致的自复位;如果是看门狗WATCHDOG溢出导致的复位,根据中断累计运行时间Mai,则可以判断是否是由于哪个中断太多的原因导致中断溢出,同时对定时器中断计数器A、外部中断计数器Ai和中断累计运行时间Mai做清零处理。
进一步地,本发明所述的方法,其中,所述看门狗WATCHDOG模块按照其清除周期Tw被清除,进一步清除周期Tw是中断周期的10倍以上。
进一步地,本发明所述的方法,其中,所述当外部中断接收装置接收到外部中断产生的时候,进一步包括:计算外部中断计数器此次中断需要的中断运行时间Tai,以及计算原中断累计运行时间与此次中断需要的中断运行时间的和,为当前中断累计运行时间Mai=Mai+Tai。
根据本发明所述的方法,与现有技术相比,具有能够准确测试看门狗WATCHDOG溢出复位,而且方便灵活,提高判断准确率,减少误差;同时能够实时对看门狗导致的硬件复位,并且对中断导致的看门狗WATCHDOG溢出复位有较准确地测试定位;能够实时对其他原因导致的硬件复位,如欠压等,有一定的测试定位作用。
附图说明
图1为本发明所述装置的实施例的配置示意图;
图2为本发明所述方法的实施例的方法流程图。
具体实施方式
下面对本发明所述的装置及其方法作详细的说明。
如图1所示,3G系统有多个嵌入式系统组成,这里以其中一个单板为例说明。实施例中的非易失性存储区可以直接使用在单板上预留一段内存,这段内存放在高端,称为高端保留内存104。这部分内存不被其他软件使用,在系统复位的时候,这部分内存不被清除。
WATCHDOG模块103是用CPU内部实现的超时产生硬复位模块,其中设置溢出周期T、清除周期Tw。
定时器中断产生装置101可以直接使用操作系统使用调度定时器,其中设置中断周期Tt。
外部中断产生装置102根据实际单板设计情况而定,图中仅用一个外部中断表示。CPU和RAM表示嵌入式系统105。
实施例中所述的方法如下:
第一步:在定时器中断产生装置101按中断周期Tt产生中断的时候,对定时器中断计数器A进行计数。
第二步:按照清除周期Tw对WATCHDOG模块103进行清除,同时对定时器中断计数器A,外部中断计数器Ai,中断累计运行时间Mai做清0处理。
第三步:在外部中断产生装置102产生中断的时候,对外部中断计数器Ai进行计数。并计算外部中断计数器Ai此次中断需要的中断运行时间Tai的值,以及计算当前中断累计运行时间Mai的值;当前中断累计运行时间Mai的值等于原中断累计运行时间Mai与此次中断需要的中断运行时间Tai的和,Mai=Mai+Tai。
第四步:设备复位重新启动,从高端保留内存中读取当前定时器中断计数器A、当前外部中断计数器Ai和当前中断累计运行时间Mai的值。
第五步:把读取当前定时器中断计数器A、当前外部中断计数器Ai和当前中断累计运行时间Mai的值输出到显示设备上,同时对定时器中断计数器A、外部中断计数器Ai和中断累计运行时间Mai做清0处理。
第六步:分析:如果当前定时器中断计数器A的值乘以中断周期Tt,等于WATCHDOG模块103的溢出周期T(误差为一个Tt)时,则此次复位是WATCHDOG模块103引起的复位;如果当前定时器中断计数器A的值乘以中断周期Tt,小于,溢出周期T减去中断周期Tt时,则是由于其他硬件原因导致的自复位,如欠压等。如果是WATCHDOG模块103溢出导致的复位,则可以根据当前中断累计运行时间Mai的值,判断是否是由于哪个中断太多的原因导致中断溢出(Mai至少大于A*Tt的85%)。
此外,1、本发明所述实施例的清除周期Tw至少是中断周期Tt的10倍以上,以提高判断准确率,减少误差;2、Mai每次纪录的值中包括当前一个Tai,并且可以累计,因此提高Tai可以提高中断处理时间的准确度;3、上述方法的条件是中断不能被关闭。
下面结合图1的配置示意图和具体实施例,对所述发明的装置及其方法作进一步详细的说明。
3G系统有多个嵌入式系统组成,图1中所示,以其中一个单板为例说明;非易失性存储区直接使用在单板上预留一段内存,这段内存放在高端,称为高端保留内存104。这部分内存不被其他软件使用,在系统复位的时候,这部分内存不被清除。
WATCHDOG模块103是用CPU内部实现的超时产生硬复位模块,其溢出周期T为1.6s、清除周期Tw为500ms。
定时器中断产生装置101可以直接使用操作系统使用调度定时器,其中断周期Tt为10ms。
外部中断产生装置102根据实际单板设计情况而定,本实例仅用一个外部中断表示。CPU和RAM表示嵌入式系统105。
如图2所示,本实施例所述的方法,包括如下步骤:
步骤201:当定时器中断产生装置按中断周期Tt每10ms产生中断的时候,对定时器中断计数器A加1计数。
步骤202:按照清除周期Tw的500ms对WATCHDOG模块进行清除,同时对定时器中断计数器A,外部中断计数器Ai,中断累计运行时间Mai做清0处理。
步骤203:在外部中断产生装置产生中断的时候,对外部中断计数器Ai进行加1计数。并计算外部中断计数器Ai此次中断需要的中断运行时间Tai的值,以及计算当前中断累计运行时间Mai的值;当前中断累计运行时间Mai的值等于原中断累计运行时间Mai与此次中断需要的中断运行时间Tai的和,Mai=Mai+Tai。
步骤204:设备复位重新启动,从高端保留内存中读取当前定时器中断计数器A、当前外部中断计数器Ai和当前中断累计运行时间Mai的值。
步骤205:把读取当前定时器中断计数器A、当前外部中断计数器Ai和当前中断累计运行时间Mai的值输出到显示设备上,同时对定时器中断计数器A、外部中断计数器Ai和中断累计运行时间Mai做清0处理。
步骤206:分析:如果当前定时器中断计数器A的值乘以中断周期Tt的10ms,等于WATCHDOG模块的溢出周期T的1.6s(误差为10ms)时,则此次复位是WATCHDOG模块引起的复位;如果当前定时器中断计数器A的值乘以中断周期Tt的10ms,小于,溢出周期T的1.6s减去中断周期Tt的10ms时,则是由于其他硬件原因导致的自复位,如欠压等。如果是WATCHDOG模块溢出导致的复位,则可以根据当前中断累计运行时间Mai的值,判断是否是由于哪个中断太多的原因导致中断溢出。
尽管参照实施例对所公开的涉及提供一种实时检测定位硬件复位原因的装置及其方法进行了特别描述,作为本领域技术人员将能理解,在不偏离本发明的范围和精神的情况下,可以对它进行形式和细节的种种显而易见的修改。因此,以上描述的实施例只是说明性的而不是限制性的,在不脱离本发明的精神和范围的情况下,所有的变化和修改都在本发明的范围之内。
Claims (8)
1、一种实时检测定位硬件复位原因的装置,用来识别和检测硬件系统产生的复位的原因,其特征在于,包括:
一个定时器中断产生装置,其设置中断周期,定时器中断按中断周期产生中断的时候,对定时器中断计数器加1计数;
一个看门狗模块,其设置清除周期、溢出周期;
一个或多个外部中断接收装置,其在接收到外部中断产生的时候,对外部中断计数器加1计数;
一个存储器,包括一段用于存储中断数据的内存,该内存不被其他软件使用,在系统复位的时候该内存不被清除,该中断数据包括:定时器中断计数器的值、外部中断计数器的值、中断累计运行时间和当前一次中断运行时间;
其中,所述看门狗模块按照其清除周期被清除,同时对存储器中的定时器中断计数器、外部中断计数器、中断累计运行时间做清零处理;当设备复位重新启动时,从存储器中读取当前的定时器中断计数器的值、外部中断计数器的值和中断累计运行时间,并根据这些值确定复位原因:如果当前定时器中断计数器的值乘以中断周期,等于看门狗溢出周期时,则此次复位是看门狗引起的复位;如果当前定时器中断计数器的值乘以中断周期,小于,溢出周期减去中断周期时,则是由于其他硬件原因导致的自复位;如果是看门狗溢出导致的复位,根据中断累计运行时间,则可以判断是否是由于哪个中断太多的原因导致中断溢出;同时对定时器中断计数器、外部中断计数器和中断累计运行时间做清零处理。
2、如权利要求1所述的装置,其特征在于,所述看门狗模块,其清除周期设置为中断周期的10倍以上。
3、如权利要求1所述的装置,其特征在于,所述存储器,为非易失性存储器。
4、如权利要求3所述的装置,其特征在于,所述存储器,为高端保留内存。
5、如权利要求1所述的装置,其特征在于,所述外部中断接收装置,其在接收到外部中断产生的时候,进一步计算外部中断计数器此次中断需要的中断运行时间,以及计算原中断累计运行时间与此次中断需要的中断运行时间的和,为当前中断累计运行时间。
6、一种实时检测定位硬件复位原因的方法,用来识别和检测硬件系统产生的复位的原因,其特征在于,包括如下步骤:
当定时器中断产生装置按中断周期产生中断的时候,对定时器中断计数器加1计数;
看门狗模块按照其清除周期被清除,同时对存储器中的定时器中断计数器、外部中断计数器、中断累计运行时间做清零处理,该存储器包括一段用于存储中断数据的内存,该内存不被其他软件使用,在系统复位的时候该内存不被清除;
当外部中断接收装置接收到外部中断产生的时候,对外部中断计数器加1计数;
当设备复位重新启动时,从存储器中读取当前的定时器中断计数器的值、外部中断计数器的值和中断累计运行时间,确定复位原因:如果当前定时器中断计数器的值乘以中断周期,等于看门狗溢出周期时,则此次复位是看门狗引起的复位;如果当前定时器中断计数器的值乘以中断周期,小于,溢出周期减去中断周期时,则是由于其他硬件原因导致的自复位;如果是看门狗溢出导致的复位,根据中断累计运行时间,则可以判断是否是由于哪个中断太多的原因导致中断溢出;同时对定时器中断计数器、外部中断计数器和中断累计运行时间做清零处理。
7、如权利要求6所述的方法,其特征在于,所述看门狗模块按照其清除周期被清除,进一步清除周期是中断周期的10倍以上。
8、如权利要求6所述的方法,其特征在于,所述当外部中断接收装置接收到外部中断产生的时候,进一步包括:计算外部中断计数器此次中断需要的中断运行时间,以及计算原中断累计运行时间与此次中断需要的中断运行时间的和,为当前中断累计运行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100987235A CN100465906C (zh) | 2006-07-06 | 2006-07-06 | 一种实时检测定位硬件复位原因的装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100987235A CN100465906C (zh) | 2006-07-06 | 2006-07-06 | 一种实时检测定位硬件复位原因的装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101101565A CN101101565A (zh) | 2008-01-09 |
CN100465906C true CN100465906C (zh) | 2009-03-04 |
Family
ID=39035845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100987235A Expired - Fee Related CN100465906C (zh) | 2006-07-06 | 2006-07-06 | 一种实时检测定位硬件复位原因的装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100465906C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216788B (zh) * | 2008-01-21 | 2010-06-09 | 珠海中慧微电子有限公司 | 复位监控芯片及方法 |
CN102033802B (zh) * | 2010-11-11 | 2013-01-23 | 广东威创视讯科技股份有限公司 | 一种统计显示设备累计运行时间的装置及其方法 |
CN103425562B (zh) * | 2012-05-18 | 2016-08-31 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 软件断联监控系统及方法 |
CN104679601A (zh) * | 2013-11-28 | 2015-06-03 | 中国航空工业集团公司第六三一研究所 | 防干扰系统启动看门狗的方法 |
CN104809013B (zh) * | 2015-04-21 | 2018-08-14 | 北京创毅视讯科技有限公司 | 一种嵌入式系统启动方法和装置 |
CN111597016B (zh) * | 2020-04-08 | 2023-02-14 | 延锋伟世通电子科技(上海)有限公司 | 一种系统任务的时间保护方法、系统、存储介质及终端 |
CN112286713B (zh) * | 2020-12-29 | 2021-04-06 | 北京国科天迅科技有限公司 | 一种提高整机设备故障定位效率的复位检测电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06250864A (ja) * | 1993-02-26 | 1994-09-09 | Fuji Electric Co Ltd | プログラマブルコントローラの誤出力防止方法 |
WO2001024006A1 (en) * | 1999-09-27 | 2001-04-05 | Zf Linux Devices, Inc. | Embedded computer system and method with dual watchdog timer |
CN1075643C (zh) * | 1995-09-20 | 2001-11-28 | 盛群半导体股份有限公司 | 复位信号产生装置 |
CN1506825A (zh) * | 2002-12-10 | 2004-06-23 | 深圳市中兴通讯股份有限公司 | 一种看门狗实时可调复位方法和装置 |
-
2006
- 2006-07-06 CN CNB2006100987235A patent/CN100465906C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06250864A (ja) * | 1993-02-26 | 1994-09-09 | Fuji Electric Co Ltd | プログラマブルコントローラの誤出力防止方法 |
CN1075643C (zh) * | 1995-09-20 | 2001-11-28 | 盛群半导体股份有限公司 | 复位信号产生装置 |
WO2001024006A1 (en) * | 1999-09-27 | 2001-04-05 | Zf Linux Devices, Inc. | Embedded computer system and method with dual watchdog timer |
CN1506825A (zh) * | 2002-12-10 | 2004-06-23 | 深圳市中兴通讯股份有限公司 | 一种看门狗实时可调复位方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101101565A (zh) | 2008-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100465906C (zh) | 一种实时检测定位硬件复位原因的装置及其方法 | |
US10282276B2 (en) | Fingerprint-initiated trace extraction | |
US6944796B2 (en) | Method and system to implement a system event log for system manageability | |
CN1795438B (zh) | 用于跨距剖析软件应用的方法和设备 | |
CN101320350B (zh) | 一种性能监控方法及装置 | |
EP2239664B1 (en) | Context switch sampling | |
CN112148515B (zh) | 一种故障定位方法、系统、装置、介质和设备 | |
US20100017583A1 (en) | Call Stack Sampling for a Multi-Processor System | |
US7974800B2 (en) | Method, apparatus, and program for detecting the correlation between repeating events | |
CN111452658B (zh) | 充电桩健康状态监测及诊断方法、装置及终端设备 | |
JP2010191937A (ja) | 計算機装置および消費電力のサンプリング方法 | |
CN103268277A (zh) | 一种输出日志信息的方法及系统 | |
CN110543420B (zh) | 一种软件测试方法、系统、终端及存储介质 | |
CN108896804A (zh) | 窃电检测方法、装置及电子设备 | |
CN102341789A (zh) | 用于监视计算机系统的设备和方法 | |
US20090217108A1 (en) | Method, system and computer program product for processing error information in a system | |
CN104459556A (zh) | 电池系统故障诊断方法及装置 | |
CN106201753B (zh) | 一种基于linux中PCIE错误的处理方法及系统 | |
CN109240888B (zh) | 信息抓取方法、装置、设备及介质 | |
CN105824749B (zh) | 一种linux系统下用户态进程异常的分析方法 | |
CN103064776A (zh) | 一种性能监控方法及装置 | |
CN105786679A (zh) | 一种自动化测试监控系统及方法以及移动终端 | |
CN114091702A (zh) | 一种事件监测方法、装置、电子设备及存储介质 | |
CN114239296A (zh) | 一种数据处理方法、装置及电子设备 | |
CN114385387B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090304 Termination date: 20150706 |
|
EXPY | Termination of patent right or utility model |