RT3052修改JTAG接口为GPIO

   RT3052修改JTAG接口为GPIO_第1张图片

  根据DataSheet文档所述,当JTAG_GPIO_MODE寄存器设置为1时,JTAG引脚功能为GPIO,且对应的GPIO序号为GPIO17~GPIO21

  设置JTAG接口为GPIO需要修改GPIOMODE寄存器的JTAG_GPIO_MODE位,GPIOMODE寄存器位于SYSCTL寄存器组内,如下表所述:

RT3052修改JTAG接口为GPIO_第2张图片

RT3052修改JTAG接口为GPIO_第3张图片

  GPIOMODE寄存器偏移位置为0x60,所以GPIOMODE寄存器实际地址为0x1000 0060。根据上表描述,JTAG_GPIO_MODE位于GPIOMODE寄存器的6bit位置。

  SDK在系统内核驱动source/linux-2.6.36.x/drivers/char/ralink_gpio.h中有如下定义:

/*                                                                               
 * Address of RALINK_ Registers                                                  
 */                                                                              
#define RALINK_SYSCTL_ADDR              RALINK_SYSCTL_BASE      // system control
#define RALINK_REG_GPIOMODE             (RALINK_SYSCTL_ADDR + 0x60)

  所以可以直接使用宏定义来修改JTAG_GPIO_MODE寄存器,

  在source/linux-2.6.36.x/drivers/char/ralink_gpio.c中,找到int __init ralink_gpio_init(void)函数,在函数中加入如下语句:

gpiomode |= (1 << 6);

就可以实现把JTAG引脚配置为GPIO来使用。

本文所述代码来源于官方SDK代码)


你可能感兴趣的:(RT3052修改JTAG接口为GPIO)