参考资料:

  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. 在 MVC4 中使用 Uploadify 3.2 - 1

    Uploadify 是 JQuery 一个著名的上传插件,利用 Flash 技术,Uploadify 越过浏览器的限制,控制了整个上传的处理过程,实现了客户端无刷新的文件上传,这样就实现了在客户端的上 ...

  2. Socket请求和Http请求的各自特点、区别及适用场景

    Socket实现服务器与客户端之间的物理连接,并进行数据传输.主要有TCP/UDP两个协议.Socket处于网络协议的传输层.TCP:传输控制协议,面向连接的的协议,稳定可靠.当客户和服务器彼此交换数 ...

  3. LoadRunner11.00安装问题及解决方法

    1.安装提示:“安装程序已确定正在等待重新启动....” 解决方法:打开安装包,找到:\Additional Components\IDE Add-Ins\MS Visual Studio .NET\ ...

  4. 用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  5. iTunes.exe 在win7系统中运行出错解决办法

    重新安装了iTunes打开后就报错,然后直接退出 查windows日志提示错误应用程序名称: iTunes.exe 错误模块名称: KERNELBASE.dll 重新安装iTunes问题依旧,后来在G ...

  6. Apply 与 Call 的用法(简化版)

    Javascript中Apply 与 Call 的用法,这里只作简单的入门说明 function human( name, age ){ this.name = name; this.age = ag ...

  7. Mac OS 电脑播放 iPhone音乐

    http://apple.stackexchange.com/questions/6173/can-i-play-audio-from-my-iphone-on-my-mac Simple, and ...

  8. thinkphp多语言设置

    thinkphp多语言设置有点'高大上',为什么说它有点'高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为'开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为 ...

  9. App_global.asax.pdb: 另一个程序正在使用此文件,进程无法访问。

    页面修改后,浏览报错,信息如下. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0042: 创建调试信息文件“ ...

  10. SQL Server代理警报

    使用SQL Server代理警报的前提条件1.创建操作员,接收消息的用户2.创建警报,满足某种条件触发警报,并作出响应(执行作业或/和通知操作员)3.配置数据库邮件,用于发送消息通知4.SQL Ser ...