Hello,
I do not have any prior DSP design expierence so I apologize for my ignorance. I am attempting to debug an issue with a design that uses a TMS320C6747 executing at 300MHz. I believe the code was orginally written for a C6701 series DSP and then ported to work on the TMS320C6747. I have been led to believe that it worked properly on the C6701 design.
Basically, the design implements a 10 input by 10 output audio mixer. Each output can be mixed with any number of inputs, therefore the maximum mixing potential would be 100 channels (i.e. each output mixed with every input). The input streams are running at 44.1kbps and are generated by TVL320AIC3106 CODECs. The design also includes external SRAM operating a 133MHz mainly for heap storage space. A UART interface running at 115kbps is used to configure the channel mixing assignments. I believe DMAs are used to receive and transmit the audio streams.
The original issue that was described to me was that after enabling approximately 68 channels, the UART communications is lost and the output channels audio hangs. I confirmed this to be the case, and it is very repeateable. There are basically 3 user defined tasks: 1) one handles the UART communications, 2) one handles all the mixing, 3) and one blinks a heart-beat LED.
Upon attempting to debug with CCS, one of the first things I found was that the UART's task was exceeding its allocated stack space, so I increased its size which seem to resolve that issue, but it still stopped communicating after enabling 68 channels. Now, I notice that sometimes the mixing task is being blocked by some type of semaphore. What I think is somewhat strange is that the mixer task is assigned the highest priority of 15 (the UART is assigned 14 and the heart-beat is assigned 1) yet the heart-beat LED appears to continue to toggle normally. As a quick test I tried swapping the priorities of the UART task and mixing task, but I could not communicate with the UART at all in this case. I also tried to speed up the processor from 300MHz to 372MHz via the AISgen, but again it still failed at the 68th channel (I'm not sure that the clock rate got change because I suspect that the code actually includes statements to set the clock rate which may have overwritten the AISgen settings). Also, I assume if there was some type of bandwith issue, the heart-beat task would also be stalled as it is the lowest priority task, yet it seems to toggle periodically at the same rate.
One other thing I tried was to use a Release build instead of a Debug build which is what was being used. When I tried to execute the Release build from the on board serial Flash device, it did not function and the heart-beat LED never toggled. I was able to load it via CCS and it failed on the 68th channel in the same was as the Debug build. This again seems to indicate that it is NOT a bandwith issue. Also, since the failure is so repeatable upon creating the 68th channel is an indication to me that it is more likely to be some type of memory issue.
Any debugging tips and/or insight would be greatly appreciated.

