messageQ通过ShareRegion实现的,但是在ti提供的srio的例子工程里面通过.cfg文件将messageQ和notify都关闭了,我尝试了一下,在没有使用messageQ的情况下,可以使用srio进行两块dsp(6670, 6678)间的消息通信和数据搬移,但是为了同时使用messageQ进行核间通信,我将.cfg文件里面关闭IPC的messageQ和notify的语句给屏蔽了,然后同时使用messageQ执行核间通信,srio做片间通信和片间数据搬移,在执行了几百次数据搬移后,搬移的数据出现了错误。
请问一下是不是messageQ和srio之间有什么共享的资源,导致同时使用这两个模块发生冲突呢?为什么例子工程里面要将messageQ和notify给关闭呢?
非常期待ti的工程师们解决我的困惑,谢谢。
Andy Yin1:
SRIO主要是用于device间通信,而messageQ和notify主要用在core间通信,在例程中主要用于演示device间通信,所以讲messageQ和notify关闭。按你的测试来看,在进行了几百次测试后才出现问题,所以你所用的工程是支持同时打开的,既然是多次后才出的问题,很有可能是其他原因导致的,建议先分别测试两者看看,然后根据数据出错的现象进行分析,比如从cache等进行分析。