我使用的是论坛上提供的测试工程,loopback测试没有问题。
我现在用自己做的两块卡,两块卡上的dsp都是C6678,hyperlink之间用vpx连接。
目前的情况是两个dsp之间的hyperlink可以link起来,但是发送的数据不正确。
我估计是映射有问题。在这里有几个问题,我不是很确定。请专家解答
1. hyperlink 的地址空间0x40000000是不是不可读啊?初始化完成之后,我查看内存0x40000000,总是Trouble Reading Memory Block at 0x40000000 on Page 0 of Length 0x2a0:
(Error -1202 @ 0x40000000)?
2.我的本地端dsp和远程端dsp在初始化部分的内存映射都是采用例程中提供的方式,也就是将hyperlink 的地址空间分成了16个段,每个段映射到不同的远端地址,
要正确传送数据,是不是本地端dsp和远程端dsp的映射应该不同? 还是没有什么影响,只要发送的数据能正确写到相应的段中就可以?
3.privID 是什么一个感念?是代表不同的核吗? 他和hyperLink_cfg.address_map.rx_priv_id_map[0] = 13 有什么关联? 这个值为什么要设成13 ?
4.段0x48000000 应该是映射到远端dsp内存的0x88000000 ? 是吧? 如果映射正确,我在本地端dsp的hyperlink 地址空间0x48000000里写数据,
是不是应该可以在远端dsp的ddr 内存 0x88000000 中看到?
谢谢,希望专家们能尽快解答一下。
Wenguo Li1:
求回复啊
Brighton Feng:
1, HyperLink 本地地址0x40000000只有在映射到有效的远端地址后才能访问。
2,是否相同没有什么影响,只要映射到地址有效就可以了。
3,每个能执行访问的Master都有一个对应的ID,就是PrivID。每一个被访问的存储模块,如LL2,SL2都可以对不同的PrivID设置不同的访问权限。
以DSP0核0通过HyperLink访问DSP1 SL2为例,这个访问过程实际上是两个Master接力访问的过程:
a)DSP核0访问本地HyperLink地址空间(从0x40000000),这个访问中DSP0核0的PrivID是0;
b)DSP1的HyperLink访问SL2,这个访问中,HyperLink的PrivID是可配的,相应的代码就是hyperLink_cfg.address_map.rx_priv_id_map[0] = 13
4,对