vivado2017.4嵌入式系统设计实现-2在PL内添加外设(使用zedboard开发板)

实现在基本PS系统上添加两个通用I/O IP核。

一、添加两个GPIO实例

1、打开design_1.bd文件

 2、配置zynq

勾选AXI GP0 interface

 选择General -  Enable Clock Resets - 选中FCLK_RESET0_N

 选择FCLK_CLK0

 之后点击ok

3、添加IP核

(1)找到AXI_GPIO并双击,将其添加到设计中

(2)选择AXI_GPIO,可以通过以下设置修改其名称

(3)按照以下配置GPIO

(4)选择自动连线

 重新绘制系统块图

4、继续添加IP核

(1)添加gpio

添加之后修改名称

(2)配置IP核

(3)修改AXI Interconnect

(4)手动连线

同时连接

连接好后重新绘制

(5)为buttons分配地址

选择buttons右键 Assign Address

5、连接外部GPIO

对设计验证

二、设计综合

 1、更新HDL文件

(2)综合

查看自动分配好的引脚

三、生成比特流和导出硬件到SDK

1、生成bit 

2、导出硬件设计

File-Export-Export Hardware

3、启动SDK

File-Launch SDK

四、生成测试程序

1、删除前一个工程所生成的应用工程和板级支持包

2、删除前一个工程生成的硬件平台信息

3、File- new -Board Support Package 

之后如下,点击OK自动编译BSP工程

4、新建应用工程

File-New -Application Project

5、添加.c文件

选择src文件夹,右键  new .c

# include "xparameters.h"
#include "xgpio.h"
int main(void)
{
   XGpio dip,push;
   int psb_check,dip_check;
   xil_printf("--Start of the Program--\r\n");
   
   XGpio_Initialize(&dip,XPAR_SWITCHES_DEVICE_ID);
   XGpio_SetDataDirection(&dip,1,0xffffffff);
   
    XGpio_Initialize(&push,XPAR_BUTTONS_DEVICE_ID);
   XGpio_SetDataDirection(&push,1,0xffffffff);
   
   while(1)
   {
     psb_check=XGpio_DiscreteRead(&push,1);
      xil_printf("Push Buttons Status %x\r\n",psb_check);
      dip_check=XGpio_DiscreteRead(&dip,1);
      xil_printf("DIP Switch Status %x\r\n",dip_check);
      
      sleep(1);
   }

6、bit流文件下的ZYNQ

SDK下  Xilinx- Program FPGA  下载成功之后蓝灯亮起

7、下载应用程序

选择TestApp 右键 Run As -Launch on Hardware (GDB)

发布了141 篇原创文章 · 获赞 194 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/kenjianqi1647/article/details/85538365