本实验利用前面介绍的定时器中断控制实验,完成通用GPIO 输入输出口控制实验, Plus1 7021系统提供9组(P0到P8),每组8个,共计72个通用GPIO 通用输入输出口,每个GPIO都可单独配置为输入或输出:
对应的32位寄存器如下:
寄存器 | 功能描述 |
gpio_first[0] | bit[7:0] : P0组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) bit[15:8] : P1组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) bit[23:16] :P2组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) bit[31:24] :P3组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) |
gpio_first[1] | bit[7:0] : P4组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) bit[15:8] : P5组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) bit[23:16] :P6组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) bit[31:24] :P7组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能;(缺省为0) |
gpio_first[2] | bit[7:0] : P8组GPIO控制,对应bit为1,开启GPIO功能;对应bit为0,关闭GPIO功能; |
gpio_oe[0] | bit[7:0] : P0组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[15:8] : P1组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[23:16] : P0组mask ; 对应bit为1,P0组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P1组mask ; 对应bit为1,P0组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_oe[1] | bit[7:0] : P2组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[15:8] : P3组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[23:16] : P2组mask ; 对应bit为1,P2组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P3组mask ; 对应bit为1,P3组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_oe[2] | bit[7:0] : P4组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[15:8] : P5组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[23:16] : P4组mask ; 对应bit为1,P4组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P5组mask ; 对应bit为1,P5组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_oe[3] | bit[7:0] : P6组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[15:8] : P7组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[23:16] : P6组mask ; 对应bit为1,P4组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P7组mask ; 对应bit为1,P5组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_oe[4] | bit[7:0] : P8组输入输出控制,对应bit为1,输出功能;对应bit为0,输入功能;(缺省为0) bit[15:8] : 保留 bit[23:16] : P8组mask ; 对应bit为1,P8组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : 保留 |
gpio_out[0] | bit[7:0] : P0组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[15:8] : P1组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[23:16] : P0组mask ; 对应bit为1,P0组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P1组mask ; 对应bit为1,P0组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_out[1] | bit[7:0] : P2组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[15:8] : P3组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[23:16] : P2组mask ; 对应bit为1,P2组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P3组mask ; 对应bit为1,P3组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_out[2] | bit[7:0] : P4组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[15:8] : P5组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[23:16] : P4组mask ; 对应bit为1,P4组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P5组mask ; 对应bit为1,P5组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_out[3] | bit[7:0] : P6组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[15:8] : P7组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[23:16] : P6组mask ; 对应bit为1,P6组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : P7组mask ; 对应bit为1,P7组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) |
gpio_out[4] | bit[7:0] : P8组输出控制,对应bit为1,输出1;对应bit为0,输出0; bit[15:8] : 保留; bit[23:16] : P8组mask ; 对应bit为1,P8组对应bit可写;对应bit为0,P0组对应bit禁写;(缺省为0) bit[31:24] : 保留 |
安装目录\SP7021\workspace\sp7021\include 文件夹下的regmap_q628.h定义了相关寄存器,如下图红色
...
unsigned int reserved_21[3]; // 101.22
unsignedint gpio_first[4]; // 101.25
unsigned int reserved_29[3]; // 101.29
...
unsigned int gpio_ctl_sel[8];
unsignedint gpio_oe[8];
unsignedint gpio_out[8];
unsignedint gpio_in[6];
unsigned int reserved[2];
...