首页 > 其他分享 >Zynq PS之MIO、EMIO调试

Zynq PS之MIO、EMIO调试

时间:2023-01-05 19:00:37浏览次数:41  
标签:PS 1.1 EMIO MIO52 Zynq XGpioPs Gpio 78

原理框图

本文用于点亮PS MIO52和PL L15接的LED灯。

Zynq PS之MIO、EMIO调试_ZYNQ

1.1.1 Vivado中添加&配置Zynq UltraScale+ MPSoc IP

Zynq PS之MIO、EMIO调试_LED_02

1.1.1.1 UART设置(仅用于调试,非必需)

Zynq PS之MIO、EMIO调试_ZYNQ_03

1.1.1.2 MIO、EMIO设置

Zynq PS之MIO、EMIO调试_LED_04

EMIO=1表示只选用1个EMIO,它的编号是78,通过pinL14去点D2灯。

MIO52用于点D1灯。

1.1.1.3 DDR配置

硬件设计中选择的DDR4型号是MT40A2G8VA-062E IT,DDR配置如下图:

Zynq PS之MIO、EMIO调试_ZYNQ_05

Other Options设置如下:


1.1.2 执行Generate Output Products

右键bd,选择Generate the Output Products。

Zynq PS之MIO、EMIO调试_LED_06

Generate the Output Products就是vivado用IP的形式(.v)实现bd框图。

1.1.3 执行Create HDL Wrapper

右键bd,选择Create HDL Wrapper。

Zynq PS之MIO、EMIO调试_灯_07

Create a HDL wrapper就是产生1个*_wrapper.v的顶层文件。

1.1.4 执行File -> Export ->Export Hardware

因为MIO、EMIO涉及到PS、PL的操作,因此需要执行综合和实现,并约束引脚,如下图:

Zynq PS之MIO、EMIO调试_MIO_08

依次执行Generate Bitstream,Export Hardware(需勾选Include bitstream)即可。

Zynq PS之MIO、EMIO调试_LED_09

1.1.5 执行Launch SDK

打开SDK后的Project Explorer界面如下:

Zynq PS之MIO、EMIO调试_EMIO_10

1.1.6 新建FSBL工程

File->New->Application Project,界面如下:

Zynq PS之MIO、EMIO调试_ZYNQ_11

Next后选择ZYNQ MP FSBL,见下图。

Zynq PS之MIO、EMIO调试_EMIO_12

点击Finish,Project Explorer内容更新为:

Zynq PS之MIO、EMIO调试_EMIO_13

hello_app_prj和hello_app_prj_bsp为新增的文件夹。

1.1.7 新建Hello World工程

File->New->Application Project,界面如下:

Zynq PS之MIO、EMIO调试_EMIO_14

Next后选择Hello World,见下图:

Zynq PS之MIO、EMIO调试_LED_15

点击Finish,Project Explorer内容更新为:

Zynq PS之MIO、EMIO调试_LED_16

hello_world和hello_world_bsp为新增的文件夹。

打开helloworld.c内容修改为:

Zynq PS之MIO、EMIO调试_MIO_17

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "sleep.h"
#include "xgpiops.h"

//ps_led
#define MIO52_LED 53
//pl_led
#define EMIO_78 78

#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID


int main()
{
XGpioPs_Config *ConfigPtr;
XGpioPs Gpio;
init_platform();
//根据器件id,查找器件的配置信息,
ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);
//初始化GPIO驱动
XGpioPs_CfgInitialize(&Gpio, ConfigPtr,ConfigPtr->BaseAddr);
//把gpio的方向设置为输出(0:输入,1:输出)
XGpioPs_SetDirectionPin(&Gpio, MIO52_LED, 1);
XGpioPs_SetDirectionPin(&Gpio, EMIO_78, 1);
//设置输出使能(0:关闭/1:打开)
XGpioPs_SetOutputEnablePin(&Gpio, MIO52_LED, 1);
XGpioPs_SetOutputEnablePin(&Gpio, EMIO_78, 1);
while(1){
print("Hello World\n\r");
// 写数据到GPIO的输出引脚:点亮
XGpioPs_WritePin(&Gpio, MIO52_LED, 0x0);
XGpioPs_WritePin(&Gpio, EMIO_78, 0x0);
sleep(1);
// 写数据到GPIO的输出引脚:点亮
XGpioPs_WritePin(&Gpio, MIO52_LED, 0x1);
XGpioPs_WritePin(&Gpio, EMIO_78, 0x1);
sleep(1);
}
cleanup_platform();
return 0;
}

接上串口线,执行debug或run,Run Configuration设置如下:

Zynq PS之MIO、EMIO调试_MIO_18

因为有bit,所以需要勾选Program FPGA,测试发现不勾选PL Powerup时,EMIO的点灯不起作用。

代码经过上板实测通过。

Zynq PS之MIO、EMIO调试_LED_19

标签:PS,1.1,EMIO,MIO52,Zynq,XGpioPs,Gpio,78
From: https://blog.51cto.com/u_15927439/5991758

相关文章

  • burpsuite使用教程(二)
    之前介绍过burpsuite的各个模块​今天具体的来讲解一下proxy这个模块​Proxy——是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,......
  • gopsutil使用样例
    ==目的==增加对服务器使用情况的监控。 ==引入==gogetgithub.com/shirou/gopsutilgogetgithub.com/yusufpapurcu/wmi ==代码==packagemainimport(......
  • 2.树莓派使用frp内网穿透http,https
    原材料准备(在服务端和客户端均执行一次)下载压缩包wgethttps://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz执行以下命令,解压f......
  • Android开发环境搭建全程演示(jdk+eclipse+android sdk)
    全程演示android开发环境的搭建过程,无需配置环境变量。所有软件都是写该文章时最新版本一相关下载(1)javaJDK下载:进入该网页:​​http://java.sun.com/javase/download......
  • 进程管理ps的基本操作
    1.显示系统执行的进程显示系统执行的进程:ps[option]常用的选项有:1.-a显示当前终端的所有进程信息[xiaocer@localhost~]$ps-aPIDTTYTIMECMD13941......
  • 深度好文 | YOLOv5+DeepSORT多目标跟踪深入解读与测试(含源码)
    导读本文主要介绍如何使用Yolo-V5+DeepSORT实现多目标检测与跟踪。(公众号:OpenCV与AI深度学习)背景介绍   目标跟踪是一种利用检测到对象的空间和时间特征在整个视频......
  • DevOps的前世今生
    导语​​DevOps​​诞生已经13年了,你理解他吗?为什么相伴了13年,你仍然对他不甚了了呢?你真的以为​​DevOps​​是一个筐,什么东西都可以往里装吗?你以为DevOps落地就是找一个JI......
  • Zynq PS之UART调试
    在创建应用工程时,选择HelloWorld模板即可,以XCZU21DR开发。硬件原理图如下:Vivado中添加&配置IP添加ZynqUltraScale+MPSoc IP。UART设置DDR配置硬件设计中选择的DDR4型号......
  • PS保留渐变进行换色
    如果要改变图片的颜色肯定这很简单。但是如何保持图片的颜色的光泽渐变的同时又改变颜色呢?如图:把蓝色换成绿色,如果用选区填充来换颜色必然会把光泽覆盖,而且这个选区也非常难......
  • dremio ManagedStoragePlugin 简单说明
    ManagedStoragePlugin从字面意思可以看出就是托管存储插件,从目前官方的设计来说就是将自己开发的存储扩展,包装为dremio可以管理的插件(统一模型以及统一处理)ManagedSto......