I am debugging a problem on a C6747 DSP where one of my 2 tasks is blocking. I have used the kernel/object viewer to detect this, but the "blocked on" field is blank, so I'm not sure where to look next. Here's a little background on the issue and how I've gotten here.
My application is set up such that I have my main task (TSK_echo) that does 2 things: mixes 10 possible audio inputs to 10 possible outputs & polls UART1 for data
I have a second, lower priority task (TSK_Uart) that processes the data from UART1 that is queued up by the main task.
Original problem exhibited itself when RS232 communication over UART1 "died" when more than 68 audio mixes were made. Investigation showed that as mixes (aka. routes) were added, less and less time was spent in the TSK_Uart. Once we hit 69 routes, the task appeared to stop running. A reset restores communication.
The first problem discovered was a stack overflow in TSK_Uart. We had a stack size of 1K, so I doubled it to 2K and no longer see the overflow as we seem to hit about 1500 bytes on our stack max in my testing. Now I am still seeing a failure with 69 routes, but it looks different. The TSK_echo task shows as "blocked" with nothing in the "blocked on" field and the TSK_Uart task is therefore running all the time.
Can someone please help point me at where to look next?
Thanks!
~Tina