SOC-FPGA交叉编译环境搭建

  本次使用的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文件,如下:

![这里写图片描述](https://img-blog.csdn.net/20170823130633015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGllY2VzX3RoaW5raW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)   或者:   在终端中输入先输入su进入root,然后输入`arm-xilinx-linux-gnueabi-gcc ./hello.c -g -o hello`,将C文件编译成可执行文件hello。此时的hello就是Zynq能执行的程序了。   将生成的文件拷贝到U盘,连接到ZedBoard的USB OTG上,先挂载U盘,然后运行软件测试一下:
mount /dev/sda1 /mnt/
/mnt/a.out

  至此交叉环境就搞定了,效果如下:


这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值