TI 6657或6678 GPIO16-31中断配置
以TI 6657的GPIO29为例配置步骤如下(6678配置过程类似,只是部分路由配置和事件映射不同):
1. 解锁关键寄存器配置
6657对部分关键寄存器的访问设置了保护机制,当需要改动这些关键寄存器时就需要解锁。解锁代码固定如下:
#define KICK0 (unsigned int *)(0x02620038)
#define KICK1 (unsigned int *)(0x0262003C)
*KICK0 = 0x83E70B13;
*KICK1 = 0x95A4F1E0;
2. 配置复用管脚GPIO使能
6657 GPIO16-31是复用管脚(GPIO 0-15管脚为普通GPIO管脚),想要使用GPIO功能,就需要将其默认功能配置为GPIO功能。这就需要配置PIN_CONTROL_0寄存器:
即需要将GPIO29_SPICS1_MUX位配置为1
*PIN_CONTROL_0 = 0x20000000;
3. 配置bank使能
原GPIO使用指南文档(General Purpose InputOutput (GPIO) for KeyStone Devices User's Guide)中指出,如果要把GPIO作为中断源,则需要配置BINTEN寄存器。如果是普通GPIO管脚(GPIO 0-15),则只需要将此寄存器的第0位配置为1即可。但要使用GPIO1