1、sudo apt-get install rt-tests安装
2、运行测试程序
sudo cyclictest -t 5 -p 80 -n
注释: 运行五个线程,线程优先级为80,无限循环
-d DIST 设置线程间间隔,单位为us(默认为 500us)。当调用 cylictest 时使用了 -t 选项时并且超过一个线程被创建,那么这个间隔值被增加到线程之间。间隔(线程 N)=间隔(线程 N-1) + DIST
-i INTV 设置线程间隔的基准,单位是us(默认为1000us),这设定了第一个线程的的间隔。
-l LOOPS 设定循环的次数(默认为0,表示 永远运行)
这个选项对给定了测试循环的自动测试是很有用的。当计时器的间隔的计数值到达时,cyclictest 停止。
-n 使用 clock_namosleep 代替标准的间隔计时器。
-p PRIO 设置第一个线程的优先级。 给出的优先级用来设定第一个测试线程。每个新的线程给一个更低的优先级。 优先级(线程N)=优先级(线程N-1)-1 (后面的 -1为译者加上的)
-q 退出后仅打印概要情况。这对自动测试是很有用的,只有概要的输出被捕获。
-r 指定使用相对时间而不是绝对时间。 默认的是使用绝对时间来测试的。这个选项是为了确保完整性。在可重复的测试中不能使用。
-s 使用 sys_nanosleep 和 sys_setitimer 而不是 posix计时器
注意,-s 只可以用在一个线程的情况下,因为每个进程一个itimers,而不是每个线程。-s 和-n 一起指定使用nanosleep系统调用,不限于一个线程。
-t NUM 设置线程的个数。默认为1个。 使用未指定参数的-t 将产生的线程数量和cpu个数一样。
3、测试结果
不加rtlinux的patch
加了rtlinux的patch
以上数字的单位都是微秒,可见加了实时rtlinux patch的实时性确实提高了
T: 0 序号为0的线程
P: 0 线程优先级为0
C: 9397 计数器。线程的时间间隔每达到一次,计数器加1
I: 1000 时间间隔为1000微秒(us)
Min: 最小延时(us)
Act: 最近一次的延时(us)
Avg:平均延时(us)
Max: 最大延时(us)