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

一键三连,欢迎提问

相关推荐
HHFQ1 天前
在 systemd 场景下的 CPU 限制方式
linux
道清茗1 天前
【RH294知识点汇总】第 9 章 《 自动执行 Linux 管理任务 》常见问题
linux·运维·服务器
山羊硬件Time1 天前
自动化管理Linux的好工具:shell script
linux·嵌入式硬件·硬件工程师·基带工程·硬件开发
wj3055853781 天前
Codex + Git 开发环境配置指南(WSL版)
linux·运维·git
星马梦缘1 天前
如何切换window-ubuntu双系统【方案二】
linux·运维·ubuntu
liang_jy1 天前
Android SparseArray
android·源码
liang_jy1 天前
Activity 启动流程扩展篇(一)—— startActivityInner 任务决策全解析
android·源码
丑八怪大丑1 天前
Java网络编程
linux·服务器·网络
橙子也要努力变强1 天前
信号捕捉底层机制-机理篇2
linux·服务器·c++
NPE~1 天前
[App逆向]脱壳实战
android·教程·逆向·android逆向·逆向分析