ltp-ddt realtime_cpu_load涉及的cyclictest 交叉编译

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 [email protected]打印出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

 

原文地址:https://www.cnblogs.com/idyllcheung/p/10985973.html

时间: 2024-10-15 00:28:02

ltp-ddt realtime_cpu_load涉及的cyclictest 交叉编译的相关文章

ltp-ddt realtime_cpuload_10p 涉及的cpuloadgen交叉编译及安装

1.下载源码 https://github.com/ptitiano/cpuloadgen/archive/v0.94.tar.gz 解压 tar -zxvf cpuloadgen-0.94.tar.gz 2.Makefile CC = $(CROSS_COMPILE)gccMYCFLAGS += -Wall -static -pthreadDESTDIR = ./out install: cpuloadgen    install -d $(DESTDIR)    install cpuloa

嵌入式wince基础知识

因项目需要,用到手持设备的开发,手持设备搭载的是wince系统,之前多多少少接触过嵌入式编程,一直以为自己的处女开发是在Linux,没想到还是没逃出微软的“魔掌”,不开心归不开心,项目还得继续,先学习嵌入式wince的基本知识吧,为以后的开发打好基础. 什么是嵌入式系统 我现在觉得有些概念经过一段时间的沉淀,进进出出大脑多次,就能体会到一点点的不一样的味道,就像嵌入式系统,之前看一些定义,一点感觉都没有,理解不能,囫囵吞枣的感觉不好,现在有一些时间了,也接触过几个小项目,慢慢的就觉得嵌入式系统就

Linux主机上使用交叉编译移植u-boot到树莓派

0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正

在Ubuntu下安装imx6linux系统的交叉编译环境遇到的问题总结

这段时间一直忙于手上的嵌入式项目,可以说自己从嵌入式的菜鸟一点点的入门了,关于嵌入式和imx6核心板的开发有了一点的了解,尤其是对于板子环境的搭建.硬件的开发,搭建环境,是一个很大的工程量,也是很重要的一步,环境没有搭好就无法进行下一步.当然这个前提是对项目所使用的硬件有一定的了解.对于嵌入式开发,项目进行到现在,从一个什么都不懂的到现在可以和大家讨论v4l2,framebuffer,讨论linux的视频开发,虽然还是菜鸟级别的,但这个月确实让自己掌握了一们知识. 关于嵌入式的开发,网上有很多的

交叉编译Python至嵌入式arm

这是求毕业哥的处女座博客,希望大家别喷!!! 由于实验室项目的需要,求毕业哥于昨晚(2014/11/05)9点开始学习Python.自身有点强迫症,装什么软件都要求新的,所以给自己 Windows装了个Python3.3(也为自己埋了个雷).之前在Linux机器上装了Python-2.7.3,我没多想,以为Python高级版 是向下兼容的.于是就开始了求毕业哥的踩雷之路...raw_input(),``,socket通信...总之各种版本间不兼容啊!!! 言归正传,求毕业哥(以下简称,求毕业)的

交叉编译和交叉调试环境搭建及使用

1. 交叉编译器 1.1 交叉编译器介绍 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译.这个编译过程就叫交叉编译.简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(cross compiler). 1.2 搭建交叉编译环境 1.2.1 实验环境 交叉编译工具:arm-linux- 4.2.2 编译平台:ubuntu10.10 开发板类型:UT-S3C6410 1.2.2 搭建步骤 1) 在/usr/local

Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)

原文地址:http://blog.csdn.net/sttyytw/article/details/17005263 声明:本教程在參考了下面博文,并经过自己的摸索后实际操作得出,本教程系本人原创,因为升级后的cocos2d-x有了一些变化,眼下的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交叉编译环境组建的说明,所以我这几天研究了一下,如今将详细的搭建方法分享出来,也给自己学习Cocos2d-x做个笔记. 參考博文: http://www.cnblogs.com/lhm

Windows7 32/64位系统搭建Cocos2d-x及Android交叉编译环境

本文转载自http://blog.csdn.net/sttyytw/article/details/17005263 转载,请注明出处! 本文搭建环境 系统:win7 64位 旗舰版 原版软件:只装了系统的半裸机 大家只要按照步骤耐心操作,环境的搭建就不会产生一些莫名其妙的错误 预备下载的软件(为了方便,软件安装包请放在一个文件夹下) 请大家先行下载,但不要安装,一步一步的来 1.cocos2d-x2.2.1  2013年11月19日更新   cocos2d-x游戏引擎开发环境,大家都懂的 下载

Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交叉编译环境组建的说明,所以我这几天研究了一下,现在将具体的搭建方法分享出来,也给自己学习Cocos2d-x做个笔记. 参考博文: http://www.cnblogs.com/lhming