CN101271414A - 嵌入式系统的全程喂狗方法 - Google Patents
嵌入式系统的全程喂狗方法 Download PDFInfo
- Publication number
- CN101271414A CN101271414A CNA2008100247780A CN200810024778A CN101271414A CN 101271414 A CN101271414 A CN 101271414A CN A2008100247780 A CNA2008100247780 A CN A2008100247780A CN 200810024778 A CN200810024778 A CN 200810024778A CN 101271414 A CN101271414 A CN 101271414A
- Authority
- CN
- China
- Prior art keywords
- dog
- stage
- watchdog
- embedded system
- kernel
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
嵌入式系统的全程喂狗方法涉及嵌入式系统的失效恢复方法,嵌入式系统看门狗电路设计和从设备启动阶段到程序运行阶段的看门狗喂狗策略,即硬件看门狗器件IMP706的WDI口与中央处理器(CPU)U0的GPIO3口相连,在BootLoader阶段、内核1阶段、内核2阶段、内核3阶段、程序运行阶段都插入喂狗程序进行喂狗动作,这些喂狗程序的运行时间间隔为1秒。该方法可对嵌入式系统运行的全过程进行有效的失效恢复,提高了系统可靠性。
Description
技术领域
本发明涉及嵌入式系统的失效恢复方法,尤其涉及一种看门狗全程喂狗方法。
背景技术
在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入硬件看门狗电路。硬件看门狗本身并不能解决系统出现的问题,它只是有助于系统在出现异常状况时可自动恢复正常工作状态。硬件看门狗其实就是一个计数器,当硬件看门狗启动后,计数器开始自动计数,经过一定时间计数器溢出就会对CPU产生一个复位信号使系统重启。系统正常运行时需要在硬件看门狗允许的时间间隔内对看门狗计数器清零,不让复位信号产生,这即是喂狗动作。
目前嵌入式系统喂狗方法一般都是在设备启动阶段禁用看门狗,设备启动后程序运行时再启用看门狗。这是由于设备启动时间一般都大于硬件看门狗的时间间隔,如果此阶段不禁用看门狗,则设备启动无法成功。问题是如果在设备启动阶段系统出现故障,系统则无法恢复。如何在嵌入式系统设备启动和程序运行时都正确启用看门狗以实现系统全过程失效恢复,是一个待解决的技术问题。
发明内容
技术问题:为了解决以上问题,本发明涉及一种看门狗电路设计及在嵌入式系统设备启动和程序运行时都启用看门狗以实现系统全过程失效恢复的方法。
技术方案:本发明采用IMP706芯片组成硬件看门狗电路(看门狗的时间间隔为1.6秒),硬件看门狗电路的WDI口通过电平转换器件与中央处理器的GPIO3口相连,硬件看门狗电路的RESET_OUT口与中央处理器的RESET口相连。嵌入式系统全过程喂狗策略是:嵌入式系统看门狗电路设计和从设备启动阶段到程序运行阶段的看门狗喂狗策略,即硬件看门狗器件IMP706的WDI口与中央处理器(CPU)U0的GPIO3口相连,在BootLoader阶段、内核1阶段、内核2阶段、内核3阶段、程序运行阶段都插入喂狗程序进行喂狗动作,这些喂狗程序的运行时间间隔为1秒。
在设备启动和程序运行的不同阶段喂狗实现方法不同:在BootLoader阶段采用直接取反中央处理器的GPIO3口寄存器值的方法;在Linux内核1阶段采用直接取反中央处理器的GPIO3口寄存器值的方法;在Linux内核2阶段采用调用GPIO的驱动的方法;在Linux内核3阶段采用调用WATCHDOG驱动的方法;在应用程序运行阶段,采用调用WATCHDOG驱动的方法。这些方法的实质都是使看门狗计数器清零,不产生复位信号。
有益效果:全过程启用看门狗,确保系统在任一阶段出现软件或硬件故障都能复位重启,系统可靠性得到全面提高;看门狗电路简单,硬件只需一块看门狗芯片,不需复杂的外围电路,有效降低成本;
附图说明
图1是本发明的总体框图。
图2是本发明的看门狗电路原理图。
图3是本发明的多线程应用程序喂狗流程图。
具体实施方式:
下面结合附图和实例对本发明作进一步说明。
图1本发明的总体框图表明了嵌入式系统的喂狗过程和各阶段的喂狗方法。喂狗过程分两个阶段:设备启动阶段和程序运行阶段。设备启动阶段分BootLoader阶段、内核1阶段、内核2阶段、内核3阶段,程序运行阶段包括多线程各任务的运行。在各阶段喂狗程序的调用方法不同:在BootLoader阶段采用直接取反中央处理器的GPIO3口寄存器值的方法,不断使看门狗计数器清零;在Linux内核1阶段也采用直接取反中央处理器的GPIO3口寄存器值的方法,不断使看门狗计数器清零;在Linux内核2阶段采用调用GPIO的驱动的方法;在Linux内核3阶段采用调用WATCHDOG驱动的方法;在应用程序运行阶段,采用调用WATCHDOG驱动的方法。这些方法的实质都是使看门狗计数器清零,不产生复位信号。
如图2看门狗电路原理图,本发明采用IMP706芯片U1组成硬件看门狗电路(看门狗的时间间隔为1.6秒),硬件看门狗器件的WDI口与中央处理器(CPU)U0的GPIO3口相连。电平转换器件U2为74AVC1T45(视不同的CPU可省略U2器件)。CPU的GPIO3脚与电平转换器件U2的4脚B1连接,提供1.8V的电平,电平转换器件U2的3脚与看门狗器件U1的6脚连接,对U1的WDI脚提供看门狗复位信号,看门狗器件U1的1脚与4脚接到复位开关,看门狗器件U1的7脚接到CPU的复位管脚,当复位开关被触动或看门狗器件U1的计数器溢出,看门狗器件U1的7脚输出复位信号给CPU的RESET口,CPU复位重启。
嵌入式系统全过程喂狗方法详细过程如下:
在BootLoader(本发明采用U-boot但不限于此)阶段喂狗的策略是在BootLoader的程序中不同位置插入喂狗程序,这些不同位置程序其运行时间相隔一定时间(小于看门狗的时间间隔,典型值为1秒)。具体做法是,首先在BootLoader第一阶段即汇编中插入喂狗代码,然后在BootLoader第二阶段Flash读写、CRC校验、循环等待等处插入喂狗代码。喂狗代码采用直接置位中央处理器的GPIO3口寄存器值的方式进行。
在Linux内核(本发明采用MontaVista Linux操作系统但不限于此)加载阶段喂狗策略是在Linux内核程序的不同位置插入喂狗程序,这些不同位置程序其运行时间相隔一定时间(小于看门狗的时间间隔,典型值为1秒)。具体做法是,首先在Linux内核1阶段的内核解压缩程序、GPIO驱动加载程序适当代码处插入喂狗代码,喂狗代码调用直接取反中央处理器的GPIO3口寄存器值的方式进行;在Linux内核2阶段的各类设备驱动加载、WATCHDOG驱动加载程序适当代码处插入喂狗代码,喂狗代码调用GPIO驱动,GPIO驱动内含取反中央处理器的GPIO3口寄存器值的操作;在Linux内核3阶段的内核RTC驱动加载程序、加载根文件系统程序、init程序的适当代码处调用Linux的WATCHDOG驱动,WATCHDOG驱动内含GPIO驱动。
图3为多线程应用程序运行阶段喂狗方法。在主程序中首先创建一个监控线程,它的优先级高于其他线程。监控线程在其他被监控的线程正常工作的情况下,一定时间内对看门狗进行喂狗操作,喂狗操作通过调用WATCHDOG驱动来完成。如果某个线程出现故障,监控线程就不执行喂狗操作,也就达到这个线程出现故障时系统自动重启的目的。如果监控线程自身出现故障,不能及时执行喂狗操作,看门狗也自动复位重启。具体做法是,主程序首先启动监控线程,然后依次启动多个被监控的线程,每一线程内都设置一计数器。被监控的线程中首先对线程内的计数器初始化为0,在各个线程主循环中,对相应的计数器执行加1操作。监控任务每隔若干秒对各线程内的计数器进行检验,查询计数器值是否为0,如果不为0,则说明对应接受监控的线程正常运行,然后对看门狗喂狗,系统就不会复位。如果有任意一个计数器值为0,检测到对应接受监视的线程出现故障需要重启,这时不对看门狗喂狗,使得系统复位重启。
Claims (2)
1.一种嵌入式系统的全程喂狗方法,其特征在于嵌入式系统看门狗电路设计和从设备启动阶段到程序运行阶段的看门狗喂狗策略,即硬件看门狗器件IMP706的WDI口与中央处理器(CPU)U0的GPIO3口相连,在BootLoader阶段、内核1阶段、内核2阶段、内核3阶段、程序运行阶段都插入喂狗程序进行喂狗动作,这些喂狗程序的运行时间间隔为1秒。
2.根据权利要求1所述的嵌入式系统看门狗的全程喂狗方法,其特征在于在设备启动和程序运行的不同阶段喂狗实现方法不同:在BootLoader阶段采用直接取反中央处理器的GPIO3口寄存器值的方法;在Linux内核1阶段采用直接取反中央处理器的GPIO3口寄存器值的方法;在Linux内核2阶段采用调用GPIO的驱动的方法;在Linux内核3阶段采用调用WATCHDOG驱动的方法;在应用程序运行阶段,采用调用WATCHDOG驱动的方法。这些方法的实质都是使看门狗计数器清零,不产生复位信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2008100247780A CN100568191C (zh) | 2008-05-06 | 2008-05-06 | 嵌入式系统的全程喂狗方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2008100247780A CN100568191C (zh) | 2008-05-06 | 2008-05-06 | 嵌入式系统的全程喂狗方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101271414A true CN101271414A (zh) | 2008-09-24 |
CN100568191C CN100568191C (zh) | 2009-12-09 |
Family
ID=40005402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2008100247780A Active CN100568191C (zh) | 2008-05-06 | 2008-05-06 | 嵌入式系统的全程喂狗方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100568191C (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901168A (zh) * | 2010-06-29 | 2010-12-01 | 深圳市景阳科技股份有限公司 | 一种看门狗复位系统及其复位方法 |
CN102486742A (zh) * | 2010-12-02 | 2012-06-06 | 上海华虹集成电路有限责任公司 | 一种预防SoC振荡器不稳态的方法及装置 |
CN102567129A (zh) * | 2011-12-30 | 2012-07-11 | 深圳市大富科技股份有限公司 | 一种看门狗的启动方法及装置 |
CN102637139A (zh) * | 2012-04-13 | 2012-08-15 | 华为技术有限公司 | 嵌入式系统喂狗的方法、装置及单板 |
CN102880520A (zh) * | 2012-08-31 | 2013-01-16 | 深圳市共进电子股份有限公司 | 一种系统从故障状态下自动恢复的方法 |
CN103064806A (zh) * | 2012-12-31 | 2013-04-24 | 西安奇维科技股份有限公司 | 一种利用cpld控制dsp实现二次启动的方法 |
CN103207788A (zh) * | 2012-01-13 | 2013-07-17 | 中兴通讯股份有限公司 | 一种版本启动方法和装置 |
CN104636212A (zh) * | 2014-12-29 | 2015-05-20 | 漳州科能电器有限公司 | 一种嵌入式操作系统看门狗实现方法 |
CN104899110A (zh) * | 2015-06-05 | 2015-09-09 | 宁波三星智能电气有限公司 | 看门狗的设置及喂狗方法 |
CN105242980A (zh) * | 2015-10-26 | 2016-01-13 | 上海斐讯数据通信技术有限公司 | 互补式看门狗系统及互补式看门狗的监测方法 |
CN105354103A (zh) * | 2014-12-19 | 2016-02-24 | 汉柏科技有限公司 | 一种用户态下管理watchdog的方法 |
US20170123884A1 (en) * | 2015-11-04 | 2017-05-04 | Quanta Computer Inc. | Seamless automatic recovery of a switch device |
CN107426618A (zh) * | 2017-01-26 | 2017-12-01 | 青岛海信电器股份有限公司 | 智能电视及其欠压保护容错方法 |
CN107783859A (zh) * | 2017-11-23 | 2018-03-09 | 山东有人信息技术有限公司 | 一种可配置复位时长和定时时长的看门狗电路 |
CN109614258A (zh) * | 2018-11-26 | 2019-04-12 | 广东工业大学 | 嵌入式Linux的电子操作系统及其外部监控模块的控制方法 |
CN109684117A (zh) * | 2018-11-06 | 2019-04-26 | 京信通信系统(中国)有限公司 | 处理器死机恢复方法和装置 |
CN113590374A (zh) * | 2021-09-28 | 2021-11-02 | 广州果冻智能科技有限公司 | 一种看门狗监控系统及其监控方法 |
CN113886123A (zh) * | 2021-09-30 | 2022-01-04 | 蜂巢能源科技有限公司 | 一种看门狗喂狗方法、装置、电子设备及存储介质 |
CN114578721A (zh) * | 2020-12-02 | 2022-06-03 | 北汽福田汽车股份有限公司 | 一种看门狗模块管理方法、装置和车辆 |
-
2008
- 2008-05-06 CN CNB2008100247780A patent/CN100568191C/zh active Active
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901168A (zh) * | 2010-06-29 | 2010-12-01 | 深圳市景阳科技股份有限公司 | 一种看门狗复位系统及其复位方法 |
CN102486742A (zh) * | 2010-12-02 | 2012-06-06 | 上海华虹集成电路有限责任公司 | 一种预防SoC振荡器不稳态的方法及装置 |
CN102486742B (zh) * | 2010-12-02 | 2016-04-27 | 上海华虹集成电路有限责任公司 | 一种预防SoC振荡器不稳态的方法及装置 |
CN102567129A (zh) * | 2011-12-30 | 2012-07-11 | 深圳市大富科技股份有限公司 | 一种看门狗的启动方法及装置 |
CN103207788A (zh) * | 2012-01-13 | 2013-07-17 | 中兴通讯股份有限公司 | 一种版本启动方法和装置 |
CN102637139A (zh) * | 2012-04-13 | 2012-08-15 | 华为技术有限公司 | 嵌入式系统喂狗的方法、装置及单板 |
CN102880520B (zh) * | 2012-08-31 | 2015-07-29 | 深圳市共进电子股份有限公司 | 一种系统从故障状态下自动恢复的方法 |
CN102880520A (zh) * | 2012-08-31 | 2013-01-16 | 深圳市共进电子股份有限公司 | 一种系统从故障状态下自动恢复的方法 |
CN103064806A (zh) * | 2012-12-31 | 2013-04-24 | 西安奇维科技股份有限公司 | 一种利用cpld控制dsp实现二次启动的方法 |
CN103064806B (zh) * | 2012-12-31 | 2016-01-06 | 西安奇维科技股份有限公司 | 一种利用cpld控制dsp实现二次启动的方法 |
CN105354103A (zh) * | 2014-12-19 | 2016-02-24 | 汉柏科技有限公司 | 一种用户态下管理watchdog的方法 |
CN104636212A (zh) * | 2014-12-29 | 2015-05-20 | 漳州科能电器有限公司 | 一种嵌入式操作系统看门狗实现方法 |
CN104899110A (zh) * | 2015-06-05 | 2015-09-09 | 宁波三星智能电气有限公司 | 看门狗的设置及喂狗方法 |
CN105242980A (zh) * | 2015-10-26 | 2016-01-13 | 上海斐讯数据通信技术有限公司 | 互补式看门狗系统及互补式看门狗的监测方法 |
US20170123884A1 (en) * | 2015-11-04 | 2017-05-04 | Quanta Computer Inc. | Seamless automatic recovery of a switch device |
US10127095B2 (en) * | 2015-11-04 | 2018-11-13 | Quanta Computer Inc. | Seamless automatic recovery of a switch device |
CN107426618A (zh) * | 2017-01-26 | 2017-12-01 | 青岛海信电器股份有限公司 | 智能电视及其欠压保护容错方法 |
CN107426618B (zh) * | 2017-01-26 | 2019-11-29 | 青岛海信电器股份有限公司 | 智能电视及其欠压保护容错方法 |
CN107783859A (zh) * | 2017-11-23 | 2018-03-09 | 山东有人信息技术有限公司 | 一种可配置复位时长和定时时长的看门狗电路 |
CN107783859B (zh) * | 2017-11-23 | 2023-11-24 | 山东有人物联网股份有限公司 | 一种可配置复位时长和定时时长的看门狗电路 |
CN109684117B (zh) * | 2018-11-06 | 2022-03-25 | 京信网络系统股份有限公司 | 处理器死机恢复方法和装置 |
CN109684117A (zh) * | 2018-11-06 | 2019-04-26 | 京信通信系统(中国)有限公司 | 处理器死机恢复方法和装置 |
CN109614258A (zh) * | 2018-11-26 | 2019-04-12 | 广东工业大学 | 嵌入式Linux的电子操作系统及其外部监控模块的控制方法 |
CN114578721A (zh) * | 2020-12-02 | 2022-06-03 | 北汽福田汽车股份有限公司 | 一种看门狗模块管理方法、装置和车辆 |
CN114578721B (zh) * | 2020-12-02 | 2024-03-08 | 北汽福田汽车股份有限公司 | 一种看门狗模块管理方法、装置和车辆 |
CN113590374B (zh) * | 2021-09-28 | 2021-11-30 | 广州果冻智能科技有限公司 | 一种看门狗监控系统及其监控方法 |
CN113590374A (zh) * | 2021-09-28 | 2021-11-02 | 广州果冻智能科技有限公司 | 一种看门狗监控系统及其监控方法 |
CN113886123A (zh) * | 2021-09-30 | 2022-01-04 | 蜂巢能源科技有限公司 | 一种看门狗喂狗方法、装置、电子设备及存储介质 |
CN113886123B (zh) * | 2021-09-30 | 2023-06-30 | 蜂巢能源科技有限公司 | 一种看门狗喂狗方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100568191C (zh) | 2009-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100568191C (zh) | 嵌入式系统的全程喂狗方法 | |
US9720761B2 (en) | System fault detection and processing method, device, and computer readable storage medium | |
US8677185B2 (en) | Information processing apparatus | |
CN101996106B (zh) | 一种对软件运行状态进行监控的方法 | |
CN101452420B (zh) | 一种嵌入式软件异常监控和处理装置及其方法 | |
CN102467417B (zh) | 计算机系统 | |
JP4586750B2 (ja) | コンピュータシステムおよび起動監視方法 | |
CN106527249B (zh) | 外围看门狗定时器 | |
CN105550057B (zh) | 嵌入式软件系统故障检测恢复方法和系统 | |
CN107943603B (zh) | 一种运行状态检测方法、检测电路及电子设备 | |
CN101149636A (zh) | 复位系统和方法 | |
CN102681907A (zh) | 一种多功能看门狗电路 | |
CN115237644B (zh) | 系统故障处理方法、中央运算单元以及车辆 | |
CN100395722C (zh) | 一种对控制系统异常状态信息进行保存的方法 | |
CN114116280A (zh) | 交互式bmc自恢复方法、系统、终端及存储介质 | |
CN102360315B (zh) | 一种容错控制系统看门狗电路管理方法 | |
CN111796954A (zh) | 基于jvm的看门狗的控制方法、装置、设备及存储介质 | |
CN110502369B (zh) | 一种设备死机恢复的方法、装置和存储介质 | |
CN104156289A (zh) | 基于检测电路的同步控制方法及系统 | |
CN103530197A (zh) | 一种检测及解决Linux系统死锁的方法 | |
CN103178977A (zh) | 计算机系统及计算机系统的开机管理方法 | |
CN111914497B (zh) | 一种dsp核心模块故障恢复方法 | |
CN113672421A (zh) | 一种嵌入式系统全程喂狗策略及实现方法 | |
CN115904793B (zh) | 一种基于多核异构系统的内存转存方法、系统及芯片 | |
CN101901168A (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 | ||
C56 | Change in the name or address of the patentee |
Owner name: JIANGSU DONGDA JINZHI INFORMATION SYSTEM CO., LTD. Free format text: FORMER NAME: JIANGSU WISCOM SYSTEM CO., LTD. |
|
CP01 | Change in the name or title of a patent holder |
Address after: 211100, No. 100, general road, Jiangning Economic Development Zone, Jiangsu, Nanjing Patentee after: WISCOM SYSTEM CO., LTD. Address before: 211100, No. 100, general road, Jiangning Economic Development Zone, Jiangsu, Nanjing Patentee before: Jiangsu Wiscom System Co., Ltd. |