首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» ZedBoard学习手记(一) First Step——建立Xilinx交叉编译环境
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
ZedBoard学习手记(一) First Step——建立Xilinx交叉编译环境
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-9-19 11:17
|
只看该作者
ZedBoard学习手记(一) First Step——建立Xilinx交叉编译环境
软件开发
,
软件设计
,
Linux
,
手记
,
而且
经过这段时间借由美信DIY大赛对ZedBoard的学习,略有所得,对这个新平台也有了一定的理解。在此称之为手记,算是边学边记了。既然还在学习,就自然会有一些谬误或不足,还望童鞋们指正啊。要开发ZedBoard最重要的是Xilinx ISE工具集,在这个IDE里能够完成大部分的逻辑及底层软件开发工作。如果做裸奔开发,一个IDE足矣,但是若不想一辈子不穿衣服,需要涉及Linux下的软件设计,就得在Linux中进行编译。Xilinx的IDE里貌似也集成了开发Linux软件的相关环境,但兔子还不太会用,而且Linux下需要进行编译的东西太多了,很多地方SDK也无能为力,因此还是走传统路线——在Linux下建立Xilinx编译环境。兔子的操作系统是Win7 Ultimate,多系统用起来着实麻烦,因此安装了VMware虚拟机,并在虚拟机下安装了Ubuntu,版本为11.10 64-bit。建立编译环境是老生常谈的话题,网上讲的很多,但为了保持手记完整性,这里请再耐心的来过一遍吧。在Xilinx Wiki网站(
http://wiki.xilinx.com/zynq-tools
)下载Sourcery CodeBench,由于这个环境是为32-bit系统设计的,64-bit系统的用户需要先安装部分32-bit库,在Ubuntu终端中进入root权限(兔子喜欢一进终端就sudo su,省得后面麻烦),输入下面命令:
apt-get install ia32-libs ia32-libs-gtk
Mentor网站上的一篇文章说,还需要32-bit版本的xulrunner,我这里没装过,但也能用,不放心的可以按照这里的步骤安装:
https://sourcery.mentor.com/GNUToolchain/kbentry62
之后在终端中输入:
dpkg-reconfigure dash
在弹出的对话框中选否,将dash改为bash,这样才能顺利执行Sourcery CodeBench安装程序。下载好的安装文件为:xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin,在该文件路径下输入./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin打开安装程序,兔子选择默认路径(Do not modify PATH),装好后的执行文件路径为/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/,以后每次编译软件的时候都需要通过export指令将编译环境的路径加入PATH环境变量,后面编译一些内容的时候还会用需要修改ARCH,其指令如下:
export ARCH=arm
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/
PATH
如果不想每次都输入,就在通过gedit /etc/bash.bashrc指令打开bash.bashrc文件,在里面加入上述指令,这样开机就会自动执行了,同样可以运行source /etc/bash.bashrc指令使设置立即生效,通过echo $PATH指令可以看到我们刚才设置的路径。下面让我们来编译点东西试试,首先是HelloWorld。找个地方新建一个hello.c文件,用gedit编辑,代码如下:#includeint main(void){ printf("Hello ZedBoard!\n"); return 0;}在C文件所在目录中输入下面指令进行:arm-xilinx-linux-gnueabi-gcc hello.c在兔子电脑上生成了a.out文件,可能是以前设置的原因,不确定在你那里会叫什么呵呵。如图:
将生成的文件拷贝到U盘,连接到ZedBoard的USB OTG上,先挂载U盘,然后运行软件测试一下:
mount /dev/sda1 /mnt/
/mnt/a.out
至此交叉环境就搞定了,效果如下:
下面再编译个U-Boot试试,Xilinx在Wiki上也做了介绍:
http://wiki.xilinx.com/zynq-uboot
首先为自己选一个用于开发的目录,兔子的目录位于/arm/zed,这个依喜好自定啦。通过Git下载Xilinx U-Boot代码:
git clone git://git.xilinx.com/u-boot-xarm.git
cd u-boot-xarm
用我们之前安装的交叉编译环境进行编译,由于我们已经设置了环境变量,这里直接执行编译即可,先进行配置:
make zynq_zed_config
配置完成后编译:
make
编译结束后,会生成一个u-boot文件(没有后缀名),这是一个elf文件,将其另存为u-boot.elf。这个文件很重要,在我们以后生成Boot Loader时会用到,用到时再解释吧。之后我们就将开始设计自己的自定义AXI总线外设了,下次会为大家呈现一个通过GPIO读取Switch值并控制LED的IP,最终目的是在Linux下通过自己的软件控制这个硬件IP。来源:
电子懒兔的博客
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
发短消息
加为好友
wtliu
当前离线
UID
149575
帖子
22
精华
0
积分
117
阅读权限
20
来自
Piking
在线时间
34 小时
注册时间
2006-11-9
最后登录
2017-8-11
注册会员
UID
149575
性别
男
来自
Piking
2
#
wtliu
发表于 2014-9-19 15:27
|
只看该作者
学习了!!!!!!!!!!!!!
回复
引用
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
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议