<WDT><1>认知看门狗
目录
- 看门狗定义
- 软硬件看门狗异同
- 相同点
- 不同点
- `RT-Thread` 无法 "喂狗" 导致的原因
- 看门狗的弊端
看门狗定义
硬件看门狗
一个定时器电路, 输入为喂狗, 输出为MCU
复位端RST
软件看门狗
将硬件的处理机制用内部定时器
代替
软硬件看门狗异同
启动时机不一样
硬件上电, 遇到第一个高脉冲, 看门狗启动
软件的需要先初始化配置
相同点
- 都是基于定时器实现
- 都需要在规定时间内喂狗
- 喂狗靠软件
不同点
软件 | 硬件 | |
---|---|---|
附加功能 | 无 | 一般有延迟复位 电源检测… |
屏蔽方式 | 非常容易- 修改寄存器 | 电不断, 狗不歇 |
启动方式 | 初始化寄存器 | 上电 接收第一个脉冲 |
初始化 |
1. 配置相关寄存器 2. 调用相关子程序 |
上电接收第一个脉冲完成初始化 |
RT-Thread
无法 “喂狗” 导致的原因
- 线程陷入
无效死循环
, 长时间占用资源, 导致调度器无法运行空闲线程, “喂狗” 的钩子函数无法执行 - 线程 “跑飞” 导致不能及时 “喂狗” 系统 “被咬” 复位
看门狗的弊端
看门狗不能用来解决问题
只能发现一些
程序的潜在错误
和恶劣环境下的干扰导致死机
问题, 而在无人干预
下恢复正常故障怠工期间的损失不可挽回
硬件看门狗
!!!贵!!!
软件看门狗
- 无法检测系统内部故障
- 可通过
双定时器
互相监视, 但会加大开销, 但由于中断故障导致的定时器故障也无法检测
RTOS
中使用看门狗建立最低优先级的看门狗定时任务
溢出时间要足够长
单片机不是经常满负荷运行 – CPU不是一直被高优先级任务占用建立最高优先级任务
保证喂狗及时性
低优先级的任务故障无法起效多任务检测
看门狗为最高优先级
任务定时向看门狗发消息 – 只有在一定时间内收全所有任务发来的消息 才喂狗
<WDT><1>认知看门狗相关推荐
- 启动定时器t0的工作指令是_看门狗的工作原理、应用和设计思路
看门狗(watchdog timer)是一个定时器电路.一般有一个输入叫喂狗,一个输出到MCU的RST端.MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零.如果超过规定的时间不喂狗 ...
- 什么是看门狗(watchdog)?看门狗有什么作用?
什么是看门狗(watchdog) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂 ...
- 什么是看门狗(watchdog)
什么是看门狗(watchdog) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂 ...
- 硬件看门狗的选择与设计
看门狗定时器(WatchDog Timer)在出现程序跑飞卡死的时候用来强制复位处理器或控制器.具体操作是:通常程序正常循环会在一定周期内进行"喂狗",若程序执行一个错误代码或者程 ...
- S5PC100看门狗定时器
转自: S5PC100看门狗定时 作者:杨胜利,华清远见嵌入式培训讲师. 看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,在单片机程序的调试和运行中都有着重要的意义.它的 ...
- 【Linux】ARM篇七--WDT看门狗实验
ARM篇七--WDT看门狗实验 一.前言 二.准备工作 三.看门狗简介 四.看门狗寄存器介绍 1.看门狗结构 2.看门狗寄存器 3.WTCON寄存器 4.WTCNT寄存器 五.看门狗代码编写 1.程序 ...
- ABOV单片机内部看门狗WDT的代码实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.内部看门狗代码生成 1.在CodeGen8 代码生成 ...
- 新唐Nuvoton NUC972 看门狗WatchDog(WDT)使用注意事项
由于新唐系台湾厂商,NUC972 ARM MPU资料不是足够完善,笔者认为,一般ARM处理器的TRM手册至少要3000页以上才能够足以详细描述各种寄存器在不同情况下的功能描述.新唐的TRM只有区区 ...
- 嵌入式知识-ARM裸机-学习笔记(8):SoC定时器与看门狗(WDT)
嵌入式知识-ARM裸机-学习笔记(8):SoC定时器与看门狗(WDT) 一.定时器 1. 定时器简介 定时器是SoC中最常见的外设 (1)定时器与计数器.计数器是用来计数的(每隔一个固定时间会计一个数 ...
最新文章
- Redis低成本高可用方案设计
- K近邻算法(KNN)原理小结
- Exchange 2013sp1邮件系统部署-(七)
- python字符串input输入_5.print()函数、转义字符、python注释、常量、字符串、格式化输出、input()输入...
- Java web之web.xml配置详解
- 【动态规划】农田个数 (ssl 1633)
- 30 个惊艳的Python开源项目
- (13)FPGA面试技能提升篇(Shell脚本)
- 你用Deepfakes给小电影换个脸,人脸识别AI也看不出来:95%萌混过关
- 数据结构上机实践第五周项目1- 建立顺序栈算法库
- RayData大数据可视化教程(3)——用逻辑控制颜色动画切换并打包
- sql语句大全+实例讲解
- 超市管理系统(JavaWeb版)
- 【自动驾驶】ROS机器人操作系统总结
- c++定义结构体队列
- [渝粤教育] 西南科技大学 中国古代文学〔2〕 在线考试复习资料
- SQL SERVER恢复数据库时出现Exclusive access could not be obtained because the database is in use
- summer框架API--summer.download
- pycharm插件translation 更新TTK失败,请检查网络连接的解决办法
- AVT Mako/Manta面阵相机开发小结
热门文章
- 是时候给你的产品配一个AI问答助手了!
- 国赛来咯!第十八届全国大学生智能汽车竞赛百度竞速赛正式开启
- php常见的五种设计模式,PHP常见的6种设计模式
- 机房收费系统——UML用例图
- GAN网络学习入门之:A Beginner's Guide to Generative Adversarial Networks (GANs)-翻译
- 由于找不到MSVCP140.dll,无法继续执行代码。重新安装程序可能会解决此问题
- kotlin高阶函数的初级理解
- 64位系统能使用多少内存
- 台式计算机的日常保养,台式电脑怎么保养
- JavaScript 异步编程的前世今生(下)