该笔记主要记录HPS端的GPIO如何控制,包括控制LED和Key

1.GPIO地址映射

Peripheral Base Address 0xf000_0000 64M

2.HPS外设

(1)GPIO Controller 
    支持数字消抖
    可配置中断模式
    支持上限71个IO 引脚,14个输入引脚
    由三个控制器控制,GPIO1 GPIO2 GPIO3
GPIO0 control GPIO[28:0]
GPIO1 control GPIO[57:29]
GPIO2 control GPIO[70:58]& GPI[13:0]

3.GPIO 寄存器组

    gpio_swporta_ddr:配置IO引脚方向
    gpio_swporta_dr:写数据到输出引脚上
    gpio_ext_porta:从输入端口读取数据

4.HPS_Led && Key

    LED和key连接到GPIO控制器上,我们可以通过控制GPIOcontroller实现操作HPS_Led & HPS_Key
    实现方式是通过软件API
    1)open:用来打开内存映射设备驱动   
    2)mmap:映射物理地址到物理用户空间
    3)alt_read_word:从指定寄存器读取一个值
    4)alt_write_word:写入一个值到指定寄存器
    5)munmap:清除内存映射
    6)close:关闭设备驱动
    7)alt_setbits_word:设定指定寄存器的指定位为1
    8)alt_clrbits_word: 设定指定寄存器的指定位为0 

5.对应到GPIO1寄存器:

    1)用open函数打开内存映射设备驱动
    2)mmap函数得到对应的虚拟基地址
    3)虚拟基地址+GPIO1控制器各寄存器的偏移地址,即得到GPIO1控制器各寄存器的地址入口 
    4)使用open mmap得出虚拟基地址
    if ((fd = open("d/dev/mem",(O_RDWR | O_SYNC))) == -1)
{
printf("ERROR:could not open \"dev/mem\"...\n");
retrun(1);
}
virtual_base = mmap (NULL,HW_REGS_SPAN,(PROT_READ | PROT_WRITE),MAP_SHARD,fd,HW_REGS_BASE);
        5)虚拟地址+GPIO寄存器偏移地址得到地址入口
        例:GPIO1方向寄存器gpio_swporta_ddr
        (virtual_base + ((uint32_t) ALT_GPIO1_SWPROTA_DDR_ADDR & (uint32_t) (HW_REGS_MASK)));
        6)通过software API结合bit_mask 操作HPS_LED HPS_Key

HPS端的GPIO如何控制的更多相关文章

  1. 通过HPS控制FPGA端的GPIO

    该笔记主要记录HPS端如何通过AXI Bridge控制FPGA端口的GPIO,主要是如何操作FPGA侧的Led 1.AXI Bridge         AXIB主要包括H2FB.F2HB.LWH2F ...

  2. HPS端如何通过AXI Bridge控制FPGA端口的GPIO

    该笔记主要记录HPS端如何通过AXI Bridge控制FPGA端口的GPIO,主要是如何操作FPGA侧的Led 1.AXI Bridge         AXIB主要包括H2FB.F2HB.LWH2F ...

  3. android gpio口控制

    android gpio口控制  GPIO口控制方式是在jni层控制的方式实现高低电平输出,类似linux的控制句柄方式,在linux系统下将每个设备看作一个文件,android系统是基于linux内 ...

  4. OpenWRT GPIO人口控制 WLED

    Linux根据系统GPIO系统架构简介 关于这个GPIO我一直认为非常非常长的时间easy.但.当你需要给一个特定的系统,参与这些GPIO什么时候.你会找到.不对,实例,mt7620n. GPIO#7 ...

  5. 全志R58平台的GPIO引脚控制

    全志R58平台的GPIO引脚控制 2017/8/18 15:50 版本:V1.0 开发板:SC5806(全志R58平台) SDK:android4.4.4 本文以GPIO引脚PD24为例,在开发板的背 ...

  6. Win10 IoT C#开发 3 - GPIO Pin 控制发光二极管

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一篇文 ...

  7. CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)

    目录 1.前期预备知识 1.1 新大陆Zigbee模块按键电路图 1.2 CC2530相关寄存器 1.3 CC2530中断走向图 1.4 使用C语言为51单片机编写中断程序 1.5 *函数指针 2. ...

  8. 【HLSDK系列】服务端实体 edict_t 和 控制类

    我们来了解一下引擎是怎么管理实体的吧!我们这里就说说服务端的实体(edict_t) 服务端用 edict_t 这个结构体来保存一个实体,可以说一个 edict_t 就是一个 服务端实体,下文简称实体. ...

  9. linux下对/sys/class/gpio中的gpio的控制 (转)

        在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的.其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/clas ...

随机推荐

  1. 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!

    本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...

  2. 检测当前IE浏览器的版本

    检测当前IE浏览器的版本(注意:在非IE浏览器中是看不到效果的) 使用示例如下:低于IE8弹窗提示 <!--[if lte IE 8]><script>alert('您当前浏览 ...

  3. JavaWeb02-Servlet

    Servlet概述 生命周期方法: l  void init(ServletConfig):出生之后(1次): l  void service(ServletRequest request, Serv ...

  4. (六)OpenStack---M版---双节点搭建---Neutron安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建网络服务数据库 2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限 3.创 ...

  5. 关于JAVA,特点,历史,编译式的语言&解释式的语言,什么是java?JDK?DOS?一次编译到处运行原理。

    1.java语言的特点: 简单的:面向对象的:跨平台(操作系统)的(一次编译,到处运行):高性能的: 2.类名的首字母大写,方法小写: 3.历史: java2(即java),为什么加个2呢?1998年 ...

  6. Block-wise 2D kernel PCA/LDA for face recognition-笔记

    In the present work, we propose a framework for kernel-based 2D feature extraction algorithms tailor ...

  7. NSAttributedString可以强制转换为NSMutableAttributedString类型吗?下面这代码有什么问题 为什么报错

    -(void)insetEmotion:(EmotionModel*)emotionModel{ if(emotionModel.code){ /** 在TextView中插入图片首选要知道光标的位置 ...

  8. 比特宇宙-TCP/IP的诞生

    前情回顾: 我是一个explorer的线程 我是一个杀毒软件线程 我是一个IE浏览器线程 比特宇宙创世不久,宇宙中开始出现文明. 文明不断碰撞.融合.进化,逐渐分化为几大派系: 施行Unix体制的帝国 ...

  9. Unity3D 卡通描边之控制线条粗细

    一.前言 之前我发表过一篇Unity3D 卡通渲染 基于退化四边形的实时描边,最重要的实时描边已经实现了,本文接下来要完善一下它. 在之前的实时描边中,使用了几何着色器中的LineStream来进行绘 ...

  10. 【立即报名】解码AI大杀器:华为云GPU+Tensorflow 容器实战

    导语: 人工智能的火热,带来了一波学习TensorFlow深度学习框架的热潮.聊深度学习免不了要用GPU,但目前GPU费用较高,对于个人学习者和创业公司来讲的话,按需配置的云GPU服务器是一个不错的选 ...