ZedBoard开发板学习记录(一)之开发环境的搭建(Ubuntu16.04)以及运行HelloWorld程序的测试
ZedBoard开发板由PL和PS两大部分组成,

对PS操作,一般有两个办法:
(1)、在Windows系统上面,使用SDK新建C Project SDK自带编译环境,编译后自动产生elf文件。使用U盘将elf拷贝到Zedboard,运行即可。
(2)、在Linux系统上面,使用xilinx-arm-linux交叉编译链,编译C文件,将编译后的文件拷贝到Zedboard即可。
下面详细讲述在Ubuntu系统上搭建xilink交叉编译环境的过程:
1.交叉编译环境搭建
(1)下载交叉编译工具链(xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin)
(2)安装x86的32位开发库

按照提示安装lib32z1等库来替代
apt-get install lib32z1
Tips:
经过测试仅仅安装上面这个库在ZedBoard开发板上运行编译好的程序的仍然会报错,错误信息如下:

经过查阅博客发现,该错误提示仍然缺少32位库文件,继续安装
apt-get install lib32stdc++6
apt-get install lib32ncurses5
(3) 在opt文件夹下建立xilink_Dev的文件夹
mkdir xilink_Dev
把xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin放在改文件夹下(用WinSCP传输)
(4) 将dash改为bash,在终端中输入dpkg-reconfigure dash,选择<否>
(5) ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin,执行该命令时提示权限不够,
chmod +x xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin,设置为可执行程序
再次执行./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin可执行
采用默认的安装路径
(5) 配置环境变量:
vim /etc/bash.bashrc
在文件中添加如下图红框中的内容

保存退出后使用source命令使配置文件生效
source /etc/bash.bashrc
(6) 执行arm-xilinx-linux-gnueabi-gcc -v (注意不同状态下标点符号的区别以及字母),若显示如下内容证明交叉编译环境搭建成功

2. 让ZedBoard开发板与超级终端工具(putty或者secureCRT等工具)连接
(1) 正确连接开发板的接线(可查阅相关资料详细了解各种接线的作用,以下为一篇推荐博客:http://svenand.blogdrive.com/archive/172.html#.WedytOuGPH5)

- 将电源线连接到ZedBoard
- 在主机和ZedBoard连接器J17(JTAG)和J14(UART)之间连接两条微型USB电缆。(编程端口(JTAG)J17,UART端口 J14)
- 将跳线设置为级联JTAG模式MIO [6:2] = GND
- 打开ZedBoard电源
- 安装JTAG电缆驱动程序(若电脑不识别zedboard,可以自行下载驱动程序CyUSBSerial)
- 通过USB OTG接口连接U盘(注意:若U盘格式为NTFS格式的,zedboard开发板通过mount命令挂载不上,解决办法还在研究中,后换个FAT32格式的U盘可以成功挂载)
(2) 若接线连接没有错误,打开secureCRT软件工具
1)选择通过serial协议来连接ZedBoard开发板

2)打开系统的设备管理器,查看ZedBoard开发板在电脑上的端口映射

选择COM4口,波特率设置为115200,其他选项采用默认设置,点击下一步,点击完成

(3) 打开ZedBoard开发板的电源,稍等一会,等ZedBoard开发板上LD12蓝灯亮起来,在secureSRT工具上会显示以下信息:表示成功启动ZedBoard开发板。

在显示信息的最后可以看到U盘挂载的盘符名称

(4)在Ubuntu系统中进入到opt/xilink_Dev目录下编辑C程序代码:

保存并退出:wq!
用搭建好的交叉编译环境进行编译:

(5) 把编译生成的hello可执行文件拷贝到U盘上,进一步挂载到ZedBoard开发板上
(tips:从ubuntu系统中拷贝文件到windows中有多种方法,本机安装了VMware Tools 工具,可以便捷的拷贝,也可以安装配置samba服务来实现)

进入到mnt目录下,发现成功把U盘里的数据挂载到mnt目录下

可以看到在mnt目录下有hello文件

(6)运行命令:./hello 即可执行,效果如下:

