历史上的重大软件BUG启示录第8篇---不可忽视的看门狗

2460人阅读 评论(3) 收藏 举报
分类:
(图片来源于网络)
  你可能不知道上面的图片是什么狗,或者连“二哈”是什么也不知道,没关系。但是作为嵌入式工程师,你不能不知道“看门狗”是什么!
1994年1月25日,弹道导弹防御组织和 美国宇航局(NASA)共同发射了一颗新型月球探测器,命名为克莱门汀号(Clementine)。克莱门汀号的目的有两个:第一阶段测试卫星携带的科学仪器和卫星组件长时间暴露在太空环境下的运行状态,并且对月球进行探测;第二阶段对近地小行星1620进行探测。
克莱门汀号顺利完成第一阶段任务后,在进行第二阶段的任务时,原本预订要从月球飞行到太空深处的近地小行星进行探勘,然而这艘太空探测器在飞向小行星时却由于一个软件缺陷而使其中断运作20分钟,不但未能到达小行星,也因为控制喷嘴燃烧了11分钟使电力供应降低,无法再透过远端控制探测器,最终结束这项任务,但也导致了资源与资金的浪费。
“克莱门汀太空任务失败这件事让我感到十分震惊,它其实可以透过硬件中一款简单的看门狗计时器避免掉这项意外,但由于当时的开发时间相当紧缩,软件程序设计人员没时间编写程序来启动它,”Ganssle说。
遗憾的是,1998年发射的近地号太空船(NEAR)也遇到了相同的问题。由于编程人员并未采纳建议,因此,当推进器减速器系统故障时,29公斤的储备燃料也随之报销──这同样是一个本来可经由看门狗定时器编程而避免的问题,同时也证明要从其他程序设计人员的错误中学习并不容易

查看评论

FreeRTOS实验_独立看门狗监视多线程

1.首先随意创建几个线程,如下图: 2.然后就要思考了,怎么样实现如果其中一个线程死掉了,就不喂狗得以让系统重启?         其实,我们可以反过来想一下,什么情况下才喂狗得以让系...
  • baidu_23187363
  • baidu_23187363
  • 2016-12-27 00:09:29
  • 2041

FreeRTOS之事件标志组及实现FreeRTOS看门狗

事件标志组是实现多任务同步的有效机制之一。任务间事件标志组的实现是指各个任务之间使用事件标志组实现任务的通信或者同步机制。FreeRTOS在event_groups.c/h文件中提供了事件标志组的具体...
  • ZCShouCSDN
  • ZCShouCSDN
  • 2017-02-25 18:09:56
  • 2360

STM32F0xx_看门狗(独立+窗口)配置详细过程

Ⅰ、概述 对于看门狗,我觉得做单片机或者嵌入式开发的人员来说并不陌生,今天总结STM32F0看门狗的功能,F0的看门狗有两种:独立和窗口看门狗。 今天提供两种看门狗的软件工程实例,供大家下载。 ...
  • ybhuangfugui
  • ybhuangfugui
  • 2016-06-07 22:10:27
  • 3533

freertos 官方推荐看门狗用法

  • 2017年12月05日 18:49
  • 278KB
  • 下载

线程看门狗

本模块维护开启的工作线程。如果判断该线程不能正常工作,则工作进程自杀重启。 1、使用VS2008创建一个带预编译头的控制台项目。 2、源文件中的内容: #include "stdafx.h"...
  • seulww
  • seulww
  • 2014-03-22 10:20:55
  • 1793

多任务程序看门狗结构设计

看门狗一般分为硬件看门狗和软件看门狗,主要用来解决程序CPU异常,程序跑飞挂死等问题,提高系统的可靠性。     看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到...
  • hong60104
  • hong60104
  • 2013-12-23 16:21:16
  • 2004

FreeRTOS实验_线程安全和中断安全printf方式

很多嵌入式开发人员都喜欢在开发过程中利用串口进行调试,这在裸机程序中无疑是很方便的。但是在搭载操作系统,使用多线程的情况下,几个线程同时打印数据甚至在打印过程中产生了中断并且中断程序中也要打印数据,这...
  • baidu_23187363
  • baidu_23187363
  • 2016-12-22 11:39:54
  • 2376

看门狗在多进程应用程序中的应用。

 相信大多数的程序员或用户,在Windows中见到类似于下面的亲切而又温馨的提示信息,都不会感到陌生:“XXX执行了非法操作,将被关闭。要终止程序,请单击;要调试程序,请单击。”或者,“是否向Micr...
  • panjean
  • panjean
  • 2010-11-10 12:43:00
  • 2132

软件看门狗--别让你地程序无响应

正文一.概述一些重要的程序,必须让它一直跑着;而且还要时时关心它的状态——不能让它出现死锁现象。当然,如果一个主程序会出现死锁,肯定是设计或者编程上的失误。我们首要做的事是,把这个Bug揪出来。但如果...
  • jiangxinyu
  • jiangxinyu
  • 2010-01-20 17:18:00
  • 5617

软件看门狗和硬件看门狗

看门狗,又叫watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,另外一个部分就是所要处理的部分,暂且称之为M...
  • zuotian5212008
  • zuotian5212008
  • 2015-09-11 12:20:55
  • 4135
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 169万+
    积分: 1万+
    排名: 1162
    博客专栏
    最新评论
    友情链接