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

IPC中DSP能作为MessageQ的writer吗?

平台:OMAPL138LCDK

SDK:06_03_00_106

IPC中的ex02_messageq例程中,arm端作为writer调用messageq_open()。

我尝试利用dsp作为writer调用messageq_open(),但是arm端无法接收消息。

请问在MessageQ中,dsp只能充当reader吗?

Nancy Wang:

是可以的,messageq模块特征中有说明。
Writers and readers can be relocated to another processor with no runtime code changes.
software-dl.ti.com/…/index_Foundational_Components.html

,

user6446474:

我根据例程代码做了修改。

arm端和dsp端各自create了MessageQ_handle,然后由dsp端调用open函数(),然后arm端调用get函数,可是arm端一直在等待。

dsp端代码

arm端代码

arm端输出“wating …”后,就一直在等待。

arm端运行linux,dsp端运行sys/bios

,

Nancy Wang:

已经帮您咨询相关工程师,收到回复后会立即给您回复。

,

user6446474:

非常感谢。

,

Nancy Wang:

请参考以下帖子的回复。
e2e.ti.com/…/3663125

,

user6446474:

看了帖子。里面提到
"If the host runs on the DSP core, then a slave message queue needs to be created on the ARM core before DSP core can open it. If the slave message queue creation and opening are out of order, you'll definitely run into problems."

确实有可能存在,ARM端尚未创建slave queue,DSP端已经在调用open函数这种情况。

可是这种情况下,DSP端应该一直会处在do-while的循环里继续调用open函数,而且ARM端随后也创建了slave queue。

按这个来说,DSP端最后应该是可以open成功的。

,

user6446474:

一开始希望做一个数据处理的测试:ARM端向DSP端发一条带有数据的消息,如消息中自定义一个变量a=1,由DSP改为2后发回ARM端输出。发现数值并未改变,可能是内存地址访问问题。

于是希望由DSP端再open一个队列,由DSP端保存处理好数据后,再发给ARM端。

,

user6446474:

帖子启发了思路。

我对代码进行了一些调整,把DSP端调用open函数的位置放在了流程较后的位置,保证DSP端调用open时,ARM端已经创建了相应handle。

测试后,DSP可以向ARM端发送消息。

谢谢。

,

Nancy Wang:

感谢分享!

赞(0)
未经允许不得转载:TI中文支持网 » IPC中DSP能作为MessageQ的writer吗?
分享到: 更多 (0)