I am trying to figure out how to properly shutdown DSPLink - specifically if I notice that the DSP is acting funny and I want to pull the rug out from under it and then restart it (while keeping Linux running continuously). This is using the OMAP-L138 running Linux on the ARM.
In this situation, the DSP side would probably not be able to do any shutdown, and it seems as though the ARM has complete control over the DSP, so this shouldn't be a problem.
I have a project based on the MESSAGE example in the 1.65.00.03. I modified the project such that the DSP continuously stuffs messages over to the ARM, and after receiving X messages the ARM decides to shutdown (while the DSP is still trying to send messages).
The shutdown routines are the same as in the MESSAGE example, although the DSP side does not get called. The arm side appears to hang indefinately inside MSGQ_close(). However, if I send a shutdown message to the DSP right before this, and have the DSP call the MESSAGE example's shutdown procedure, everything seems to work fine.
I cannot find anything in the documentation that suggests that MSGQ_close() would ever hang, or that it has any requirements before shutting down that hasn't been met. Any help or pointers to some documentation?
Thanks.