Zynq7000开发系列-3(Xilinx交叉编译环境搭建)
一、前言
上一篇文章说了,在开发之前必须先搭建起交叉编译环境,于是这里我们就介绍一下环境的搭建过程。
其实在所安装的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)——安装交叉编译工具链 | 电子创新网赛灵思中文社区
Zynq7000开发系列-3(Xilinx交叉编译环境搭建)的更多相关文章
- Zynq7000开发系列-4(新:Xilinx交叉编译环境搭建)
一.前言 本来上一篇文章已经讲了Xilinx交叉编译环境的搭建,但是我在后续的使用中发现:使用2011年版本的交叉编译链编译OpenCV 3.1.0时出现错误: 网络搜索一番,查明是交叉编译链的问题 ...
- windows phone 8 开发系列(一)环境搭建
一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃wp7的行为比较不爽),现在wp8已经出来一段时间了,市场上也 ...
- Zynq7000开发系列-7(在Zybo上运行Linaro桌面系统)
目标板:Zybo(7Z010) 主机操作系统:Ubuntu 14.04.5 LTS 64bit 交叉编译链: arm-xilinx-linux-gnueabi- [gcc version ...
- YA157C交叉编译环境搭建
目录 1.开发板简介 3.主机搭建交叉编译环境 4.编译第一个ARM Linux程序--Hello World 5.在开发板上运行Hello World程序 6.ssh登录开发板 7.注意 8.she ...
- Exynos4412交叉编译环境搭建
Exynos4412交叉编译环境搭建 交叉编译:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发.编译速度. 环境: Tiny4412SDK1506开发板 需要软件: arm-linux- ...
- Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程
搭建所需环境Linux版本:Ubuntu 14.10 交叉编译器版本:arm-linux-gcc-4.4.3资源链接 何为交叉编译环境搭建交叉编译环境,即安装.配置交叉编译工具链.在Ubuntu环境下 ...
- 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)
引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...
- arcgis api for flex 开发入门(一)环境搭建
http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...
- Android开发使用控件入门--环境搭建
Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...
随机推荐
- int 转十六进制
//使用1字节就可以表示bpublic static String numToHex8(int b) { return String.format("%02x", b ...
- SVN版本控制中.a无法提交问题
1.首先xcode是默认忽略.a文件的.改变方法如下: 1⃣️. 打开终端, 在命令行中输入: vi ~/.subversion/config 来打开配置文件.2⃣️. 然后, 在[miscell ...
- Java WebService一个构建
参考:http://dyygusi.iteye.com/blog/2148029 下面是自己的实践路线,
- Codeforces Round #379 (Div. 2) E. Anton and Tree —— 缩点 + 树上最长路
题目链接:http://codeforces.com/contest/734/problem/E E. Anton and Tree time limit per test 3 seconds mem ...
- Discuz/X3.1去掉标题中的Powered by Discuz!以及解决首页标题后的"-"
虽然不提倡大家去掉版权信息,但是在实际操作的时候还是去掉,毕竟每个页面标题最后面出现”Powered by Discuz!“会显得页面标题比较冗长. 经过本人的实践,论坛里也有操作方法,不过那个操作方 ...
- MYSQL进阶学习笔记十四:MySQL 应用程序优化!(视频序号:进阶_32)
知识点十五:MySQL 的应用程序优化(32) 一.访问数据库采用连接池 把连接当做对象或设备,统一放在‘连接池’里.凡是需要访问数据库的地方都从连接池里取连接 二.采用缓存减少对于MySQL的访问: ...
- codeforces 569D D. Symmetric and Transitive(bell数+dp)
题目链接: D. Symmetric and Transitive time limit per test 1.5 seconds memory limit per test 256 megabyte ...
- CSS3:CSS 听觉参考手册
ylbtech-CSS3:CSS 听觉参考手册 1.返回顶部 1. 听觉样式表 听觉样式表可把语音合成与音响效果相组合,使用户可以听到信息,而无需进行阅读. 听觉呈现可用于: 视觉能力低弱的人士 帮助 ...
- 【旧文章搬运】从XP到Win7看Windows对象管理的变化(概述)
原文发表于百度空间,2010-08-01========================================================================== 今天花了一 ...
- layui 复选框checkbox 全选写法
前语:本来我是不想写layui框架的博客的,有的时候数据经过layui渲染后原生的写法就取不到值了,一定要用它框架的写法,实在蛋疼,故写之,以后用到可以省点时间去度娘! HTML: <div i ...