Hi,
I want to use IPC MessageQ to communicate between the ARM and DSP on an OMAP-L137 EVM board. I have created a simple example with a queue reader and queue writer tasks. If both tasks run on the ARM then everything works fine and the messages get passed across the queue between the tasks. Likewise if I run both tasks on the DSP everything works fine as well.
Now, if I run the reader task on the ARM and the writer on the DSP then nothing happens. The reader task creates the MessageQ and waits for the writer to add messages to the queue. However, the writer task is never able to find the queue and returns a status of -5 (item not found) when it tries to open the queue.
I am assuming that there is some setup or configuration that needs to be done to ensure that both CPUs are sharing the MessageQ data structures using the shared RAM at address 0x80000000 (assuming that's how it is supposed to work on an OMAP setup). I have tried various things like creating a shared region at 0x80000000 to force MessageQ to use that and creating and registering a heap in that common area but nothing seems to make any difference. However, I might be missing the point totally about how IPC works between ARM and DSP on an OMAP.
Any clues or examples as to where I am going wrong would be very helpful.
Thanks.