不可缺少的资料:官方UG585手册
GPIO简介
1. GPIO: General-Purpose Input/Output Ports. 通用I/O口。
2. MIO就是ARM自己的手脚,完全由自己支配;MIO是PS的IO接口,54个引脚。这些引脚可以用在GPIO/SPI/UART/TIMER/USB/Ethernet等功能上,每个引脚都有多个功能。(类似于MCU的引脚复用)。
EMIO是扩展MIO,功能主要是将MIO上放不下,而又想使用的IO接口连接到PL上,再从PL的引脚连接到芯片外面。EMIO则是FPGA的手脚,如果不做任何处理,ARM说什么对他们根本不起作用
MIO(multiuse I/O)引脚在bank0和bank1上,EMIO(extendable multiuse I/O)在bank2和bank3上。MIO共32+22=54个引脚,EMIO共32+32=64个引脚,引出的引脚都是按bank2到bank3顺序排列的,也就是说53个MIO之后,我们引出的这eg.8个EMIO,分别是54~61号引脚。
GPIO框图:
中断相关寄存器
所有GPIO共享一个中断(#52,bank1),必须在软件上检查INT_MASK和INT_STAT的值判断是哪个GPIO引发了中断。
1. INT_MASK(0xE000A20C):中断屏蔽寄存器,只读,读取该寄存器的值可以显示哪些位被屏蔽和没有屏蔽(即使能)。
2. INT_ENT(0xE000A210–): 中断使能寄存器(4个bank,4个寄存器)。写1,对应的引脚中断功能开启,即使能。
3. INT_DIS(0xE000A214—):屏蔽寄存器(4个bank,4个寄存器)。写1,对应的引脚中断屏蔽。
4. INT_STAT(0xE000A18–):中断状态寄存器(4个bank,4个寄存器)。每一位代表对应的引脚上是否发生中断事件,中断发生时,该引脚的中断标志位为1。如果对该位写1,清除该引脚的中断标志,写0无操作。
5. INT_TYPE(0xE000A21C–):中断类型寄存