版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Xilinx zynq 7010clg400-1 sopc 基于zybo开发板之gpio使用Vivado 2015.4SDK 2015.4魏如峰2016年6月7日 20:10:33版本说明版本作者说明目录Vivado 搭建底层硬件系统4二、sdk使用26三、总结38附录程序38Vivado 搭建底层硬件系统首先使用vivado搭建一个底层硬件系统,具体操作过程如下,用图的方式来说明,直观方便打开vivado 2015.4 如下单击create new project,如下图,单击next继续单击next,如下如,解释一下1:工程的名字2:工程在电脑中的位置,不要中文,不要空格3:打上勾表示在2
2、的位置基础上创建一个子目录,不勾就表示不创建,我一般都是按大类来分,比如米尔的文件夹,zingsk的文件夹,zybo的文件夹,所以我都勾上,我的位置如下图设置好了之后继续单击next,这里是说创建一个什么养的工程一般都是rtl的工程,其他的我还没研究过,直接看官方文档学的,做fpga或者soc,sopc,都是rtl工程。这里也有个可以勾选的地方,勾上的意思是现在不指定源文件,如果不够上,就进入具体设置,有硬件语言的类型,ip的选择,and so on ,可以自己去看看,建议勾选,这些可以在工程中设置的,没有必要提前设置单击next这里面可选的就很多了,从上到下,从左到右简单的说下Part和bo
3、ard分别指的是单个芯片和官方或者安富利的板子下面的这些是指fpga的类和速度和温度,左后的search,是你之前用过的芯片的记录或者直接收你想要的芯片名字,第一次选好,以后直接到search中选就行这个是zybo的板子的芯片型号,或者在board中直接选zybo,继续单击next,一个summary继续单击next,vivado给咱们创建工程创建好了就是这个样子,一个空的工程接下来我们要建立一个空的图片,用来搭建zynq的底层,单击箭头指的地方会出现下图这样这个表示设计的名字和存储的路径,一般都是系统,我习惯于功能加系统的方式命名,比如这次是对gpio进行操作,我会做gpio_sys,然后单
4、击ok 接下来我们来添加zynq的ps,单击,或者单击,再或者crtl + I出现这个图我们在search这输入zynq,选择第一个,单击左键或者回车,都行,下面的那个好像是microblaze,没用过,以后再研究,好像类似于nios(这块我不确定,可以忽略不记)完了是这个样子的双击zynq如图,配置zynq,这里是重点,详细说起来很多,可以参考ug585,我现在也没有全搞明白,也是觉得哪里不对去文档里找,那个文档1800多页,细读完了一定会忘,不如用哪看哪(个人观点) 配置完是这样单击run block automtian完了是这样的,把ddr和fixio引出来了接下来就是本文重点,开始添加
5、gpio的ip双击配置gpio的ip,简单改一下ip的位宽,单击ok然后直接单击如图然后在导航栏,点source右键gpio_sys单击create hdl wapper单击ok上面的那个是手动,后面让eda自动updata,选下面的就好,单击ok在左侧的导航栏中,单击箭头指的位置生成一些ip的约束,单击genrate等一会单击ok,然后编译,等着如果之前忘了保存,这时候会弹出保存的,选save一段漫长的等待之后,分配管教,指定电平水平LMOS33然后这样,先不要综合,没有分配管教在这点这个然后在这选layout然后选ioplane单击之后如下图分配完了,ctrl + s 点ok设置一个名字可
6、以叫pin_location然后综合然后生成bit文件这个bit文件可以生成,也可以不生成,取决于有没有pl,有的话就要生成bit文件这两个过程很长时间!最后好了单击okVivado的工作要完成了,就剩最后两步File export àexport hardware如下图单击ok最后file lanch sdk,vivado的工作就完成了二、sdk使用Filenewbaord suport package默认选项就行单击finish如下图,再单击finish左边多了一个bsp的文件夹在这里有我们想要用的函数和一些参数信息今天这个是gpio的,主要这个两个函数头文件再建一个应用工程然后
7、起名子,短则刚才建立bsp生成的bspNext,选helloword工程单击finish多了一个工程接下来就可以写程序了展开这个gpio的工程打开如图接下来我们先写程序,要讲三个函数1. gpio初始化函数2. gpio数据方向设置函数3. gpio写数据函数有关gpio大概有十二三个函数,在bspàincludeàxgpio.h下,在crtl+左键,进入xgpio.c讲的很详细,不过是英语的,如图这是讲初始化函数的我先说这几个参数什么意思,再说怎么用首先 int Xgpio_Initialize(Gpio*inr,u16 DeviceID);这个函数是有返回值的,返回一个
8、int型,0和1 其中 0:XST_SUCCESS,1:XTS_DEVICE_NOT_FOUND写程序的时候可以直接判断一个变量 比如 if(a = XST_SUCCESS or XTS_DEVICE_NOT_FOUND )或者if(a=0 or 1)前面的指针变量是指向某个gpio的,该gpio在xilinx中被定义为Xgpio类型的变量,后面的device id 表示你要初始化的具体的gpio,这个id在bspàincludeàxparameters.h下,比如在这里可以对这些代码进行更改,如果觉得名字太长的话。具体怎么用这个函数呢,我来仔细说首先要包含两个头文件 xp
9、arameters.h和xgpio.h然后声明一个Xgpio类型的变量最后调用Xgpio_Initialize函数Ex:#include“xparameters.h”#include“xgpio.h”XGpio gpio_led;Xgpio_Initialize(&gpio_led, 0);成功了,我们一步一步往下来接下来我们来设置数据流方向,用到的就是void Xgpio_SetDataDirection(XGpio *inr, channel, direction ),无反回参数的函数简单的解释一下,指针跟前面的一样,channel,就是通道,在做gpio ip配置的时候,不知道有
10、没有注意到gpio有两个通道,所以这个值就是1 or 2 ,分别代表通道1和通道2,最后就是方向,数据是输入(读),还是输出(写),这里也是两个值0:代表输出,1:代表输入Ex:#include“xparameters.h”#include“xgpio.h”XGpio gpio_led;void Xgpio_SetDataDirection(&gpio_led,1,0);/通道1,输出接下来我们就来点亮一个灯,用的是void XGpio_DiscreteWrite(XGpio * InstancePtr, unsigned Channel, u32 Data)函数前两个参数和上面的基本
11、相同,u32 data 就是要写的数据,我们给个000f,全亮#include“xparameters.h”#include“xgpio.h”XGpio gpio_led;void Xgpio_SetDataDirection(&gpio_led,1,0x0a);现象为三、总结这样看来,arm比51单片机要简单,我们只需要明白有什么函数,每个函数是干什么的,就可以进行编程了,这只是个开始,先从gpio开始,慢慢深入学习!附录程序#include <stdio.h>#include "platform.h"#include "xparameter
12、s.h"#include "xgpio.h"/void print(char *str);/不注释掉会有一个定义冲突的错误,不知怎么解决?int main()XGpio gpio_led;int status; init_platform(); status = XGpio_Initialize(&gpio_led, 0); if(status = 0) printf("success rn"); XGpio_SetDataDirection(&gpio_led,1,0);/设置通道1为输出XGpio_DiscreteWrite
13、(&gpio_led, 1, 0x0a); print("Hello Worldnr"); cleanup_platform(); return 0;随便一改就是流水效果#include <stdio.h>#include "platform.h"#include "xparameters.h"#include "xgpio.h"/void print(char *str);int main()XGpio gpio_led;int status;int i,x,y; init_platform(); status = XGpio_Initialize(&gpio_led, 0); if(status = 0) printf("success rn"); XGpio_SetDataDirection(&gpio_led,1,0);/设置通道1为输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自由贸易试验区工作制度
- 街道公共阅报栏工作制度
- 随迁子女教育公平的城乡差异研究课题申报书
- (正式版)DB22∕T 3533-2023 《日光温室水果番茄越冬生产技术规程》
- 医学面试考试题目及答案
- 九师联盟2025-2026学年高三核心模拟卷中(六)化学试卷
- AI赋能金融信贷审核:技术应用与未来趋势
- 2026幼儿园在线学习启蒙课件
- 河北衡水中学2026届高三下学期综合素质评价三语文试卷+答案
- 职业规划品牌创意
- GB/T 12521-2008空气潜水减压技术要求
- 聚合物材料测试方法课件
- em100系列变频器用户手册
- ERP系统-E10-50培训教材-总账课件
- 《骆驼祥子》 完整版课件
- 唐代佛教植物装饰纹样的艺术特色
- 家乡的艺术---芜湖铁画 PPT
- 《重庆市安全生产条例》讲解(2016.03.22)
- 小学生演讲比赛评分表
- 电路理论基础第四版 孙立山 陈希有主编 第4章习习题答案详解
- 创造技法之检核表法
评论
0/150
提交评论