RK平台Watchdog硬件看门狗验证

一.环境

以下是基于3588例子,3328其他的RK平台同理,参考TRM即可,将寄存器基地址改一下就可以进行排查验证。

二.配置

1.dts

&wdt{

status = "okay";

};

2.config

CONFIG_WATCHDOG=y

CONFIG_WATCHDOG_CORE=y

CONFIG_DW_WATCHDOG=y

3.应用层APP

/system/bin/watchdogd

三.验证

1.基本寄存器

3588在配置了WTD之后,如果没有人去打开这个设备,看门狗设备内核是不会使能的

0xfeaf0000 第0个bit 是开关。可以看到下面是关闭状态。

0xfeaf0008是计数器,count到0会产生reset中断(驱动会配置)

./io -4 0xfeaf0008

feaf0008: 0000ffff

./io -4 0xfeaf0000

feaf0000: 00000008

2.内核喂狗

打开WTD(open /dev/watchdog),如果喂狗'V',那么内核会开启自动喂狗,看如下结果,WTD counts 已经在计数,并且毫无疑问enable=1,当feaf0008到0就会reset系统,但是这个计数永远不会到0,猜猜为啥?因为开了 V...IP(🐶)

echo 'V' > /dev/watchdog

io -4 0xfeaf0000

feaf0000: 00000009

io -4 0xfeaf0008

feaf0008: 2773d61c

3.应用层喂狗

打开WTD 后,但凡喂的不是V,那么就需要自己去喂狗,这个时候内核是不会自动喂狗的,count会计数到0,那么会reset。

echo '' > /dev/watchdog

./io -4 0xfeaf0008

feaf0008: 3d099539

./io -4 0xfeaf0000

feaf0000: 00000009

./io -4 0xfeaf0008

feaf0008: 17436391

./io -4 0xfeaf0008

feaf0008: 0c5830ce

./io -4 0xfeaf0008

feaf0008: 00000000

......err

IO命令问题可以参考

IO命令问题https://blog.csdn.net/weixin_47822507/article/details/155752417?fromshare=blogdetail&sharetype=blogdetail&sharerId=155752417&sharerefer=PC&sharesource=weixin_47822507&sharefrom=from_link

一键三连,欢迎提问

相关推荐
未济4 天前
linux 配置环境变量
linux
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
千里马学框架4 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
嵌入式分享4 天前
RK3588/RK3576 为什么取消原生 LVDS?显示接口选型与外部转换方案
rk3588·lvds·mipi
AFinalStone4 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc4 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
_艾伦 耶格尔.4 天前
进程间通信
linux
Liuqy-054 天前
Linux IO编程——静态库、动态库
linux
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试