下冰雹 · 2020年10月26日

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

image.png
你可能不知道上面的图片是什么狗,或者连“二哈”是什么也不知道,没关系。但是作为嵌入式工程师,你不能不知道“看门狗”是什么!

1994年1月25日,弹道导弹防御组织和 美国宇航局(NASA)共同发射了一颗新型月球探测器,命名为克莱门汀号(Clementine)。克莱门汀号的目的有两个:第一阶段测试卫星携带的科学仪器和卫星组件长时间暴露在太空环境下的运行状态,并且对月球进行探测;第二阶段对近地小行星1620进行探测。

克莱门汀号顺利完成第一阶段任务后,在进行第二阶段的任务时,原本预订要从月球飞行到太空深处的近地小行星进行探勘,然而这艘太空探测器在飞向小行星时却由于一个软件缺陷而使其中断运作20分钟,不但未能到达小行星,也因为控制喷嘴燃烧了11分钟使电力供应降低,无法再透过远端控制探测器,最终结束这项任务,但也导致了资源与资金的浪费。

“克莱门汀太空任务失败这件事让我感到十分震惊,它其实可以透过硬件中一款简单的看门狗计时器避免掉这项意外,但由于当时的开发时间相当紧缩,软件程序设计人员没时间编写程序来启动它,”Ganssle说。

遗憾的是,1998年发射的近地号太空船(NEAR)也遇到了相同的问题。由于编程人员并未采纳建议,因此,当推进器减速器系统故障时,29公斤的储备燃料也随之报销──这同样是一个本来可经由看门狗定时器编程而避免的问题,同时也证明要从其他程序设计人员的错误中学习并不容易。

相关阅读

历史上的重大软件BUG启示录第7篇---美国商务航空公司的烦恼
历史上的重大软件BUG启示录 第6篇---蠕虫“冲击波”

作者:朱工
首发博客:https://freertos.blog.csdn.net/article/details/56304563
关注FreeRTOS从基础到高级专栏,即时收取FreeRTOS系列文章。
推荐阅读
关注数
3259
内容数
54
介绍FreeRTOS的基本功能,移植与使用。主要介绍FreeRTOS的裁剪、任务、内存管理、队列、信号量、任务通知等基本组成,看完可以会用FreeRTOS,高级篇会深入介绍FreeRTOS的实现细节、方法、技巧。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息