Zed板上的Zynq是一个ARM PS(processing system, 双核A9 + 存储管理 + 外设)+ PL(programable Logic) 结构,如果不使用PL,zynq的开发和普通的ARM 开发一样。不同的是ARM PS是可配置,因而硬件信息是不固定的。这也是zynq灵活性的一个表现。

这是本系列的第一篇,因而会给出详细步骤的截图。

更多更新请关注我的博客:@超群天晴 http://www.cnblogs.com/surpassal/

硬件平台:Digilent ZedBoard

开发环境:Windows XP 32 bit

软件:PlanAhead 14.1 + XPS 14.1 + SDK 14.1

一、配置硬件信息

启动PlanAhead,进入新建工程向导

选择工程名和路径

工程类型,这里选择 RTL 工程

由于只需要PS部分信息,而这部分在后面由XPS完成,因而不需要添加任何文件

一直点下一步,直道出现芯片和板载信息。直接选择Boards,选择系列是Zynq-7000。14.1目前只支持XC7Z020器件。

完成新建工程向导

PlanAhead进入工作视图,在Project Manger中选择建立的工程,右键,Add Sources

选择 Add or Create Embeded Sources

单击 Create Subdesign

输入需要建立嵌入系统名称,这里填duocore

确定后,提示所建立的工程是一个Zynq工程,提示是否添加PS到系统。点确认。

XPS会被启动,可以看到Zynq的配置界面。Diligent公司做好了一套配置方案,从其网站上能下载到配置文件:

import这个配置文件,点“+”找到文件位置后,点OK

可以看到配置后的结果,同时MHS和UCF文件也被修改。其中有颜色标记为使用,没有颜色标记表示没有使用。可以对其修改,这是对应ZedBoard的硬件接口,保持默认就可。

至此,硬件配置结束。关闭XPS,切换到PlanAHead。可以看到duocore.xmp已经加入到工程中。

在硬件配置文件duocore.xmp上右键,选择Create Top HDL,生成顶层HDL文件

可以看到生成的duocor_stub.v文件

最后一步,将硬件信息导入到SDK。File->Export Hardware

为了方便管理,软件workspace放在software目录下。

二、建立软件工程

Export结束后,会自动启动SDK。界面如下。可以看到工程浏览器Project Explorer中已经有一个硬件平台duocore_hw_platform,里面有一系列配置和初始化文件。不要修改这些文件。

新建Xilinx C 工程。

新工程建立向导。这里我们建立最简单的测试工程helloworld。

修改源代码。将工程源文件内容修改,如下

//@超群天晴http://www.cnblogs.com/surpassal/ 1 #include <stdio.h>
2 #include "platform.h"
3
4 void print(char *str);5
6 intmain()7 {8 init_platform();9
10     print("Hello World from Zynq\n\r");11     print("这是Zynq ARM 测试\n\r");12     print("2012年9月8日14:30:48\n\r");13     print("超群天晴\n\r");14 cleanup_platform();15
16     return 0;17 }

至此,工程建立完成

三、编译和下载

给ZedBoard上电,将启动模式设置为Jtag启动,将mini USB下载线接上,并将mini USB to Uart接上。

启动电脑上的超级终端,配置串口和波特率,115200

右键工程hello_world_0,build,编译工程。

右键工程hello_world_0,run->run configuration,打开下载配置界面。双击Xilinx C/C++ ELF,建立新的下载配置。默认即可。

点run,开始下载。等待下载完成,可以看到ZedBoard向超级终端发来的信息

=======================================

在参照本篇博客进行设计时网友遇到的问题及解决方法

Q1:在export to sdk的过程中出现了如下错误
  ERROR: [Common 17-49] Internal Data Exception: xps application failed!

此问题可以参照http://forums.xilinx.com/t5/Design-Planning/XPS-application-ahead/td-p/249608

