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

K1_STK_V1.1,SRIO例程,C6678平台,LSU配置问题。

例程配置为SRIO_DIGITAL_LOOPBACK测试模式。

上图八个printf是我自己加上去的,为了看gpSRIO_regs->LSU_CMD[lsuNum].RIO_LSU_REG1,gpSRIO_regs->LSU_CMD[lsuNum].RIO_LSU_REG2 被赋值前后的变化。断点打在KeyStone_SRIO_LSU_transfer()函数的末尾。下图是执行结果。在执行赋值语句后,这两个寄存器被赋值后为什么还是0x0?

Nancy Wang:

可以直接在ccs expression窗口看LSU_cmd值的变化,在持续刷新的模式下看。

haolong liu:

回复 Nancy Wang:

谢谢回复。

上图是console窗口截图。from 0x10802200 to 0x1080a200,    这条信息里0x10802200应该和RIO_LSU_REG2的值一样;0x1080a200应该和RIO_LSU_REG1的值一样。我用expression观察REG2和REG1的值(持续刷新),暂定运行后发现REG2和REG1的值和console窗口的源地址目标地址不一样,为什么?

我理解的是RIO_LSU_REG2里存储是源地址,RIO_LSU_REG1里存储的是目标地址,不知道是否理解有误?

Nancy Wang:

回复 haolong liu:

你看tranfer->localdspaddress的地址是对的。你看到的lsu_cmd的值是多少?可能看到的是加上了uiByteCount之后的值。

haolong liu:

回复 Nancy Wang:

感谢回答!

看到的确实是加上了uiByteCount之后的值。请问这是为什么?

另外,关于上个问题,单步调试,执行完如下图的赋值语句后,通过expressions窗口查看,发现RIO_LSU_REG1并没有被赋值为transfer->rioAddressLSB_ConfigOffset,RIO_LSU_REG2也没有被赋值为transfer->localDspAddress。但是在执行完后面的REG5赋值语句后,REG1和REG2发生变化,被正确赋值。请问为什么?

赞(0)
未经允许不得转载:TI中文支持网 » K1_STK_V1.1,SRIO例程,C6678平台,LSU配置问题。
分享到: 更多 (0)