I have a TI81xx EVM board and am running into issues with the MessageQ crashing on the DSP side. I am getting an assert in ListMP_getHead around line 411. It appears to me that is an issue where the Q isnt locking out the other processor properly when accessing the ListMP object. It happens in the SWI and looks to happen when the Q first tries to grab the message from the ListMP object. I have verified that the next and prev pointers put into the queue via the ARM processor are correct so somewhere between the ARM calling TransportShm_put and the SWI on the DSP side the next/prev pointers get messed up. Next gets set to INVALID and prev is 10Mb away. I dont believe this is a memory overrun issue in my software but I am not certain of that.
I should note that I do run for a few iterations before this happens.
I am sending 4 messages from the DSP to the ARM every 500 usec. I also am sending messages from the ARM to the DSP at a similar rate. They are not ping pong messages. They are sent independently.
When debugging this issue trying to determine what is going on I have found that slowing the messaging rate down (debug statements) fixes the assert issue but my software is then running too slow to function properly.
I am currently using Syslink 2.0.0.56 and IPC ...20 (I am at home now so I dont have the exact numbers). They are the versions that shipped with the EVM. I have seen there are newer versions.
Any advice? Thanks
Dan
 
				 
		 
					 
                           
				 
				