当前位置: 首页 > news >正文

Linux下的WatchDog

看门狗🐕


看门狗简介

看门狗定时器(Watchdog Timer)是一种定时器,用于检测系统是否正常运行。如果系统在规定时间内没有向看门狗定时器发送复位信号,看门狗定时器就会产生复位信号,使系统复位。看门狗定时器通常用于嵌入式系统中,以防止系统进入死循环或响应时间过长。

看门狗作用

当受到外部或者内部干扰,如电磁干扰或者软件异常造成的程序跑飞。这时候就只能断电让设备重启,设备才可以回复正常。而看门狗可以使系统在一定时间间隔内复位(也就是发生死机或者跑飞这种情况设备可以自己复位而不是人工干预)。因此看门狗是可以保证系统可靠长期稳定运行的有效手段。

看门狗的子系统框架

1730987719128

  • 看门狗的接口在Linux中是高度统一的存在,所以,在Linux中,看门狗的接口是统一的,无论底层硬件如何,上层接口都是一样的。这样,上层应用就可以使用统一的接口来操作看门狗,而不需要关心底层硬件的具体实现。

Demo ONE

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <linux/watchdog.h>
#define WARDOG_DEV "/dev/watchdog"
int main(int argc, char *argv[]){int time_out = 10; // 10 seconds timeout for the watchdogint ret = 0;int fd = open(WARDOG_DEV, O_RDWR);if (fd < 0) {perror("open");exit(1);}ret = ioctl(fd, WDIOC_SETTIMEOUT, &time_out);if (ret < 0) {perror("ioctl");exit(1);}// feed the watchdogret = ioctl(fd, WDIOC_KEEPALIVE, NULL);if (ret < 0) {perror("ioctl");exit(1);}return 0;
}

http://www.mrgr.cn/news/67986.html

相关文章:

  • GitHub每日最火火火项目(11.7)
  • Oracle 第28章:Oracle机器学习
  • 第18篇 :关于SystemVerilog中的约束随机机制(一)
  • el-date-picker 设置开始时间和结束时间
  • class com.alibaba.fastjson2.JSONObject cannot be cast to class com.ruoyi.sys
  • 基于Multisim拔河比赛游戏+计分电路(含仿真和报告)
  • 协程2 --- 相关概念
  • PPT文件设置了修改权限,如何取消权?
  • Linux-c TCP服务模型
  • 【测试】【Debug】vscode中同一个测试用例出现重复
  • 27.旅游推荐管理系统(基于springboot和vue)
  • 【系统架构设计师】高分论文:论软件的可用性设计
  • 【JavaScript】模块化开发
  • (4)Java 编程基础概览:Java中的输入输出操作与代码注释详解
  • canfestival主站多电机对象字典配置
  • 力扣中等难度热题——长度为K的子数组的能量值
  • python基础(2)
  • SpringBoot监控
  • 模糊理论与模糊集概述
  • 一文了解Android本地广播
  • 探索开放资源上指令微调语言模型的现状
  • 鸿蒙多线程开发——TaskPool任务池
  • Scala学习记录,List
  • 嵌入式linux中设备树控制硬件的方法
  • 【初阶数据结构与算法】沉浸式刷题之顺序表练习(顺序表以及双指针两种方法)
  • Serverless云计算服务