TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28377D: void GPIO_SetupPinMux(Uint16 pin, Uint16 cpu, Uint16 peripheral)库函数,参数Uint16 peripheral情况疑惑

Part Number:TMS320F28377D

在使用TI提供的库函数void GPIO_SetupPinMux(Uint16 pin, Uint16 cpu, Uint16 peripheral)时,发现其中有一句程序计算基地址的,

如下所示: gpioBaseAddr = (Uint32 *)&GpioCtrlRegs + (pin/32)*GPY_CTRL_OFFSET;。

其中GPY_CTRL_OFFSET为TI提供的宏定义,如下:#define GPY_CTRL_OFFSET (0x40/2),

此处宏定义为什么要除以2啊,而且除以2之后,计算出来的基地址仍然是对的。

例如利用上述基地址C程序计算GPIO32的基地址,咱们根据上述C语言来算上述地址为0x7020,这个地址和手册中描述比较,肯定是错误的。

但在ccs软件编译之后运行,得出的地址为0x7040,是对的。

这种现象很奇怪,为什么上述定义的偏移要除以2呢

麻烦TI工程师能帮忙看下,谢谢

Yale Li:

你用的是哪个例程?

user4921973 说:

例如利用上述基地址C程序计算GPIO32的基地址,咱们根据上述C语言来算上述地址为0x7020,这个地址和手册中描述比较,肯定是错误的。

但在ccs软件编译之后运行,得出的地址为0x7040,是对的。

这款器件GPIO的基地址不在这里吧?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: void GPIO_SetupPinMux(Uint16 pin, Uint16 cpu, Uint16 peripheral)库函数,参数Uint16 peripheral情况疑惑
分享到: 更多 (0)