交叉编译环境简单的说不过就是想在一个系统下编译另一个系统要使用的可执行文件。因此在通过PC机(虚拟机)开发ARM系统时是必要的。
下面开始讲安装步骤。
第一是开始准备。Linux系统的准备,楼主用的是Centos。虚拟机。
第二是下载petalinux-sdk。 网址:http://www.xilinx.com/support/download/index.htm
选择ISE Design Tools >>选择你要的版本的 PetaLinux SDK 中的第一项(包括ZYNQ那个)大概1G左右
第三就是将下载好的文件复制到虚拟机下,最好是复制到某一个用户的home文件夹下。
第四,将刚才复制的文件解压 保证磁盘空间足够
第五,是很重要的一步!!!交叉编译环境需要很多必要的库文件,这些需要的库文件在(http://www.xilinx.com/publications/products/petalinux/petalinux-installation-guide.pdf)最后一部分有写,根据你用的是Ubuntu系统还是红帽子 centos系统什么的,你要选择对应的命令下面的名字,将所有的安装一遍(有的已经安装会提示,版本低的会升级。此处楼主有时候会因为下载不到报错,只要重试几次就好了)。
RedHat/CentOS/Fedora系统用$ sudo yum install -y <yum-package-name>命令
Debian/Ubuntu类型的系统用$ sudo apt-get install -y <apt-package-name>
经过第五步!!!!我们开始第六步,就是开始安装了,进入解压后的文件夹,可以看到setting.sh,如果此脚本不是可执行文件 用命令chmod 777 setting.sh将它的权限改成可执行。并使用(!!非root!!!)用户登录 运行 source setting.sh 然后根据提示 同意两个协议,然后就开始安装了。如果报错 可能是你硬盘空间不足 或者是库文件没安装完整。有问题可以去上面那个pdf中找troubleshooting里面找解决办法。
第七步 可以试试arm-xilinx-linux-gnueabi-g 然后按两次tab 看是否已经可以使用了。这时候还不行,因为环境变量只是暂时设置了,重启后失效。所以在用户目录下(~/) 用vi编辑.bashrc 在下面添加脚本:
export PETALINUX="$HOME/petalinux-v2013.04-final-full/tools"
export PATH="$PATH:$PETALINUX/linux-i386/arm-xilinx-linux-gnueabi/bin"
export PATH="$PATH:$PETALINUX/linux-i386/microblazeel-xilinx-linux-gnu/bin"
export PATH="$PATH:$PETALINUX/linux-i386/microblaze-xilinx-linux-gnu/bin"
export PATH="$PATH:$PETALINUX/linux-i386/petalogix/bin"
export PATH="$PATH:$PETALINUX/common/petalogix/bin"
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
其中第一句后面的路径为你安装的路径,需要按照你安装的路径自己更改
第八步 可以用arm-xilinx-linux-gnueabi-gcc编译一个.c文件 或者 arm-xilinx-linux-gnueabi-g++编译一个c++文件,命令用法与gcc和g++用法相同。然后将生成的文件复制到zedboard上面上面的linux环境即可运行。
第一个当然是Helloworld了。。。代码:
#include<stdio.h>
main()
{
printf("Hello Alan\n");
printf("Wo le ge qu OOOOOOKKKKKKK le !!!!!\n");
}
保存为main.c文件
运行命令arm-xilinx-linux-gnueabi-gcc -o main main.c
将生成的main在zedboard上运行得到结果:
大概就这些,如果有觉得不详细的地方可以留言 我再改。
Alan@HIT