一、概述
GPlO ( General Purpose I/0 Ports )意思为通用输入/输出端口, 通俗地说, 就是一些引脚。在芯片手册中I/O端口一般是分组的,比如有的芯片分为 A~J 共 9 组: GPA 、 GPB 、...GPJ
二、怎么用
一个引脚可以用于输入、 输出、中断或其他特殊功能,那么首先肯定有寄存器来选择配置引脚使用哪种功能。
1)当引脚被配置输出时, 写此寄存器相应位可令此引脚输出高电平或低电平(有些SoC的输出引脚状态也是可以读的);
2)当引脚被配置输入时, 读此寄存器可知相应引脚的电平状态是高还是低;
3)当引脚被配置中断时,soc若收到外部中断时,就会给CPU发一个中断信号,cpu会处理中断了
例如:当外部器件如网卡芯片和soc通信中收到数据了,那怎么通知SOC自己收到数据了呢?原来网卡芯片中断引脚是接到soc芯片的某一引脚中,网卡可驱动中断引脚为高电平(原来为低电平),soc芯片的该引脚此时时被设置为中断模式(soc的中断引脚必须满足二个条件:1、有输入功能功能,这样就能读寄存器,确定引脚是高电平还是低电平;2、可以中断CPU。),当检测到高电平时便可知道有数据了,此时就可以用中断了。
当然也可以通过轮询的方式来处理,此时将SoC引脚设为输入模式,不断查询来自网卡的数据,当检测到高电平时便可知道有数据了。但是这种不断查询的方式又很浪费时间
3)对于其他特殊功能, 则有另外的寄存器来控制它。