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

保障系统稳定运行!瑞芯微RK3506Watchdog看门狗配置与使用攻略

本文演示设备:触觉智能RK3506核心板/开发板

主要介绍Watchdog看门狗,以及相关配置与使用教程。

Watchdog简介

  • Watchdog

Watchdog看门狗机制,是一种用于监控系统运行状态的机制,用于检测和恢复系统故障(如死锁、崩溃或超时)。通过定期发送信号(称为“喂狗”)来确保系统正常运行。若在设定时间内未收到喂狗(如 CPU 负载过高、进程卡死、内核锁死,内核崩溃等),将自动触发系统重启,以防止系统崩溃或死锁!

  • Watchdog应用场景

Watchdog看门狗机制,通过自动检测系统异常并触发复位来防止设备“死机”,提升可靠性和抗干扰能力的重要机制,可广泛应用于工业控制与自动化、商用无人值守终端、物联网设备、汽车电子等场景。

Watchdog适配与测试方法

  • 内核与DTS配置

根据Watchdog驱动文件,所在位置drivers/watchdog/dw_wdt.c进行内核与DTS配置节点。

图片

相关详细资料请关注 我们

完成内核配置并编译,将编译生成的boot.img烧录进开发板。

测试方法

开启有2种方法,通过内核系统自动喂狗或应用程序自动喂狗。

  • 内核自动喂狗

写入字母大写V至看门狗节点,内核自动喂狗,命令如下:

echo V > /dev/watchdog

通过以下命令模拟内核卡死,执行命令后,等待1分钟左右系统就会由看门狗触发重启:

echo c > /proc/sysrq-trigger 

  • 应用自动喂狗

命令如下:

#include <linux/fd.h>#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>int main()
{
int fd = open("/dev/watchdog", O_WRONLY);
int ret = 0;
if (fd == -1){
perror("watchdog");
exit(EXIT_FAILURE);}while(1){ret = write(fd, "\0", 1);
if (ret != 1){ret = -1;
break;}
sleep (10);}close (fd);
return ret;}

  • 设置触发重启时间

Watchdog命令可以用来设置不喂狗后触发重启的间隔时间:

//usage:#define watchdog_trivial_usage
//usage:       "[-t N[ms]] [-T N[ms]] [-F] DEV"
//usage:#define watchdog_full_usage "\n\n"
//usage:       "Periodically write to watchdog device DEV\n"
//usage:     "\n        -T N    Reboot after N seconds if not reset (default 60)"
//usage:     "\n        -t N    Reset every N seconds (default 30)"
//usage:     "\n        -F      Run in foreground"
//usage:     "\n"
//usage:     "\nUse 500ms to specify period in milliseconds"
watchdog -t 5 -T 10 -F /dev/watchdog
  • Watchdog命令参数说明

-t N表示每N秒进行喂狗操作,若不指定则默认为30s;

-T N表示若超过N秒没有喂狗操作,则触发看门狗,自动重启,若不指定则默认为60s;

-F DEV指定看门狗节点。

http://www.dtcms.com/a/364068.html

相关文章:

  • 【系统架构师设计(9)】需求工程全生命周期管理:从定义到变更的完整体系
  • 第2.7节:多模态大模型之Midjourney
  • 《面试必备:JVM垃圾回收机制深度解析(附高频问题应对)》
  • 【线段树】3525. 求出数组的 X 值 II|2645
  • solidity从入门到精通 第七章:高级特性与实战项目
  • 机器视觉的平板电脑OCA全贴合应用
  • 修改⽂件之git
  • 企业微信AI在银行落地的3个实用场景:智能机器人、搜索、文档的具体用法
  • 了解名词ARM Linux的SOC
  • 枚举和泛型
  • 高性能接口实现方案
  • 刷题日记0902
  • 38.Ansible判断+实例
  • 硬件:51单片机
  • 【Unity Shader学习笔记】(一)计算机图形学
  • shell脚本案例
  • 【Unity Shader学习笔记】(二)图形显示系统
  • nmap扫描端口,netstat
  • 二叉树经典题目详解(下)
  • CH01-1.1 Exercise-Ordinary Differential Equation-by LiuChao
  • 猫猫狐狐的“你今天有点怪怪的”侦察日记
  • 标贝科技参编《数据标注产业发展研究报告(2025 年)》
  • ARM裸机开发(GPIO标准库开发)
  • Java搭建高效后端,Vue打造友好前端,联合构建电子采购管理系统,实现采购流程电子化、自动化,涵盖采购全周期管理,功能完备,附详细可运行源码
  • 提高卷积神经网络模型的一些应用
  • 复刻 Python 实现的小智语音客户端项目py-xiaozhi日记
  • AI助力开发:JetBrains官方DeepSeek插件Continue一站式上手!
  • 为什么研发文档的变更缺乏审批和追溯
  • 2025 大学生职业准备清单:从数据到财会,这些核心证书值得考
  • 毕业项目推荐:70-基于yolov8/yolov5/yolo11的苹果成熟度检测识别系统(Python+卷积神经网络)