主要问题应该是1、安装路径非法(有空格或者不可识别字符) 2、工程路径非法(有空格或者不可识别字符) 3、ubuntu中gmake没有被添加到环境变量中

检查并修改配置就可以解决

=======================================

工程下载:project_4.rar

转载于:https://www.cnblogs.com/surpassal/archive/2012/09/08/ZedBoard_Lab1.html

(原创)一步一步学ZedBoard Zynq(一):ZedBoard的第一个工程Helloworld相关推荐

  1. 从零学Java(3)之第一个实例HelloWorld

    作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...

  2. 《Zedboard》第一个工程helloworld

    文章目录 打开VIVADO后 点击创建工程(Create Project) 在进入工程创建引导窗口后,按照官方教程中第一个工程进行如下配置. 需要注意的地方都已经用红色框框圈住. 其中 Project ...

  3. 一步一步学Silverlight 2系列(9):使用控件模板

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67243 ...

  4. 一步一步学Silverlight 2系列(12):数据与通信之WebClient

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67249 ...

  5. list循环赋值_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环

    一.Python for in循环 Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等. for in 循环的一般语法如下: for for in ...

  6. 字典排序 python3_一步一步学Python3(小学生也适用) 第十二篇: 元组tuple类型

    上一篇我们学习了列表(List),这一篇我们将学习元组(Tuple). 一.Python元组(Tuple) python的元组与列表类似,列表使用方括号[ ],元组使用小括号(). 元组的创建跟列表一 ...

  7. visual studio学习python_一步一步学Python3(小学生也适用) 第三篇: Visual Studio Code

    工欲善其事,必先利其器: 器欲尽其用,必先得其法. 前面两章我们分别安装了Python3.8和在三种模式下运行了Python的print()函数程序.在开始我们正式学习Python基础语法时,我们先把 ...

  8. 一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67260 ...

  9. python3循环一直到一个值结束_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环...

    一.Python for in循环 Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等. for in 循环的一般语法如下: for item in ...

  10. 一步一步学Remoting系列文章

    转自:http://www.cnblogs.com/lovecherry/archive/2005/05/24/161437.html (原创)一步一步学Remoting之一:从简单开始 (原创)一步 ...

最新文章

  1. jax-rs的客户端完整实例
  2. mysql数据库隐式表_详解MySQL数据库常见的索引问题:无索引,隐式转换,附实例说明...
  3. 【NLP】6种用于文本分类的开源预训练模型
  4. oracle按时间点还原数据
  5. AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
  6. mysql5.7.11无法启动_macos - mysql 5.7.11 启动报错
  7. JMX 简介 和 实例
  8. 国产IT彪起来了,后浪要将前浪拍死在沙滩上
  9. 华策影视:控股股东、实控人等拟合计减持不超4.01%股份
  10. 正则匹配身份证和邮箱
  11. STM32F4应用笔记(二)利用蜂鸣器播放天空之城
  12. 安全教育思维导图模板分享
  13. Duplicate Finder and Remover for Mac(重复文件查找删除工具)
  14. 求圆外一点做圆切线的切点坐标(算法)
  15. B1072 开学寄语(python)
  16. 文本生成图像这么火,你需要了解这些技术的演变
  17. 如何获取本地时间信息,并把getDay()函数获取到的日期改为日一二三四五六
  18. 最伟大的程序员Richard Stallman主页
  19. oracle中获取年月日时分秒
  20. 30种常用管理工具模型整理分享(上)

热门文章

  1. BG.Hive - part3
  2. SubLime Text 3 的常用插件
  3. CSS属性简写规则详解
  4. 关于异常你还不知道的
  5. LR监控linux系统资源
  6. 数据库并发中的串行化
  7. MyCAT-1.4-RC基准测试
  8. DirectShow基础类库开发参考文档
  9. Eclipse中代码自动提示功能设置
  10. h5带mysql数据库的留言板_【mysql】用PHP写留言板,有回复功能,要写入数据库。...