We are using SYS/BIOS 6.35.04.50 and SYSLINK 2.21.01.15 on an OMAPL138 dual core platform. Following various examples from TI's MCSDK and other sources, we have written applications to run on the DSP and ARM.
We use Notify as a synchronisation mechanism and MessageQ to pass data both ways between the ARM and DSP. On the DSP we have a SYS/BIOS task dedicated to handling the MessageQ - it sits blocking on a MessageQ_get call with timeout set to BIOS_WAIT_FOREVER and processes any messages which arrive. When we are done with the message acquired from MessageQ_get, we call MessageQ_free (as stipulated). The messages are allocated dynamically on the ARM side using MessageQ_alloc and sent to the DSP using MessageQ_put.
The issue I have come across is that the MessageQ_free call appears to hang permanently on the DSP. I have checked for double-frees and similar issues but can see nothing obvious. The code has previously worked which suggests this may be a marginal effect.
What might cause MessageQ_free to hang in this way? I have looked through the source for SYSLINK and it appears to call Memory_free, but unfortunately this function is redirected into SYS/BIOS and xdc to the point where I cannot find the actual called code.
Any help would be appreciated.