ZYNQ随笔——AXI_GPIO裸机设计

1. 硬件平台搭建
在Block Design里添加ZYNQ7 Processing System和AXI_GPIO模块,双击AXI_GPIO设置为输出,驱动外部IO器件(如LED)。搭建好的系统结构如下图所示:

2. 软件SDK设计
SDK软件设计可以参考官方设计文档,主要API函数有,

  • int XGpio_Initialize(XGpio * InstancePtr,u16 DeviceId)
  • void XGpio_SetDataDirection(XGpio * InstancePtr,unsigned Channel,u32 DirectionMask)
  • void XGpio_DiscreteWrite(XGpio * InstancePtr,unsigned Channel,u32 Data)
  • u32 XGpio_DiscreteRead(XGpio * InstancePtr,unsigned Channel)
  • void XGpio_DiscreteClear(XGpio * InstancePtr,unsigned Channel,u32 Mask)

具体代码如下,

int main(void)
{
    int Status;
    volatile int Delay;

    /* Initialize the GPIO driver */
    Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);
    if (Status != XST_SUCCESS) {
        xil_printf("Gpio Initialization Failed\r\n");
        return XST_FAILURE;
    }

    /* Set the direction for all signals as inputs except the LED output */
    XGpio_SetDataDirection(&Gpio, LED_CHANNEL, ~LED);

    xil_printf("Gpio Example\r\n");

    /* Loop forever blinking the LED */

    while (1) {
        /* Set the LED to High */
        XGpio_DiscreteWrite(&Gpio, LED_CHANNEL, LED);

        /* Wait a small amount of time so the LED is visible */
        for (Delay = 0; Delay < LED_DELAY; Delay++);

        /* Clear the LED bit */
        XGpio_DiscreteClear(&Gpio, LED_CHANNEL, LED);

        /* Wait a small amount of time so the LED is visible */
        for (Delay = 0; Delay < LED_DELAY; Delay++);
    }

    xil_printf("Successfully ran Gpio Example\r\n");
    return XST_SUCCESS;
}

3. 编译运行
下载FPGA代码,以Hardware运行软件后,在终端打印了GPIO Example,外部LED不停闪烁。

原文地址:https://blog.51cto.com/shugenyin/2427320

时间: 2024-08-02 00:14:05

ZYNQ随笔——AXI_GPIO裸机设计的相关文章

ZYNQ随笔——PL端按键中断之裸机设计

1. ZYNQ中断简述ZYNQ中断类型:普通中断请求(IRQ, Interrupt Request)和快速中断请求(FIQ, Fast Interrupt Request).ZYNQ中断源:软件中断(SGI, Software Generated Interrupt).CPU私有设备中断(PPI, Private Peripheral Interrupt)和共享设备中断(SPI, Shared Peripheral Interrupt).而PL端的按键中断属于共享设备中断.2. 硬件平台搭建在B

博客园客户端UAP开发随笔 -- App UI设计的三大纪律八项注意

前言 每一个页面都是这个App的门面,尤其是主页面,看上去干净整洁清爽宜人容易操作,那么你的App就成功了一半.这也反映出了你这个开发团队的基本审美素质和设计理念.如果你不是一个团队,而是一个个人开发者,建议你好好读读以下心得体会,相信会帮助你做出好看而实用的App.用一堆拥有丑陋UI的App充斥Window Store,不是我们高大上的程序员所为,被其他手机开发平台的开发者们耻笑. 三大纪律: 1)不乱用颜色.一个页面内不要超过3种颜色 2)不乱用大图片当背景.你是想让用户看你的背景图片呢,还

ZYNQ随笔——简述