至此完成ZedBoard开发板的环境搭建的简单测试。
ZedBoard开发板学习记录(一)之开发环境的搭建(Ubuntu16.04)以及运行HelloWorld程序的测试的更多相关文章
- JZ2440开发板学习 1. 刚接触开发板, 安装驱动
一. jtag和串口驱动 1. 驱动下载 http://pan.baidu.com/s/1pJkAHJH 2. 驱动安装 禁用win10的驱动数字签名 http://www.100ask.org/bb ...
- 假期任务一:安装好JAVA开发环境并且在Eclipse上面成功运行HelloWorld程序
(本周主要做了java环境的安装,安装完jdk后又安装了eclipse,平均每天两小时Java吧,这周敲代码的时间比较少,大多是在b站看java入门视频和菜鸟教程的基础语法,也就打开eclipse验证 ...
- 【转帖】4412ARM开发板学习笔记(一)
本文转自迅为论坛:http://www.topeetboard.com 新手在进行开发学习前,建议先看01-迅为电子开发板入门视频.对开发板和开发环境有一定的了解后,不要盲目接线开机.以下是个人的一点 ...
- Nvidia Jetson TX2开发板学习历程(1)- 详细开箱、上电过程
考试周已经结束了,开发板也已经到了.希望借着这个假期能够好好的利用这块开发板学习Linux系统以及Tensorflow的相关知识. 我打算将学习历程通过博客的方式写出来,作为自己的笔记,也可以供以后拿 ...
- 【STM32 .Net MF开发板学习-05】PC通过Modbus协议远程操控开发板
从2002年就开始接触Modbus协议,以后陆续在PLC.DOS.Windows..Net Micro Framework等系统中使用了该协议,在我以前写的一篇博文中详细记载了这一段经历,有兴趣的朋友 ...
- samrt210开发板ping-系列问题(开发板ping通主机,主机ping通虚拟机,唯独~开发板ping不通虚拟机)
硬件:PC机.虚拟机(Linux).开发板(smart210) 常用模型: 注:1).有线网卡与无线网不可同连一个路由器,不可在同网段: 2).vmware选择桥接模式,虚拟网络适配器选定具体的网卡名 ...
- 【开发板试用报告】鸿蒙OS环境搭建及代码烧录
鸿蒙系统的代码编译环境需要linux系统,软件开发和代码烧录需要windows环境. Linux环境 参考官方链接:https://gitee.com/openharmony/docs/blob/ma ...
- android学习点滴一:android环境的搭建
东一点西一点,很多时间都浪费了.是该系统性的做好自己的东西了. <android学习点滴一:android环境的搭建> [环境变量]变量名:JAVA_HOME变量值:C:\Java\jdk ...
- STM32F042开发板学习实践
之前有粗略地学习过stm32F103的理论知识,但仅GPIO的配置.时钟配置就让人望而却步.现在手头有Nucleo STM32F042的开发板,而且ST已经推出STM32CubeMx图形化的工具软件, ...
随机推荐
- php使用curl下载指定大小的文件
php中使用基于libcurl的curl函数,可以对目标url发起http请求并获取返回的响应内容.通常的请求方式类似如下的代码: public function callFunction($url, ...
- RESTful API 架构解读
RESTful API 架构解读 首先我们还是先介绍下 RESTful api 的来龙去脉. 首先, RESTful (下文都简称 RESTful api 为 RESTful ) 1.RESTful ...
- UWP 唤起应用商城,邮件
UWP做到收尾工作的时候,一般需要在应用内做一个关于页面,用于放你的邮箱链接,商店评论链接等.. 一:打开链接 打开链接有两种做法 1.用 HyperlinkButton (超链接按钮)这个控件,给 ...
- 笨鸟先飞之ASP.NET MVC系列之过滤器(03动作过滤器过滤器)
概念介绍 动作过滤器应该是我们平常工作中需要用到最多的过滤器了,动作过滤器,主要在我们的动作方法执行前后执行. 如果我们需要创建动作过滤器需要实现IActionFilter接口. 我们看到该接口里有两 ...
- winPcap编程之环境搭建(一)
之前用winPcap做过一个拦截网络数据包的程序,作为当时的网络编程课程的课程设计,现在重新学习一下. 工具:codeblocks 要用到的一些东西:WinPcap.exe与winPcap一些库文件 ...
- Extjs6(五)——写一个包含toolbar、form、grid的子页面
本文基于ext-6.0.0 这个页面布局是很多管理系统的常用布局,具体如下图: 一.页面主体personalInfo.js 整个页面采用border布局,分成三部分,这个personalInfo.js ...
- nodejs里的module.exports和exports
引 在node.js中我们可以使用module.exports和exports导出模块,设置导出函数.数组.变量等等 为什么可以用这两个模块? 或者直接问,node.js的模块功能是怎么实现的. 这样 ...
- Django(二)
QuerySet与惰性机制: 所谓惰性机制:Publisher.objects.all()或者所谓惰性机制:Publisher.objects.all()或者.filter()等都只是返回了一个Que ...
- 《剑指Offer》附加题_用两个队列实现一个栈_C++版
在<剑指Offer>中,在栈和队列习题中,作者留下来一道题目供读者自己实现,即"用两个队列实现一个栈". 在计算机数据结构中,栈的特点是后进先出,即最后被压入(push ...
- 基于webuploader.js的单图片上传封装
HTML代码 <div class="manageImgUp">点击图片上传</div> <div class="manageImgUpLc ...