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

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位吗?

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

Thomas Yang1:

您采用的是哪款DSP?

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

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

user3457176:

回复 Thomas Yang1:

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

user3457176:

回复 user3457176:

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

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

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

 

赞(0)
未经允许不得转载:TI中文支持网 » SRIO 数据包的地址问题
分享到: 更多 (0)