ZedBoard学习手记(一) First Step——建立Xilinx交叉编译环境

经过这段时间借由美信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编辑,代码如下:

#include

int 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-xlnx

  .git

cd u-boot-xlnx

 

用我们之前安装的交叉编译环境进行编译,由于我们已经设置了环境变量,这里直接执行编译即可,先进行配置:

make zynq_zed_config

 

配置完成后编译:

make

 

编译结束后,会生成一个u-boot文件(没有后缀名),这是一个elf文件,将其另存为u-boot.elf。这个文件很重要,在我们以后生成Boot Loader时会用到,用到时再解释吧。

之后我们就将开始设计自己的自定义AXI总线外设了,下次会为大家呈现一个通过GPIO读取Switch值并控制LED的IP,最终目的是在Linux下通过自己的软件控制这个硬件IP。

好了,今天就到这里吧。晚安啦~~~

 

 

欢迎大家在美信DIY大赛专区论坛讨论问题:

http://maxim.eefocus.com/bbs/forumall_1237.html

更多ZedBoard资料请见美信社区:

http://maxim.eefocus.com

你可能感兴趣的:(Linux)