本文基于 RockPi 4A 单板 Linux 4.4 内核介绍 RK3399 看门狗( watchdog )的调试方法。
一、驱动文件
RK3399 watchdog 用的是新思( Synopsys )的 IP ,在 watchdog 驱动程序加载时,会注册 misc 设备,节点为 /dev/watchdog 。
驱动文件: drivers/watchdog/dw_wdt.c
二、DTS配置
配置文件: arch/arm64/boot/dts/rockchip/rk3399.dtsi
watchdog 具体配置如下:
三、调试方法
1、关闭看门狗
写入除大写 V 以外的任意字符,不再喂狗,一段时间后系统会重启。
例:
2、打开卡门狗
写入大写 V ,继续喂狗,系统不再重启。
例:
3、CONFIG_WATCHDOG_NOWAYOUT
如果配置了 CONFIG_WATCHDOG_NOWAYOUT ,通过 echo 命令写入任何字符,都不会关闭喂狗。
例:
注:
使用 ./build/mk-kernel.sh rockpi4a 编译内核时,即使修改了 rockchip_linux_defconfig 文件,编译时,相关配置也不会生效。需要在编译前 make distclean 或删除内核根目录下的 .config 文件后,重新编译内核。
Watchdog在实现上可以是硬件电路也可以是软件定时器,能够在系统出现故障时自动重新启动系统。在Linux 内核下, watchdog的基本工作原理是:当watchdog启动后(即/dev/watchdog 设备被打开后),如果在某一设定的时间间隔内/dev/watchdog没有被执行写 *** 作, 硬件watchdog电路或软件定时器就会重新启动系统。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)