【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

看门狗是嵌入式软件设计的重要一个环节。记得还在上海上班的时候,当时开发就涉及到看门狗的操作了,印象非常深刻。我们开发的设备因为是电信类的设备,本身电信系统使用的就是vxworks os,硬件也是双备份的,按道理非常稳定才对,但就是这样还是会经常发生系统程序跑飞的情况。因此,在mcu软件里面添加定时喂狗的操作代码是非常重要的。

watchdog,中文翻译为看门狗。它的原理非常简单,但是意义却非常重大,就是reset cpu置位。再稳定健壮的代码,也会有程序跑飞的情形发生。这主要是因为,在现实场景下,客户的需求是不断变化的,甚至很多时候,前后需求是很矛盾的,这就要软件设计同学及时对客户的需求做出响应的同时,还要保证代码的正确性。当然,如果变更的代码过多,就很容易造成代码不稳定的情况发生。因此,实际开发中一般默认程序有一个最大执行时间,比如500ms,那么可以设置一个600~800ms的看门狗,只要整个系统没有在规定的时间内喂狗,那么软件就会自动复位重启。

有的同学也许会说,何必如此麻烦,直接派人去维护重启不就好了。有这种想法的同学可能对嵌入式设备的部署环境缺少认识。很多嵌入式设备都是放在很复杂、很危险的地方,除了必要的电源和散热设备外,很多时候都是无人值守的。这些设备不要说派人保养,就是周期去检查一遍也是不太容易的一件事情。

嵌入式软件设计(看门狗)相关推荐

  1. AD硬件电路模块设计——看门狗电路

    看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让 ...

  2. 嵌入式系统 - 看门狗设计浅谈

    术语介绍 嵌入式: 指嵌入式系统,编程领域下的一个特定的方向.和一般的编程不同,嵌入式编程的对象通常直接是CPU.内存.磁盘:实际产物 通常是可以单独独立运行的设备.例如:冰箱.空调.遥控器.DVD. ...

  3. arm linux下看门狗应用,arm linux watchdog 看门狗

    目前手上有个项目需要设计看门狗,是arm+CPLD 方式.由于对看门狗要求很高,打算做一个双看门狗,arm CPLD互相为 对方的看门狗.理论上CPLD是不需要看门狗的,还是这么去设计了.接下来对看门 ...

  4. 启动定时器t0的工作指令是_看门狗的工作原理、应用和设计思路

    看门狗(watchdog timer)是一个定时器电路.一般有一个输入叫喂狗,一个输出到MCU的RST端.MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零.如果超过规定的时间不喂狗 ...

  5. 基于ARM IP的看门狗设计与功能验证

    看门狗是一个定时器, ARM提供了一个32位向下计数的看门狗IP,它会不断地计数.通过软件可以设置计数值,计数到某一设定值重新开始计数,这一过程也被称为喂狗,如果没有正常喂狗,说明出现系统故障,看门狗 ...

  6. 3G/4G路由器方案之外置硬件看门狗设计

    看门狗电路 为了确保设备可长时间稳定工作,增加看门狗电路.为简化设计,看门狗采用芯片MAX823TEUK,其最长喂狗时间为1.6s.当设备运行Linux或WinCE系统时,启动时间长(远大于1.6s) ...

  7. 硬件看门狗的选择与设计

    看门狗定时器(WatchDog Timer)在出现程序跑飞卡死的时候用来强制复位处理器或控制器.具体操作是:通常程序正常循环会在一定周期内进行"喂狗",若程序执行一个错误代码或者程 ...

  8. 辉为科技 ARM主板如何设计外部看门狗电路

    Atmel ARM9 系列 CPU 包括at91sam9260. at91sam9261. at91sam9263 等芯片都设计了内部看门狗,但由于该看门狗配置寄存器在上电后只能配置一次,而且系统启动 ...

  9. Linux高级应用(十四)看门狗的驱动设计

    一.什么是看门狗定时器 看门狗是一个定时器(倒计时),有计时的功能.当看门狗的计数值减为0,会产生一个复位信号给处理器,这样处理器就会重启,软件就会重新运行. 二.看门狗定时器的作用 当系统在运行的过 ...

最新文章

  1. Redis 高级特性(2)—— 发布 订阅模式
  2. mysql册_Mysql手册
  3. MongoDB之副本集
  4. Android获取网速的方法
  5. kvm虚拟机设置万兆网卡_SR-IOV 10Gb 万兆网卡支持
  6. C++3个汉诺塔递归问题
  7. Java转型,多态和契约设计
  8. java学习过程记录
  9. DXUT实战3:HLSL(withEffect)+D3D9+DXUT(june_2010) . .
  10. typedef struct
  11. 【自动驾驶技术概论】自动驾驶技术之汽车构造基础
  12. Python项目(Django):国内新冠肺炎疫情大数据可视化平台
  13. 如何在 Word 的方框中打勾 √ ?☑ ☒
  14. Mapbox使用之glyphs(字体符号)
  15. 折腾6年高龄笔记本-宏碁E5-572G-57MX-加固态-解决磁盘自检-坏道
  16. Java中的方法(method)
  17. pip换源工具pqi
  18. Go语言核心之美 1.5-作用域
  19. 蘑菇街暑期实习生一面面经 大三
  20. 三大分析法——SWOT、PEST、波特五力

热门文章

  1. Vue 顶部栏滚动控制显隐和文字字体闪光动画效果随笔
  2. usercf itemcf java_UserCF和ItemCF都依赖于相似度的计算,因为只有通过衡量用户之.docx...
  3. Python(自学之旅四)
  4. storm throw 口袋妖怪_斯平达(Spinda)——欧美十大最差普通型口袋妖怪
  5. [转]text和content方法的区别
  6. 尚硅谷阳哥SpringCloud第二季学习笔记(一)
  7. 南大周志华教授写给学生的话
  8. 软件需求分析之猫咪记单词
  9. 我是女孩子,我适合学前端开发吗?
  10. WPS——excel单元格格式设置笔记(小白)