First a bit of history:
Our project started out out implemented in Matlab running on a dual-core PC. All good and well, got the correctness of the algorithms verified and then wished to go to something faster. After attending a couple of TI's workshops we were told about the C6A8168 EVMs and this seemed like a good platform to try our application on. As I write this note, the core of our application is implemented on the C6A8168 DDR3 EVM and appears to be running at least ten times faster than the Matlab version. So far, so good.
The question now becomes one of optimization. There are two threads running on the ARM in Linux. An image comes in and one thread parses it out to tasks on the DSP while a second thread uses the final result to do something more. Eventually the activities of the two threads overlap creating what is essentially a two stage pipeline that hopefully keeps both the ARM and the DSP busy. The key question here is balance. To optimize the throughput you would like the load balanced between the ARM and the DSP. My question to TI and the community is what tools are available to profile the activities of the two processors? This is my experience so far:
1. CCS, version 4.2.4 works well on the DSP, though only partially. As I am forced to develop my code in the EZSDK, via a makefile for the ARM-side and a package.bld file for the DSP-side, I must use non-project debug mode and not everything that would normally be availible is. I can set breakpoints, see memory and variables, and I have managed to get rov to work.
2. I have had no luck at all with CCS 5, either 5.0 or 5.1. A co-worker had a bit more success than did I, my basic problem is not being able to get source look-up to function.
3. For the ARM running Linux, gdb is useless as it crashes when looking at multi-threaded code.
4.. I found the wiki page on performing "Linux aware debug with CCS4": http://processors.wiki.ti.com/index.php/Linux_Aware_Debug_(CCSv4.x), but so far I have not been able to get this to work with the C6A8168 EVMs. CCS4 apparently does not recognize that Linux is running on the EVM. I have asked about this on both the Code Composer and Linux forms but I have yet to receive an answer.
I assume that TI has considered the issues of debugging and profiling code running on their SOC devices. Again I ask, what tools are available and if there is nothing, what may we expect in the future? I really would like something more than simply putting in printfs and timing with my watch.
Lee