本次使用的SOC-FPGA为Xilinx家族的ZYNQ-7000系列。
环境:PC端为VMware下的Ubuntu 14.0;
基于ZYNQ-7000系列下的Linux系统;
1.目的
目的:用来重新编译基于Zynq的Linux系统,同时能写基于Zynq的C程序(其实Vivado中的SDK也能实现)。
2.具体步骤:
1. 在电脑上安装VMware虚拟机,然后下载虚拟机下的Ubuntu 14.0的系统镜像;
2. 在http://wiki.xilinx.com/zynq-tools这个页面找到ARM GNU Tool,注册Xilinx官网后可下载;
PS:如果下载不了,请这下载:链接:http://pan.baidu.com/s/1o8dYlj8 密码:lqlf
3. 由于上个软件环境是为32-bit系统设计的,64-bit系统的用户需要先安装部分32-bit库,在Ubuntu终端中进入root权限,输入下面命令:
apt-get install ia32-libs ia32-libs-gtk
Mentor网站上的一篇文章说,还需要32-bit版本的xulrunner,我这里没装过,但也能用,不放心的可以按照这里的步骤安装:https://sourcery.mentor.com/GNUToolchain/kbentry62
4.之后在终端中输入:
dpkg-reconfigure dash
然后出现下图,选择“否”,退出。此步就是将dash改成bash,原理我不懂,只是安装刚下载那个文件的时候,需要改成bash才行。
弹出的对话框中选否,将dash改为bash,这样才能顺利执行Sourcery CodeBench安装程序。将“xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin”此文件拷贝到”主文件夹“下面(如果改成中文版的系统,不要将程序放到中文路径下)
5.打开一个终端,运 行该文件路径下输入
./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
这里需要用root权限执行,所以有两种方式:
1.$ sudo su 输入密码就可以了;
2.$ sudo ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
个人推荐第一种方式,原因就不说了。
然后出现安装界面,一步一步向下安装即可。部分 截图如下:
期间会问你是否安装到一个路径,我默认安装到指定路径的(我的是/root/CodeSourcery /Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/)。同时,还会问道需不需要“Modify PATH”,我默认“修改”。
6.以后每次编译软件的时候都需要通过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
指令可以看到我们刚才设置的路径。
7.HelloWorld
下面让我们来编译点东西试试,首先是HelloWorld。找个地方新建一个hello.c文件,用gedit编辑,代码如下:
#include <stdio.h>
int main(void)
{
printf("Hello ZedBoard!\n");
return 0;
}
在C文件所在目录中输入下面指令进行:
arm-xilinx-linux-gnueabi-gcc hello.c
在电脑上生成了a.out文件,如下:
mount /dev/sda1 /mnt/
/mnt/a.out
至此交叉环境就搞定了,效果如下: