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.

SRIO 数据包的地址问题



请教一下各位专家,DSP的地址是32位,而srio发送的实际数据包的address field 只有29位,那么通信时如何准确的解析出32位地址呢?

我说下个人理解,在rapidio的文档中描述address: Bits [0-28] of byte address [0-31] of the double-word physical addres

是不是因为在实际通信时,数据包是以double-word(8 bytes)为单位,而不是字节为单位进行数据读取的,因此整个地址空间就会减少3位,所以32位

的地址只需要29位。但是按上文的描述,为什么是低29位[0-28],这样物理地址上不是有重叠吗,不应该是高29位吗?

这只是个人理解,还请专家解答。

  • 您采用的是哪款DSP?

    SRIO数据包底层根据协议是256bytes来 进行传输的。

    Bits [0-28] of byte address [0-31] of the double-word physical addres 这句话您是在哪里看到的?能否分享下,帮你一起分析下

  • Thomas ,我用的是C6778,那段话是在rapaidio的互连规范文件中看到的,里面对packet 的格式进行了描述。

  • 这个问题我就自问自答一下吧,最近看了一下rapidio嵌入式互连这本书,第四章举了一个例子,说下目前本人的理解,。

    还是以32位地址为例,这个29位的address是由实际的32地址右移3bit得到的,即是一个双字地址。而数据包中的rdsize和wdptr这两位决定了请求数据的大小和对齐的

    信息,这两位是由地址低三位和数据大小决定的,因此可以最终决定数据的位置。