Cyclictest 是 rt-tests 下的一个测试工具,也是rt-tests 下使用最广泛的测试工具,一般主要用来测试使用内核的延迟,从而判断内核的实时性。
1.下载源码
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git

一直没法连接上。

转而手动下载
https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/snapshot/rt-tests-1.3.tar.gz
解压:tar -zxvf rt-tests-1.3.tar.gz
2.交叉编译
make CROSS_COMPILE=arm-linux-gnueabihf-
error:
In file included from src/cyclictest/cyclictest.c:39:0:
src/cyclictest/rt_numa.h:29:10: fatal error: numa.h: No such file or directory
解决方案,安装依赖包:
apt-get install libnuma-dev 

export PATH=/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin:$PATHmake CROSS_COMPILE=arm-linux-gnueabihf- make install DESTDIR=.

一开始没有
export PATH=/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin:$PATH


编译出来的结果在psoc上执行报./cyclictest: cannot execute binary file: Exec format error

后来找到原因,which arm-linux-gnueabihf-gcc
/opt/petalinux/tools/linux-i386/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
所以是i386的,当然无法执行。

make报错impossible constraint in 'asm'
src/queuelat/queuelat.c: In function ‘main_loop’:
src/queuelat/queuelat.c:269:8: error: impossible constraint in ‘asm’
        asm volatile("cpuid; rdtsc" : EAX_EDX_RET(val, low, high));
        ^~~
src/queuelat/queuelat.c:269:8: error: impossible constraint in ‘asm’
        asm volatile("cpuid; rdtsc" : EAX_EDX_RET(val, low, high));
        ^~~
经查发现是src/queuelat/queuelat.c 269行
asm volatile("cpuid; rdtsc" : EAX_EDX_RET(val, low, high));

cpuid; rdtsc是x86汇编,替换为“NOP” arm汇编就不会报错了。

目前先将这一行//注释掉
make CROSS_COMPILE=arm-linux-gnueabihf-还是用的cc

vi Makefile

VERSION = 1.3CC?=$(CROSS_COMPILE)gccAR?=$(CROSS_COMPILE)ar

将这两条#注释掉然后在后面的目标中加入@echo

$(OBJDIR)/%.o: %.c | $(OBJDIR)    @echo $(CC)    $(CC) -D VERSION=$(VERSION) -c $< $(CFLAGS) $(CPPFLAGS) -o $@打印出CC就是cc已经定义了。

CCC语言编译程序。默认命令是“cc”。

再来看?=

还有一个比较有用的操作符是“?=”,先看示例:FOO ?= bar其含义是,如果FOO没有被定义过,那么变量FOO的值就是“bar”,如果FOO先前被定义过,那么这条语将什么也不做,其等价于:ifeq ($(origin FOO), undefined)FOO = barendif

所以CC就是cc

于是将
 
 
VERSION = 1.3CC?=$(CROSS_COMPILE)gccAR?=$(CROSS_COMPILE)ar

改为

 
 
VERSION = 1.3CC?=$(CROSS_COMPILE)gccAR?=$(CROSS_COMPILE)ar

CC=/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
AR=/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar

export PATH=/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin:$PATHmakemake install DESTDIR=.


另外发现一个问题,

run_cyclictest $latency -S -p98 -m -n -q -D 2m
有一个参数-n 
VERSION = 1.3中并没有这个参数

于是又下载了v1.0确实有-n

转载于:https://www.cnblogs.com/idyllcheung/p/10985973.html

