测试指南
4 Dec 2024
Read time: 3 minute(s)
准备测试环境
Watchdog 测试所需的测试环境如下:
- 硬件:开发板,或 D211 的 FPGA 板
- 软件:
- PC 端的串口终端软件,用于 PC 和开发板进行串口通信
- Luban 中带有的
test_wdt
测试工具
打开 test-wdt
在 Luban 的根目录下执行 make menuconfig 命令,打开
test-watchdog
选项:ArtInChip packages
Sample code
[*] test-watchdog
test-wdt
测试
test-wdt
主要用于通过 ioctl 标准接口,查询和设置 Watchdog,具体步骤如下:-
在 Shell 中直接运行 test_wdt 即可。
板子上的
test-wdt
位于 /usr/local/bin/,无需进入该目录。 -
执行 test_wdt -u 命令可查看帮助信息:
test_wdt 的帮助信息输出示例如下:Compile time: Apr 16 2022 14:31:42 Usage: test_wdt [options] -i, --info Print the status and infomation -s, --set-timeout Set a timeout, in second -g, --get-timeout Get the current timeout, in second -p, --set-pretimeout Set a pretimeout, in second -G, --get-pretimeout Get the current pretimeout, in second -k, --keepalive Keepalive the watchdog -u, --usage Example: test_wdt -c 0 -s 12 Example: test_wdt -c 1 -s 100 -p 90
-
test_wdt
的使用示例:注:- 在 WDT V1.0 驱动中,timeout 参数取值范围必需为 [1, 3600],即最小 1 秒且最多 1 小时。
- 在 Linux 的 Watchdog 子系统中,pretimeout 必须小于 timeout。
-
初始化和查看状态:
test_wdt -i
输出结果示例如下:In ArtInChip Watchdog timer watchdog V0, options 0x8180 Status: 32768 Boot status: 0
-i
选项用于初始化 Watchdog timer 并显示其当前状态。- 输出显示了 Watchdog timer 的版本、选项、状态和启动状态。
-
设置超时时间:
test_wdt -s 0
输出结果示例如下:wdt_set_timeout()125 - Set chan0 timeout 0, pretimeout 0 [ERROR] wdt_set_timeout()128 - Failed to set timeout 22[Invalid argument]
-
设置超时时间为 0
test_wdt -s 0
输出结果示例如下:wdt_set_timeout()125 - Set chan0 timeout 0, pretimeout 0 [ERROR] wdt_set_timeout()128 - Failed to set timeout 22[Invalid argument]
- 尝试将超时时间设置为 0 秒失败,因为 0 秒为无效值。
-
获取当前超时时间
test_wdt -g
输出结果示例如下:wdt_get_timeout()155 - Get chan0 timeout 16
-g
选项用于获取当前的超时时间。- 输出显示当前的超时时间为 16 秒。
-
设置有效的超时时间,例如 2 秒
test_wdt -s 2
输出结果示例如下:wdt_set_timeout()125 - Set chan0 timeout 2, pretimeout 0
-
再次获取当前超时时间
test_wdt -g
输出结果示例如下,显示当前的超时时间为 2 秒:wdt_get_timeout()155 - Get chan0 timeout 2
-
设置另一个有效的超时时间,例如 9 秒。
test_wdt -s 9
输出结果示例如下,表示成功将超时时间设置为 9 秒:wdt_set_timeout()125 - Set chan0 timeout 9, pretimeout 0
-
再次获取当前超时时间
test_wdt -g
输出结果示例如下,显示当前的超时时间为 9 秒:wdt_get_timeout()155 - Get chan0 timeout 9
-
设置带预超时时间的超时时间,例如 9 秒
test_wdt -s 9 -p 4
输出结果示例如下,表示成功将超时时间设置为 9 秒,并将预超时时间设置为 4 秒。wdt_set_timeout()125 - Set chan0 timeout 9, pretimeout 4