参考资料:

  1. 维基百科GPIO

  2. GPIO博客资料(一)

  3. MMIO和PMIO

  知识点:

  ● GPIOGeneral-purpose input/output的缩写,是一个在集成电路上的通用pin,它在运行时作为输入pin或输出pin受控于用户。GPIO没有预定义的目标(输入或输出),默认为未使用。

  ● GPIO的能力有:①GPIO pins可被配置为input或output(片选或时钟产生器);②GPIO pins可被enabled或disabled;③Input值是可读的(比如 high=1,low=0);④Ouput的值是可读写的;⑤Input的值通常被用作IRQs(比如唤醒时间)。GPIO pin的状态可以通过多种接口暴露给软件开发者,比如内存映射外设或特定I/O端口指令等。

  ● GPIO port是一组GPIO pins(比如8个GPIO pins),它们作为一个整体,按组接受控制。

  ● 在嵌入式系统中,对一些结构较简单的外设或电路,通常只要求一位,即开/关两种状态,就可以实现控制。显然,串口和并口在这里都不合适。因此,微控制器芯片一般都会提供一个“通用可编程I/O接口GPIO”。接口一般会有通用控制寄存器和通用数据寄存器,甚至会有上拉寄存器。有无GPIO接口是区别微处理器和微控制器的一个特征。

  ● Memory-mapped I/O(MMIO)和Port-mapped I/O(PMIO)是两种互补的方法,用以执行CPU和外设的I/O操作。

  ● MMIO使用对内存和I/O设备使用相同地址总线,内存和I/O设备寄存器被映射到地址值。因此,当CPU访问一个地址时,它可能是访问某一物理RAM,也可能是I/O设备的内存(寄存器)。因此,CPU访问内存的指令也可以被用来访问设备。I/O设备监视CPU地址总线并响应访问设备的地址,连接数据总线到期望的设备硬件寄存器中。一般情况下,I/O寄存器与内存是统一编址(可临时或永久)。

  ● PMIO使用特定的CPU指定来操作I/O,比如in和out指令。一般,I/O设备拥有独立的地址空间(相对于内存),通常用额外的“I/O”pin或者特定的I/O总线实现。

  ● 设备DMA不会受到CPU-to-device通信方式的影响,因为它绕过了CPU

  ● 硬件中断是CPU和外设交互的另一种方式。它是以外设主动发起的,且每条中断线的每一位都有固定的含义,而上边的两个方法则是以CPU发起的。

  

GPIO相关知识的更多相关文章

  1. 【STM32H7教程】第15章 STM32H7的GPIO基础知识(重要)

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第15章       STM32H7的GPIO基础知识(重要) ...

  2. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  3. 移动WEB像素相关知识

    了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...

  4. listener监听器的相关知识

    从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...

  5. UIViewController相关知识

    title: UIViewController 相关知识date: 2015-12-13 11:50categories: IOS tags: UIViewController 小小程序猿我的博客:h ...

  6. 【转】java NIO 相关知识

    原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...

  7. NSString使用stringWithFormat拼接的相关知识

    NSString使用stringWithFormat拼接的相关知识 保留2位小数点 1 2 3 4 //.2代表小数点后面保留2位(2代表保留的数量) NSString *string = [NSSt ...

  8. iOS网络相关知识总结

    iOS网络相关知识总结 1.关于请求NSURLRequest? 我们经常讲的GET/POST/PUT等请求是指我们要向服务器发出的NSMutableURLRequest的类型; 我们可以设置Reque ...

  9. 电路相关知识--读<<继电器是如何成为CPU的>>

    电路相关知识–读<<继电器是如何成为CPU的>> */--> *///--> *///--> 电路相关知识–读<<继电器是如何成为CPU的> ...

随机推荐

  1. Python的时间模块小结(转自:不懂真人)

    import datetimeprint time.time() #时间戳 print time.localtime(time.time()) #时间元组 print time.strftime('% ...

  2. HDU 1264 Counting Squares(线段树求面积的并)

    Counting Squares Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. maven使用本地jar包

    引入本地jar包 方式一:将本地Jar包安装到本地仓库,再按常规方式引用 mvn install:install-file -Dfile=libs\tools.jar -DgroupId=com.su ...

  4. 20145218&20145240 《信息安全系统设计基础》实验一 开发环境的熟悉

    20145218&20145240 <信息安全系统设计基础>实验一 开发环境的熟悉 课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡 ...

  5. iOS 3D touch 使用技巧

    第一个 在桌面中3d Touch 打开菜单 由于本人纯属代码党,本次实现方法也只使用代码实现 到达到这个效果并不难,只需要在appdelegate中实现以下代码即可 ,当然也有缺点,就是这个app没运 ...

  6. Javacard 解释器怎样在API类库中找到源文件调用的类、方法或者静态域?

    申明:本篇非本人原创,是在阅读各种论文文献之后,对论文文献的一种梳理. 主要参考文献为: ------------------------------------------------------- ...

  7. Kafka - protocol

    http://kafka.apache.org/protocol   具体的协议看原文,   Preliminaries Network Kafka uses a binary protocol ov ...

  8. SSH 登录VPS解决 The directory media/wysiwyg is not writable by server.问题

    权限问题,去到 Magent根目录的Media文件夹,执行下面代码授权. chmod 777 wysiwyg

  9. 磨刀不误砍柴工,使用visual studio之前应该先了解这些...

    注:以下的快捷键在vs2010中测试无误. 众所周知,vs是一个非常强大的开发平台,但是又有多少小伙伴熟悉以下这些快捷键呢? 当然,不知道这些快捷键与开发并没有直接关系,不过,就我而言,以下这些快捷键 ...

  10. centos 下建用户 shell编程

    useradd 用户名 passwd 用户名 cat /etc/passwd  查看用户信息 删除用户 userdel -r   加一个 -r 表示把用户及用户的主目录都删除 su  切换用户 sud ...