本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制。
一、GPIO概览
Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output),即GPIO0~GPIO11。每组 GPIO 提供 8 个可编程的输入输出管脚(GPIO11 只有 4个) 。
每个管脚可以配置为输入或者输出。这些管脚用于生成特定应用的输出信号或采集特定应用的输入信号。作为输入管脚时,GPIO 可作为中断源;作为输出管脚时,每个 GPIO 都可以独立地清 0 或置 1。
对于引脚复用的说明,海思在 SDK 包中提供了一个 excel 表说明,该表十分重要,包括了引脚复用地址及对应比特的说明。由于内容较多,可进行搜索定位。
GPIO 寄存器对应基地址如下:
| GPIO控制器 | 基地址
| - | - |
| GPIO11 | 0x120D_B000
| GPIO10 | 0x120D_A000
| GPIO9 | 0x120D_9000
| GPIO8 | 0x120D_8000
| GPIO7 | 0x120D_7000
| GPIO6 | 0x120D_6000
| GPIO5 | 0x120D_5000
| GPIO4 | 0x120D_4000
| GPIO3 | 0x120D_3000
| GPIO2 | 0x120D_2000
| GPIO1 | 0x120D_1000
| GPIO0 | 0x120D_0000
从表格中看出,寄存器的基地址分布是十分有规律的。不同的寄存器,其操作的偏移量均相同。如 GPIO_DIR 偏