首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» rainysky陪你一起在zedboard上移植qt+opencv(二):安装交叉编译环境
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
rainysky陪你一起在zedboard上移植qt+opencv(二):安装交叉编译环境
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-2-24 18:29
|
只看该作者
rainysky陪你一起在zedboard上移植qt+opencv(二):安装交叉编译环境
windows
,
应用程序
,
应用软件
,
linux
,
文件夹
在配置完(一)里面的信息之后,你是不是有种迫不及待的心情向在windows下编写一个程序。和windows不同的是在linux中不需要专门在装一个类似VC之类的应用软件了。在系统中已经有现成的了。
一、编写helloworld应用程序
Rainysky习惯,也是为了方便,在opt建立了几个文件夹,opt/zedboard/code,并且cd /opt/zedboard/code 里面将自己的代码放到里面,方便管理。
利用vim helloworld.c 编写文件,相信大家都比较熟悉吧,里面的内容如下:
在linux下编译.c文件时采用gcc **.c –o *** ,使用./来执行程序,为了与之后的程序相区别,生成的可执行文件为helloworld_pc,代码以及运行结果如下
交叉编译环境的建立
在PC机上运行了helloworld之后,肯定想在zedboard板卡上运行程序吧,rainysky也有这样一种期待,但pc的可执行程序不能直接在arm板卡上运行,原因可以大概解释如下吧:pc机上采用的是X86体系结构,而arm采用的就是arn结构的啦,两个可以执行的二进制代码不一样,所以可执行文件不能混着用了,要是使用还是有办法的,那就是交叉编译,交叉编译的目的就是在主机上生成目标机(zedboard)能执行的文件。啰嗦了这么多,是不是觉得很烦呢,也觉得交叉编译功能很强大,不好弄。其实zedboard已经将交叉编译的文件给我们了,只需要执行几个简单的指令就可以了。
在《嵌入式系统软硬件协同设计实战指南--基于Xilinx Zynq》这本书附带的光盘里,也将交叉编译的安装文件附在里面了,在目录Chapter 9\Src\9.3 Single Board Computer中,不知道你还记得在第一篇里设置了PC机和虚拟机的共享目录,这时候就可以显示出它方便的功能了,直接复制到目录(rainysky在/opt/zedboard/)下就行了,
和执行上一小节的helloworld一样,用 ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 安装文件,很坑爹的出现一个错误,如下:
百度 google了一下,在终端里输入如下命令 dpkg-reconfigure dash,并且在弹出的对话框里选择 <否>,就可以啦(原因大概是:Ubuntu的 shell 默认安装的是 dash,而不是 bash,dash 比 bash 更轻,更快。但 bash 却更常用。如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动。<网上粘贴的>),可以安装的时候,就一路默认下去吧,不过这个时候最好注意下文件安装到哪个地方了。
这个时候你就可以找到类似于gcc一样的交叉编译工具了,
交叉工具是不是很多,但要是直接在终端里面输入arm-xilinx-linux-gnueabi-gcc会提示找不到。这个类似于windows,需要设置环境变量,在ubuntu中,环境变量的文件是 /etc/bash.bashrc,修改这个文件就行了(命令vim /etc/bash.bashrc),增加的内容是
export ARCH=arm
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/
PATH
此时保存文件,并且关闭终端,重新打开一个终端 输入arm-xilinx 按几下tab键是不是显示出来了可爱的交叉编译链。到此说明交叉编译链安装完成
交叉编译helloworld
交叉编译链安装成功了,就可以交叉编译c文件了,进入到/opt/zedboard/code/文件夹下面,使用arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_zed,来生成在zed板卡上能执行的文件,并用file命令验证一下
如上图可以看到helloworld_zed是在arm架构中运行的程序,helloworld_pc是在X86结构下可执行的。此后在板卡上运行下就OK啦。。。。。。。。。。
来源:
rainysky的博客
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议