1. 硬核处理器与软核处理器在芯片内的硅片上通过划分一定的区域来实现处理器功能称为硬核处理器.在一些对处理器性能要求不高的场合,通过使用FPGA内部资源搭建一个处理器功能称为软核处理器.如果采用硬核处理器,整个芯片的成本会较高,且灵活性相对较差,但性能较高.如果采用软核处理器,成本较低,同时灵活性较高,但性能较低.2. Zynq-7000 SOC功能结构Zynq-7000由PS(Processing System)和PL(Programmable Logic)组成,内部结构图如下图所示. 应用处

ZYNQ随笔——AXI4总线

1. AXI4通道读地址通道(Read address channel, AR)写地址通道(Write address channel, AW)读数据通道(Read data channel, R)写数据通道(Write data channel, W)写响应通道(Write response channel, B)每个通道由一个信号构成,并且使用双向的VALID和READY握手信号机制.2. AXI4信号定义3. AXI4读写波形AXI4突发写波形,如下图所示.AXI4读突发波形,如下图所示.

如何将RTOS添加到ZYNQ SoC设计中

在寻求获得来自处理系统内的赛灵思Zynq?-7000全可编程SoC的最大利益,操作系统将让你更不是一个简单的裸机解决方案.任何开发ZYNQ SoC设计有大量的操作系统可供选择,并根据最终应用程序,你可以选择一个实时版本.一个RTOS是您最好的选择,如果你是在工业,军事,航空航天或在响应时间和可靠的性能要求,以防止生命或伤亡的,或者实现严格的绩效目标等具有挑战性的环境中使用的SoC ZYNQ. 为了得到一个感觉如何最好地实时操作系统添加到我们的ZYNQ SoC系统中,我们将使用最流行的实时操作系统

架构/设计

随笔分类 -架构/设计 软件架构设计模式简述 2014-03-25 20:33 by 破狼, 2465 阅读, 收藏, 编辑 在软件开发设计中我们经常会面对业务分析,提取领域问题,从而实现软件架构设计.关于 软件架构设计Martin Fowler在2004出版的<企业应用架构模式>中 概括了四种方式的架构模式.它们分别为事务性脚本,表驱动模式,活动记录模式,领域驱动设计.前两者事务性脚本,表驱动模式作为 面向过程方式架构设计,后两者为面向对象架构设计.它们适合于不同的业务场景,它们也各有长短.

2016/9/18结对编程之需求分析与原型设计。

结对学生:031402418 汪培侨 031402618 林宇晨 使用工具:Axure Rp 7.0 PDF链接:百度云 (超过10M没法上传只能百度云了) https://pan.baidu.com/s/1c282qoK 一.需求分析(采用NABCD模型) N (Need) 年级负责人: 需要向同学收集各种自己选择志愿的信息,收集麻烦 需要通过手动汇总信息,并提交给相应的分配负责人,汇总麻烦 分配负责人: 根据年级负责人收集的信息,进行相应规则的算法排序,分配好相应的老师,有时候需要一定人工分

电子邮件系统帐户集成

.NET ERP系统 电子邮件系统帐户集成 为保证ERP系统的信息流准确快速的传递,需要给系统设计一个消息盒子机制.当系统中发生业务操作后,需要提醒下一个环节的操作人员,以保证ERP信息流快速准确传递.比如生产任务单(工作单,加工单,制单)过帐完成后,需要通知仓库准备材料供车间领料生产.消息盒子的界面大致如下所示: 消息盒子包含业务通知(Messages)和工作流审批(Workflow).业务通知比如采购人员下达采购订单PO后,需要通知仓库人员准备收货.工作流审批是以审批为基础的单据流程控制.

xapp1167与TRD14.4 关系

 xapp1167与TRD14.4 关系 xapp1167与TRD14.4 都是学习zynq的最佳参考设计.都是基于ZC702,而不是zedboard的,如果要用zedboard那么必须修改硬件配置,因为在702板子中HDMI用的是软核,而zedboard中用的芯片,另外还有网卡等等都不一样配置也不一样. 1:xapp1167   :http://xgoogle.xilinx.com/search?getfields=*&numgm=5&filter=0&proxystyles