(原创)一步一步学ZedBoard Zynq(一):ZedBoard的第一个工程Helloworld
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相关推荐
- 从零学Java(3)之第一个实例HelloWorld
作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...
- 《Zedboard》第一个工程helloworld
文章目录 打开VIVADO后 点击创建工程(Create Project) 在进入工程创建引导窗口后,按照官方教程中第一个工程进行如下配置. 需要注意的地方都已经用红色框框圈住. 其中 Project ...
- 一步一步学Silverlight 2系列(9):使用控件模板
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67243 ...
- 一步一步学Silverlight 2系列(12):数据与通信之WebClient
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67249 ...
- list循环赋值_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环
一.Python for in循环 Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等. for in 循环的一般语法如下: for for in ...
- 字典排序 python3_一步一步学Python3(小学生也适用) 第十二篇: 元组tuple类型
上一篇我们学习了列表(List),这一篇我们将学习元组(Tuple). 一.Python元组(Tuple) python的元组与列表类似,列表使用方括号[ ],元组使用小括号(). 元组的创建跟列表一 ...
- visual studio学习python_一步一步学Python3(小学生也适用) 第三篇: Visual Studio Code
工欲善其事,必先利其器: 器欲尽其用,必先得其法. 前面两章我们分别安装了Python3.8和在三种模式下运行了Python的print()函数程序.在开始我们正式学习Python基础语法时,我们先把 ...
- 一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/67260 ...
- python3循环一直到一个值结束_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环...
一.Python for in循环 Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等. for in 循环的一般语法如下: for item in ...
- 一步一步学Remoting系列文章
转自:http://www.cnblogs.com/lovecherry/archive/2005/05/24/161437.html (原创)一步一步学Remoting之一:从简单开始 (原创)一步 ...
最新文章
- jax-rs的客户端完整实例
- mysql数据库隐式表_详解MySQL数据库常见的索引问题:无索引,隐式转换,附实例说明...
- 【NLP】6种用于文本分类的开源预训练模型
- oracle按时间点还原数据
- AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
- mysql5.7.11无法启动_macos - mysql 5.7.11 启动报错
- JMX 简介 和 实例
- 国产IT彪起来了,后浪要将前浪拍死在沙滩上
- 华策影视:控股股东、实控人等拟合计减持不超4.01%股份
- 正则匹配身份证和邮箱
- STM32F4应用笔记(二)利用蜂鸣器播放天空之城
- 安全教育思维导图模板分享
- Duplicate Finder and Remover for Mac(重复文件查找删除工具)
- 求圆外一点做圆切线的切点坐标(算法)
- B1072 开学寄语(python)
- 文本生成图像这么火,你需要了解这些技术的演变
- 如何获取本地时间信息,并把getDay()函数获取到的日期改为日一二三四五六
- 最伟大的程序员Richard Stallman主页
- oracle中获取年月日时分秒
- 30种常用管理工具模型整理分享(上)