4.6.3. 调试指南

4.6.3.1. 调试开关

参考快速入门 - 编译概述 - Kernel配置,进入kernel的功能配置,可以打开Watchdog模块的DEBUG选项:

Linux
    Kernel hacking
        ZX Debug
            [*] Watchdog driver debug

此DEBUG选项打开的影响:

  1. Watchdog驱动以-O0编译

  2. Watchdog的pr_dbg()和dev_dbg()调试信息会被编译

在系统运行时,如果要打印pr_dbg()和dev_dbg()信息,还需要调整loglevel为8,两个方法:

  1. 在board.dts中修改bootargs,增加“loglevel=8”

  2. 在板子启动到Linux shell后,执行命令:

echo 8 > /proc/sys/kernel/printk

4.6.3.2. Sysfs 节点

4.6.3.2.1. status 节点

在Watchdog驱动初始化成功后,会在Sysfs中注册生成一个 status 节点,其中打印了当前的配置及状态信息:

[aic@] # cat /sys/devices/platform/soc/19000000.watchdog/status
In Watchdog V256.00:
Module Enable: 0
Dbg continue: 0
clr_thd: 333
Write disable: 0
IRQ Enable: 0
Current chan: 0 0
Current cnt: 352
chan clr_thd irq_thd rst_thd
   0       0  160000  320000
   1       0  160000  320000
   2       0  160000  320000
   3       0  160000  320000

4.6.3.2.2. 当前的 Watchdog 通道信息

查看当前生效正在使用的 Watchdog 通道信息,方法:

[aic@] # cat /sys/devices/platform/soc/*.watchdog/timeout  —— 当前通道的timeout配置
10
[aic@] # cat /sys/devices/platform/soc/*.watchdog/pretimeout —— 当前通道的pretimeout配置
0
[aic@] # cat /sys/devices/platform/soc/*.watchdog/channel —— 当前生效的通道编号
0