11. Watchdog 使用¶

天天365彩票软件官方下载3D ⌚ 2026-02-21 00:21:27 👤 admin 👁️ 5923 ❤️ 187
11. Watchdog 使用¶

11.3. 使用¶

watchdog 默认是关闭的,需按上述说明在 DTS 文件中打开相关节点方能使用。

watchdog 的驱动文件为 kernel-5.10/drivers/watchdog/dw_wdt.c。下面介绍两种方法来使用 watchdog:

内部看门狗的设备名称为/dev/watchdog,用户可通过 echo 命令来控制该设备

# 写入任意内容(大写字母‘V’除外),开启看门狗,每 44 秒内需要写入一次(喂狗)

echo A > /dev/watchdog

# 开启看门狗,并且内核会每隔 22 秒自动喂一次狗

echo V > /dev/watchdog

也可以通过程序来控制看门狗,通过Android.mk编译生成可执行文件,在机器启动后,push到上面运行,demo代码如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define WDIOC_SETTIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 6, int)

#define WDIOC_GETTIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 7, int)

int main(void)

{

int timeout1 = 22;

int timeout2;

int fd = open("/dev/watchdog", O_WRONLY); //start watchdog

int ret = 0;

if (fd == -1) {

perror("watchdog");

exit(EXIT_FAILURE);

}

ret = ioctl(fd, WDIOC_SETTIMEOUT, &timeout1); //set timeout

if (ret < 0)

printf("ioctl WDIOC_SETTIMEOUT failed.\n");

ret = ioctl(fd, WDIOC_GETTIMEOUT, &timeout2); //get timeout

if (ret < 0)

printf("ioctl WDIOC_SETTIMEOUT failed.\n");

printf("timeout = %d\n", timeout2);

while (1) {

ret = write(fd, "\0", 1); //feed the dog

if (ret != 1) {

ret = -1;

break;

}

printf("feed the dog\n");

sleep(10);

}

close(fd);

return ret;

}

demo说明:

1、内部看门狗在使用 open 函数打开后会立刻开始计时。

2、关于超时时间:用户可以用 ioctl 来设置超时时间和获取超时时间。当用户没有设置超时时间时,驱动会应用默认请求的超时时间为 30 s。需要说明的是驱动最终设置的超时时间并不一定是应用层传输的时间或者驱动一开始设置的默认时间。驱动函数里有一个超时时间的列表,该列表中存放了 16 个超时时间(前 9 个是 0)。驱动会在超时时间列表中找到一个合适的时间作为最终 watchdog 设置的超时时间。

以下为超时时间的详细列表:

请求的超时时间

通过 ioctl 获取的超时时间

watchdog最终设置的超时时间

timeout_request > 89

timeout_get = timeout_request

timeout_set = 89

44 < timeout_request <= 89

timeout_get = 89

timeout_set = 89

22 < timeout_request <= 44

timeout_get = 44

timeout_set = 44

11 < timeout_request <= 22

timeout_get = 22

timeout_set = 22

5 < timeout_request <= 11

timeout_get = 11

timeout_set = 11

2< timeout_request <= 5

timeout_get = 5

timeout_set = 5

timeout_request = 2

timeout_get = 2

timeout_set = 2

timeout_request = 1

timeout_get = 1

timeout_set = 1

参考文档:SDK/RKDocs(linux 为 docs)/common/watchdog

相关数据

崇高文本与代码:定价和许可

崇高文本与代码:定价和许可

Sublime Text需一次性购买,价格70美元,永久使用个人电脑;VS Code免费使用,无许可证费用,但扩展和主题可能需付费。选择时需考虑使用需求和

07-16 mobile3656
什么是网络经济(Network Economy)?

什么是网络经济(Network Economy)?

什么是网络经济(Network Economy)? 网络经济是技术信息社会框架内的经济秩序,与工业革命所激发的经济不同,网络经济利用信息市场和社交网络

01-17 电视直播网365
帮助中心

帮助中心

京东集运下单操作指引 京东集运,是京东为港澳台及海外客户提供的一种跨境物流服务,客户可以将同一个地址下相同运输方式的多个订单合并

09-29 mobile3656
这几款实用且有趣的软件推荐给你

这几款实用且有趣的软件推荐给你

软件一:烘培大师 「烘培大师」是一款专门提供烘培食谱的应用程序,它为用户提供了丰富多彩的烘培食谱、详细的制作步骤和材料准备,让用

09-30 mobile3656
MI 小米极简都市双肩包开箱及简单使用感受

MI 小米极简都市双肩包开箱及简单使用感受

接下来楼主要和大家分享的是 MI 小米极简都市双肩包,楼主将给大家展示这款双肩包的包装、外观和做工细节,分享自己的使用感受,总结这款

09-20 电视直播网365
弧长计算器常见问题解答

弧长计算器常见问题解答

价格推广计划ZH-CNZH-CN登录Download AppGet the appZH-CNZH-CN价格推广计划登录免费 AI 弧长计算器:AskSia 帮你秒解任何弧长问题无论你处理的是抛物线、

12-18 mobile3656