版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kl1125290220/article/details/78560220
前言:
在工业级的应用上,对于实时性的要求十分严格,就如我当前公司中,开发的是工业级机器人,
未收到同步帧,则认为通信出现异常,于是将机器人停止。
所以实时线程的执行时间变得尤其严格,在打完实时补丁后,怎么对实时性进行测试也成
为重要的一环,本文就采用开源的RT-tests来对系统的实时性进行测试。
关键字:
RT-tests 、RT-Linux
交叉编译cyclictest(ARM平台)
a) 下载rt_tests源码
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
切换分支:
git checkout origin/stable/v1.0
b) 交叉编译
修改Makefile中的编译器
CC = arm-none-linux-gnueabi-gcc
AR = arm-none-linux-gnueabi-ar
执行make指令
报错:
src/cyclictest/rt_numa.h:29:18: fatal error: numa.h: 没有那个文件或目录
解决:
1)安装apt-file 来找到依赖库
apt-get install apt-file
apt-file update #更新源
2)寻找 numa.h
apt-file install numa.h
3) 安装相应的库
apt-get install libnuma-dev
交叉编译cyclictest (i686平台)
a) 下载rt_tests源码
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
切换分支:
git checkout origin/stable/v1.0
b) 交叉编译
修改Makefile中的编译器
CC = gcc
AR = ar
CFLAGE 加上 -m32
执行make指令
c) 报错找到不-lnuma lib
1,下载libnuma_dev ia86板的deb包
2,解压出来,找到libnuma.a,复制到/rt-test/numa_ia86目录下
3,修改Makefile LDFLAGS += -L../numa_ia86/
4,编译并通过
运行cyclictest程序进行实时性测试:
sudo cyclictest -t 5 -p 80 -n
注释: 运行五个线程,线程优先级为80,无限循环
cyclictest运行结果详解
T: 0 序号为0的线程
P: 0 线程优先级为0
C: 9397 计数器。线程的时间间隔每达到一次,计数器加1
I: 1000 时间间隔为1000微秒(us)
Min: 最小延时(us)
Act: 最近一次的延时(us)
Avg:平均延时(us)
Max: 最大延时(us)