测试指南
4 Dec 2024
Read time: 2 minute(s)
准备测试环境
- 硬件
-
开发板
-
USB 转串口的线缆
-
- 软件
-
PC 端的串口终端软件,用于 PC 和开发板进行串口通信
-
Luban-Lite 自带的
test_hrtimer
命令行工具
-
使能 test_hrtimer
命令行
在 Luban-Lite 根目录下执行 scons --menuconfig,进入 menuconfig
的功能配置界面,按如下选择打开 test_hrtimer
命令行工具:
Drivers options --->
Drivers examples --->
[*] Enable HRTimer driver test command
测试 HRTimer 常用场景
test_hrtimer 命令支持创建两类 Timer:
-
Oneshot 类型定时器(默认):只触发一次超时,然后该 Timer 会被注销,适用于需要一次性触发的任务,例如超时报警、单次事件等。
示例:启动一个 Oneshot 定时器,例如 hrtime0,超时时间为 2 秒 4 微秒。aic /> test_hrtimer -c 0 -s 2 -u 4 -d hrtimer0: Create a timer of 2.000004 sec, Oneshot mode aic /> 0/0 hrtimer0 timeout callback! Elapsed 2000012 us
-
Period 类型定时器:可以循环触发超时,对应参数 -m period,适用于需要周期性触发的任务,例如心跳包发送、定时数据采集等。
示例:启动一个 Period 定时器,例如 HRTimer0,超时时间为 3 秒 123 微秒,循环触发 19 次。
aic /> test_hrtimer -c 0 -s 3 -u 123 -d -m period hrtimer0: Create a timer of 3.000123 sec, Period mode Will loop 19 times aic /> 0/19 hrtimer0 timeout callback! Elapsed 3000129 us 1/19 hrtimer0 timeout callback! Elapsed 2995773 us ... 19/19 hrtimer0 timeout callback! Elapsed 2995689 us
test_hrtimer 命令的帮助信息如下:
aic /> test_hrtimer -h
Usage: test_hrtimer [options]:
-m, --mode mode of timer, oneshot/period
-c, --channel the number of hrtimer [0, 2]
-s, --second the second of timer (must > 0)
-u, --microsecond the microsecond of timer (must > 0)
-d, --debug show the timeout log
-h, --usage
Example: test_hrtimer -m oneshot -c 0 -s 2 -u 3
注意事项:
-
HRTimer 的精度是微秒级,因此 RTOS 的调度、调试信息输出都会干扰到定时器的精度。上述运行日志中,存在一些误差,属于合理现象。
-
test_hrtimer 命令默认不打印定时器的超时信息,需要使用 -d 参数打开日志。
-
Period 定时器示例仅为演示效果,在持续大约 60 秒后会自动停止定时器。