AXI_GPIO的零零碎碎

int * test()    //这个函数返回的是地址,所以要加* 
{
  int  a= 10;
  return  &a;
}


int main()
{
   int *p = test();    //函数返回的是地址,所以用指针变量接收
   *p = 20;    //这样写是错误的,因为函数调用后内存空间就被释放了。a是一个局部变量,所以这样的赋值错误。
}

驱动一个LED的过程:

  1. 配置GPIO
ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);    
XGpioPs_CfgInitialize(&Gpio, ConfigPtr,ConfigPtr->BaseAddr); 

2.对GPIO口进行使能和方向的设置

XGpioPs_SetDirectionPin(&Gpio, EMIO0_LED, 1);               // EMIO 的LED
XGpioPs_SetOutputEnablePin(&Gpio, EMIO0_LED, 1);

中断是如何中断的?
先介绍一下GPIO:
GPIO一共四个Bank,前两个可以连接到MIO,(54个MIO)后两个可以连接到EMIO。(64个EMIO)

中断的类型:1.边沿(极性有上升和下降);2.电平(极性有正负);
极性:1.正;2.负;
ANY :同时支持
在这里插入图片描述
中断检测逻辑,写入中断状态,寄存在state中;另外,INT_STAT有写1清除中断的功能。同时INT_STAT也有读取当前寄存器状态的功能。
在这里插入图片描述
与门的作用:
MASK:寄存器的MIO哪一个被屏蔽;DIS和EN 是使能是否。
一个是检测到引脚的中断;另一个是要引脚的中断没有被屏蔽掉。
在这里插入图片描述
MIO和EMIO 是PS和PL的外部;是IO外设GPIO通向外界的接口。
在这里插入图片描述
GIC是连接IO外设,只有IO外设可以触发中断。

PS这边的中断源可以有哪些?UG585
在这里插入图片描述

AXI_GPIO:
在这里插入图片描述
AXI GPIO IP 核为 AXI 接口提供了一个通用的输入/输出接口。AXI GPIO 是一个软核( Soft IP),即 ZYNQ 芯片在出厂时并不存在这样的一个硬件电路, 而是由用户通过配置 PL 端的逻辑资源来实现的一个功能模块。 而 PS 端的 GPIO 是一个硬核( Hard IP) ,它是一个生产时在硅片中实现的功能电路。

AXI GPIO 可以配置成单通道或者双通道, 每个通道的位宽可以单独设置。 另外通过打开或者关闭三态缓冲器, AXI GPIO 的端口还可以被动态地配置成输入或者输出接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值