编译RT-tests进行Linux实时性测试

前言:
    在工业级的应用上,对于实时性的要求十分严格,就如我当前公司中,开发的是工业级机器人,
未收到同步帧,则认为通信出现异常,于是将机器人停止。
   所以实时线程的执行时间变得尤其严格,在打完实时补丁后,怎么对实时性进行测试也成
为重要的一环,本文就采用开源的RT-tests来对系统的实时性进行测试。
关键字:

RT-testsRT-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)
  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值