This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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?

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

  • 谢谢回复。

    上图是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里存储的是目标地址,不知道是否理解有误?

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

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

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

x 出现错误。请重试或与管理员联系。