ltp-ddt realtime_cpu_load涉及的cyclictest 交叉编译相关推荐

  1. 浅谈go语言交叉编译

    浅谈go语言交叉编译 基础 cgo cgo设置编译和链接参数 静态库和动态库 静态库 动态库 静态编译 cgo的内部连接和外部连接 internal linking external linking ...

  2. QR code二维码简介及Qrencode库的移植与使用

    现在生活中,二维码可以说是无处不在,微信扫码支付,支付宝扫码支付,就连贴小广告的都带上了二维码了.之前一直想去了解一下,还是太懒了,就没去,现在项目中需要用到这东西,正好借此机会了解一下. 上网一查, ...

  3. cmake详细教程(经验版)

    一.参考资料 CMake DSL语言 CMake 快速入门 cmake使用教程 CMake简明教程 CMake 入门实战 | HaHack Cmake入门和MindsporeLite Cmake文件分 ...

  4. rv1109/rv1126 编译并部署QT项目(详解)

    目录 前言 一.Windows 下QT环境搭建 二.在 Builroot 下编译QT应用 1.Buildroot下构建QT工程 2.移植源码 3.编译工程 三.使用交叉编译工具链编译QT 1.准备工作 ...

  5. ROS2机器人笔记21-03-14

    ROS会议和活动: 如果对机器人技术感兴趣,但是看不到任何适合兴趣的项目,那么可能还需要考虑将其应用于同级组织中,例如OpenCV和MoveIt! 核心是各种应用和ROS2的逐渐普及 GPU运算越来越 ...

  6. Paper:自动驾驶领域SAE标准之《道路机动车辆驾驶自动化系统相关术语的分类和定义》官方英文原文翻译与解读(一)

    Paper:自动驾驶领域L级别SAE标准<道路机动车辆驾驶自动化系统相关术语的分类和定义&Taxonomy and Definitions for Terms Related to Dr ...

  7. 两年时间,从汽轮机厂到阿里巴巴

    文章转自本人公众号:机械猿,本人之前在四川某汽轮机从事结构强度设计,目前在阿里巴巴淘宝事业部担任高级开发工程师,有机械工程同行想转行IT,或者有想入职BAT的可以找我内推~ 一些絮叨 有幸能有华科机械 ...

  8. linux LTP移植Android,LTP交叉编译(LTP201XXXX以上版本)

    LTP交叉编译(LTP201XXXX以上版本) 交叉编译工具:4.4.1 liaoye163@sina.com密码123456交叉编译工具在software目录下 LTP版本:Ltp-full-201 ...

  9. Cmake 交叉编译

    转载自 http://zhixinliu.com/2016/02/01/2016-02-01-cmake-cross-compile/ CMake交叉编译 CMake的使用,以及如何将一个项目移植到A ...

最新文章

  1. 蒙特卡罗(Monte Carlo)方法
  2. windows10下Anaconda spyder安装CRF++的python接口
  3. 近二十年大数据行业怎么样?解决了什么?经历了什么?
  4. .NET Core多平台项目模板eShopOnContainers编译手记
  5. linux nginx mysql php 5.5._搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
  6. 基于ARM的车牌识别技术研究与实现
  7. HTML5新增视频标签(HTML5)
  8. matlab 按照某列以行为单位进行排序
  9. sas入门之(三)条件语句,循环语句,input语句
  10. Python pandas,pandas.series,series的主要方法
  11. B站C语言字符动画原理,最初B站会员答题有多么“丧心病狂”?
  12. 公司英文名称及部门大全
  13. 世界杯ing~这不来个实时数据可视化?(结尾附源码)
  14. JS实现简单的登录注册页签
  15. GPU显存占满利用率GPU-util为0
  16. python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣
  17. Python向左,数学向右:乌拉姆的素数研究
  18. M1安装gradle查看版本后失败的解决办法
  19. PostGis函数使用
  20. ANSYS渡槽槽身动水压力的施加(1)——矩形渡槽

热门文章

  1. vue ---- vue简介
  2. android9 mate10,华为仅这四部手机升到安卓9.0,Mate10和P20用户窃喜!
  3. php接收get数组数据,php-如何从wordpress数据库中获取数组值get_results
  4. maven打的包带exec包比不带的大_spring boot maven打包可执行jar包缺少依赖包的问题...
  5. canvas刷新_【前端冷知识】Canvas 滤镜的性能优化
  6. php脚本搭vps,#分享#基于宝塔面板的ZFaka(发卡程序)一键脚本
  7. python爬虫定时运行_python 每天如何定时启动爬虫任务
  8. 客户端连接不上kafka的解决方案
  9. 各大排序算法的Objective-C实现以及图形化演示比较
  10. MySQL深入02-DML之Select查询