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

Linux的WDT子系统简析

一、概述

  1. 看门狗是基于定时器的复位机制,需要定时喂狗,不能咬狗触发复位
  2. Linux的看门狗驱动框架分为设备驱动层、核心层以及统一设备驱动层,分解负责与硬件交互、逻辑处理和APP交互

二、设备驱动层做了什么?

  1. 分配一个watchdog_device结构体并初始化
  2. 设置watchdog_device结构体的成员info、ops、timeout、min_timeout、max_timeout等等属性
  3. 调用watchdog_init_timeoutwatchdog_set_nowayoutwatchdog_set_drvdata,最后调用devm_watchdog_register_device注册wdt设备
  4. ops中包含start函数、stop函数和ping函数、set_timeout函数,硬件层面实现启动看门狗、停止看门狗、喂狗、设置超时时间
  5. info中包含option和name等成员

三、看门狗核心层如何注册watchdog_device

  1. watchdog_register_device调用__watchdog_register_device注册看门狗设备
  2. 获得一个独有的id
  3. watchdog_dev_register注册wdt设备
  4. 注册reboot和restart的通知回调函数
  5. 初始化设备节点、并定义一个高精度定时器,初始化心跳工作队列,最后注册字符设备
  6. 工作队列中,定时执行喂狗函数

四、喂狗相关的ops

  1. open函数,启动看门狗硬件,watchdog_start
  2. write函数,写入函数
  3. ioctl函数,WDIOC_SETTIMEOUT设置超时时间、WDIOC_KEEPALIVE手动触发心跳
http://www.jsqmd.com/news/135456/

相关文章:

  • ARM 汇编指令:PUSH 和 POP
  • 反向海淘火了!它到底解决了海淘的哪些痛点?
  • 12/24
  • 图解Hibernate的工作流程 (高清,共7步)
  • 排序|倒序遍历|set
  • python私人健身和教练预约管理系统--论文pycharm django vue flask
  • FPGA基础知识(二十一):xilinx FPGA中常用的原语
  • Google与OpenAI绘图工具遭滥用,阿里巴巴开源语音模型,知乎发布AI产品榜单,Jan团队发布Jan-v2-VL-Max
  • Alpha阶段项目复审报告
  • 基于PLC的交通灯控制系统设计红绿灯控制博图组态仿真
  • Python第三阶段——PySpark
  • pq|dfs|快排
  • 2025最新!8个AI论文软件测评:研究生写论文痛点全解析
  • Dify 本地开发:前端代理转发解决 401 问题
  • 基于SpringBoot家教中介管理系统(毕设源码+文档)
  • 镜像的创建
  • NX ①添加GC工具箱 ②制图绘制中心线 ③制图倒斜角标注C ④更新重量
  • DPJ-141 基于stm32f103控制器的GPRS定位追踪器设计(源代码+proteus仿真)
  • 事后诸葛分析
  • 当AI Agent学会“打电话“——微软Agent Framework的A2A与AGUI协议深度解析
  • AI Ping 赋能:基于 GLM-4.7(免费!)+ LangChain + Redis 打造智能AI聊天助手
  • 2025银川最新装修改造家政服务中心 TOP5 评测!兴庆区、金凤区、西夏区、贺兰县等地区一站式家庭服务机构权威榜单发布,专业高效助力家居焕新 - 全局中转站
  • 软件基础第四次作业
  • 在Django中安装、配备、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的机制
  • 前端 | 一篇搞懂CSS盒模型核心:padding、margin、border与box-sizing、border-radius
  • 基于SpringBoot的足浴管理系统(毕设源码+文档)
  • 共享指针和独占指针
  • 团队作业6——项目事后分析
  • 断点调式
  • 基于SpringBoot高校迎新管理系统(毕设源码+文档)