问题背景 部分客户或者技术人员需要验证uart的功能,包括数据准确性、传输速度、长时间传输稳定性等,但发现没有方便使用的测试用例。
用例功能 1.支持短接外部接口或者使能Loopback自发自收 2.可配置用例为发送模式和接收模式进行板间收发测试 3.可打印收传输时间信息,用于计算传输速率 4.支持各项参数如传输通道、波特率、data size、传输次数的个性化设置 5.支持校验收发信息是否准确
使用步骤 使能uart_test make menuconfig 使能 PACKAGE_UART_TEST宏,即可编译出uart_test文件
使用说明
例子:
代码语言:javascript复制/*Master模式短接外部引脚即可自发自收*/
Master:uart_test -d 2 -n 100 -t 10 -g -p
Slave: uart_test -d 2 -n 100 -t 10 -g -p -m
Loopback:uart_test -d 1 -b 1500000 -n 10 -s 256 -l -g
参数选择:
1.-d,选择uart通道,默认通道1
2.-b,波特率选择,默认115200Hz
3.-n,传输次数,默认100次
4.-s,发送数据size,默认16bytes
5.-p,开启打印统计时间信息
6.-t,收发多少轮数据后打印统计的时间信息,默认收发10次后打印一次
7.-l,开启loopback回环
8.-g,开启打印发送数据信息
9.-m,以接收模式调用测试程序,用于板间收发测试
测试验证
代码语言:javascript复制root@TinaLinux:/# uart_test -d 2 -n 100 -t 10 -f -l -g
=======uart_test test args=======
uart_port: /dev/ttyS2.
baudrate: 115200.
test cycle: 100.
bytes_per_cycle: 16.
flow ctrl:true.
debug log:true.
trans mode
nSpeed:115200
set done!
Select(/dev/ttyS2), Cnt 100.
[main] line:292 read_size=0
0:transmit 16 bytes.
==== write data ====
0x39 0x34 0x33 0x34 0x39 0x38 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
1:transmit 16 bytes.
==== write data ====
0x31 0x34 0x33 0x36 0x39 0x37 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
2:transmit 16 bytes.
==== write data ====
0x33 0x34 0x33 0x38 0x37 0x33 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
3:transmit 16 bytes.
==== write data ====
0x35 0x34 0x34 0x30 0x34 0x32 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
4:transmit 16 bytes.
==== write data ====
0x37 0x34 0x34 0x32 0x30 0x34 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
5:transmit 16 bytes.
==== write data ====
0x39 0x34 0x34 0x33 0x36 0x34 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
6:transmit 16 bytes.
==== write data ====
0x31 0x34 0x34 0x35 0x32 0x36 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
7:transmit 16 bytes.
==== write data ====
0x33 0x34 0x34 0x36 0x38 0x37 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
8:transmit 16 bytes.
==== write data ====
0x35 0x34 0x34 0x38 0x35 0x35 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
9:transmit 16 bytes.
==== write data ====
0x37 0x34 0x35 0x30 0x35 0x37 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
cnt: 10
err_cnt: 0
suc_cnt: 10
time: 2s 1675us
10:transmit 16 bytes.
==== write data ====
原贴链接:https://bbs.aw-ol.com/topic/1319