首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >保障系统稳定运行!瑞芯微RK3506开发板Watchdog看门狗配置与使用攻略

保障系统稳定运行!瑞芯微RK3506开发板Watchdog看门狗配置与使用攻略

原创
作者头像
Industio_触觉智能
发布2025-09-18 17:55:52
发布2025-09-18 17:55:52
2200
代码可运行
举报
文章被收录于专栏:Linux嵌入式Linux嵌入式
运行总次数:0
代码可运行

本文基于触觉智能RK3506核心板/开发板介绍Watchdog看门狗,以及相关配置与使用教程。

Watchdog简介

  • Watchdog

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

  • Watchdog应用场景

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

Watchdog适配与测试方法

  • 内核与DTS配置

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

如demo,可以关注深圳触觉智能腾讯开发者社区或公众号

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

测试方法

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

  • 内核自动喂狗

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

代码语言:javascript
代码运行次数:0
运行
复制
echo V > /dev/watchdog

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

代码语言:javascript
代码运行次数:0
运行
复制
echo c > /proc/sysrq-trigger 
  • 应用自动喂狗

命令如下:

代码语言:javascript
代码运行次数:0
运行
复制
#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命令可以用来设置不喂狗后触发重启的间隔时间:

代码语言:javascript
代码运行次数:0
运行
复制
//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指定看门狗节点。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档