arm交叉编译lmbench

一、下载lmbench

www.bitmover.com/lmbench 官网下载,http://www.bitmover.com/lmbench/lmbench3.tar.gz

我没有下载下来,找的别人的百度云下载

链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd

二、修改makefile

修改三个文件

2.1 修改scripts/os

在最后一行echo $OS前,增加

OS=arm-linux (增加行)

echo $OS

2.2 修改scripts/compiler

在最后一行echo $CC前,增加

CC=arm-linux-gnueabihf-gcc(增加行)

echo $CC

2.3 修改scripts/build

将LDLIBS=lm修改为LDLIBS="-static -lm"

三、编译

直接make,编译完成后在bin目录下生成stream可执行文件。

四、运行出错处理

stream在我们的环境中运行,直接会报Segmentation fault,无其他任何打印。

通过gdb发现无任何堆栈信息,只是报错:Starting program: /mnt/test/zhixin_stream/stream

During startup program terminated with signal SIGSEGV, Segmentation fault.

在网络上查也没有查到啥有用信息,最后通过查看stream.c的源码发现,STREAM_ARRAY_SIZE参数过大,导致申请的数组大小已经大于内存大小。

#ifndef STREAM_ARRAY_SIZE

define STREAM_ARRAY_SIZE 10000000

#endif

static STREAM_TYPE aSTREAM_ARRAY_SIZE + OFFSET,

系统起来以后的剩余内存只有128M,之前STREAM_ARRAY_SIZE大小为接近1G,,由此导致在程序加载的时候超过运行内存大小而出现段错误。修改STREAM_ARRAY_SIZE大小为原来的十分之一,问题解决。

相关推荐
从零开始的嵌入式之旅1 小时前
day47
arm开发·经验分享·笔记·嵌入式硬件
老当益壮梁奶奶4 小时前
ARM汇编学习笔记(六):【i.MX6ULL】时钟系统与定时器(EPIT & GPT)
c语言·arm开发·嵌入式硬件·学习·51单片机
昌原的儿子LEO5 小时前
IMX6ULL 时钟系统与 EPIT/GPT 定时器原理与配置
arm开发·学习
sunoo-2295 小时前
【ARM嵌入式学习笔记Day6】一文打通i.MX6ULL时钟体系:PLL/PFD/预分频+滞回比较器全解析
arm开发·笔记·vscode·单片机·imx6ull·汇编语言
M78佐菲13 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
sunoo-2291 天前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Doraemomo1 天前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull
老当益壮梁奶奶1 天前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件
M78佐菲1 天前
ARM学习笔记(五)
linux·arm开发·笔记·嵌入式硬件·学习
小诗懂技术1 天前
ARM 裸机中断:从按键到 GIC 的处理流程
arm开发