标签:
根据DataSheet文档所述,当JTAG_GPIO_MODE寄存器设置为1时,JTAG引脚功能为GPIO,且对应的GPIO序号为GPIO17~GPIO21。
设置JTAG接口为GPIO需要修改GPIOMODE寄存器的JTAG_GPIO_MODE位,GPIOMODE寄存器位于SYSCTL寄存器组内,如下表所述:
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来使用。
标签:
原文地址:http://my.oschina.net/lvsin/blog/384292