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

Hyperlink通信问题

专家您好:

       最近在调试hyperlink接口时出现一些问题。

      1.hyperlink配置时有local寄存器和remote寄存器,keystone例程中只配置了local寄存器,请问这两个寄存器同时配置时需要注意什么?我在程序中一端使用了

local寄存器,一端使用remote寄存器。使用local寄存器的intlocal为0,结果中断发给了自己。

      2.dsp之间的hyperlink通信,使用了不同的驱动版本,发现映射地址的配置不一致,两端的窗口大小不一,基地址也不尽相同,导致传输错误。请问hyperlink地

址映射配置时是否需要两端的local或者remote配置一致???

    谢谢!!!

Thomas Yang1:

1,同时配置时,需要注意满足地址映射规则,映射规则请参考Hyperlink 文档。

2.当然需要local或者remote配置一致。如下是1个tx–rx例子:

Show the remote DDR addresses between 0x8000_0000 and 0x8FFF_FFFF (addressed in one consecutive 256MB Segment):

•28 bit offset  – 0x0567 89a0
•Bits 28-31      0x0101 = 5
•txigmask = 11 mask 0x0FFF_FFFF
•Address sent to the receive/remote side = 0x5567_89a0

On the receive side, the address is 0x8000_0000 + 0x0567_89a0 = 0x8567_89a0

(Segment size = 28 -> offset mask = 0x0fff ffff

li yanlong:

回复 Thomas Yang1:

专家您好:

       说一下我根据keystone例程对地址映射的理解。

       两个dspA,B通过Hyperlink通信,想把dspA中0x8a000000中的1024Byte数据传输到dspB的0x8a000000上,配置hyperlink时选定local寄存器段大小为16MB,

共16段(0x40000000:0x1000000:0x50000000),我将其中一段0x40000000的地址映射为0x8a000000,传输时将dspA 0x8a000000的数据memcpy到

0x4000000,这时dspB的0x8a000000上就出现了我想传输的数据。这是在我dspA,dspB的local寄存器配置完全相同的情况下才能正确,若两边的地址映射不一致传

输就会出现错误。但是,我只配置dspA的remote地址映射寄存器,dspB的地址映射完全不配置,数据也能通过以上操作发送过去。

      所以请问您地址映射规则是否还有哪些需要注意的地方,能否只依据发端的需求配置地址映射而不考虑收端的配置一致性???因为我们现在很多程序底层都

封成了库的形式看不到具体的地址映射代码,所以调试时统一两边的地址映射配置比较麻烦,谢谢

Thomas Yang1:

回复 li yanlong:

需要知道接收端的映射关系,否则现在即使调通了,以后地址稍微改一下,有可能就要出问题

赞(0)
未经允许不得转载:TI中文支持网 » Hyperlink通信问题
分享到: 更多 (0)