一、前言
上一篇文章说了,在开发之前必须先搭建起交叉编译环境,于是这里我们就介绍一下环境的搭建过程。
其实在所安装的Vivado HLx 2016.4中就包含了Xilinx SDK,在该SDK上即可开发Linux上的应用程序,但我在使用的过程中发现该SDK自带的编译器与通常手动安装的交叉编译链有所不同,导致在程序编写的过程中缺少了很多头文件。为此,我试过将Ubuntu系统中的相关Linux头文件拷贝到了Windows系统并添加至SDK的搜索路径中,但最终由于Windows与Linux系统的诸多不同而失败。下一步,我将直接在Ubuntu系统上安装单独的SDK工具,并尝试将手动安装的交叉编译链添加至SDK中。我这么做的目的是将SDK提供的BSP和Linux系统下开发的应用程序结合起来,而不用在Linux系统中开发程序时重写BSP的相关接口。
下面回归到我们的主题,交叉编译环境的搭建,其实就是在Ubuntu中安装Xilinx提供的交叉编译链。
二、软件安装
[本文系统:Ubuntu14.04.5 LTS 64bit]
1、下载Xilinx交叉编译链:xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin(网络上有不少分享链接)
2、将交叉编译链拷贝到Ubuntu系统中,安装前在终端运行命令:“ sudo dpkg-reconfigure dash ”,在弹出的界面上选择“ 否 ”,退出。
(作用:设置默认的shell为bash;原因:Ubuntu安装的时候使用了dash,dash比bash体积小速度快,兼容性高。但是在bash下可以正常运行的一些sh在dash下不能使用,造成了一些麻烦。为了解决之,键入sudo dpkg-reconfigure dash,重新配置dash,并选择“no”,即不使用dash。)
3、在终端运行安装命令:“ sudo ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin ”,然后出现安装界面,选择默认设置安装即可。
4、额外配置:手动添加环境变量,在终端运行命令“ gedit /etc/bash.bashrc ”打开bash.bashrc文件,在文件中添加如下内容:
export ARCH=arm export CROSS_COMPILE=arm-xilinx-linux-gnueabi- export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/:$PATH
(作用:将编译环境路径加入到PATH环境变量,以后编译程序时无需再使用export命令指定;其中,“ /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux ” 是交叉编译链的默认安装路径)
5、验证:在终端输入命令“ arm-xilinx-linux-gnueabi-gcc-v ”,若能打印出相关版本信息则说明安装成功。
PS:由于交叉编译链默认安装在了 /root 目录下,所以在终端上使用一般用户时可能无法访问,切换为 root 身份即可。
后续将继续探索前沿所说的“将SDK提供的BSP和Linux系统下开发的应用程序结合起来”,以及使用Code Blocks来作为开发工具(需将安装的交叉编译链配置进去)。
参考链接:
ZedBoard移植嵌入式Linux教程(5)——安装交叉编译工具链 | 电子创新网赛灵思中文社区
