前面介绍了使用sysfs
操作GPIO,这儿介绍另一种方式:mmap
。mmap可以将物理设备/dev/mem
映射到内存,通过读写内存的方式操作GPIO寄存器,使用起来速度比sysfs
更快。
测试环境: 飞凌OKMX8MM-C开发板
使用寄存器操作GPIO时,需要设置的寄存器有:
- Pad Mux Register,PAD复用寄存器
- Pad Control Register,PAD控制寄存器
- GDIR,GPIO 方向寄存器
- DR,数据寄存器
下面以GPIO5_IO00
为例,先从手册中找到各寄存器的地址,并介绍基本配置。
Pad Mux Register
Pad Mux Register是端口复用寄存器,GPIO5_IO00
复用的端口为SAI3_TXC
,对应的寄存器为IOMUXC_SW_MUX_CTL_PAD_SAI3_TXC
,可以看到地址为0x303301DC
,占用四个字节。文档内容如下图所示: