my mcsdk version is 3.0.4.18
Hi
I've started doing some simple processing on my evm/6638 board. I have a problem with using multicore API. Based on the ipc sample i've done this
DSP side
create recv queue (on each)
while(1)
{
MessageQ_get(...)
msg->debug_field = MultiProc_self();
MessageQ_put(reply_queue_id...)
}
ARM side
create recv queue
open 8 send queues
for (i=1 to 8)
{
MessageQ_put(...)
MessageQ_get(...,MessageQ_FOREVER)
}
This works OK. But when I tried,
for (i=1 to 8)
MessageQ_put(...)
for (i=1 to 8)
MessageQ_get(...,MessageQ_FOREVER)
the second call to MessageQ_get hangs.
According to the debug field, I see that in the first scenario everything is OK - the messages are returned from each core. I also tried using the MessageQ_count API, but it always return 0 (on the ARM side).
I understand that MessageQ uses HW semaphores inside to protect against write-overlaps so that's supposed to be OK. I also figured maybe since all DSP writers arite at the same time, the queue is not signalled again, but using MessageQ_get didnt help me either. Am I missing something (basic)?
thanks
JN