One of the embedded systems market segments I follow closely are the tools emerging to support development of applications requiring DSP compute engines in multiprocessor and multiplatform applications.
So I have always kept an eye on what Texas Instruments does with its Code Composer Studio Integrated Development Environment. The company long ago figured out something that most silicon vendors are reluctant to admit to themselves: no matter how much effort they put into making their processors faster and lower power than their competitors, embedded systems developers often make their choice on the basis of the tools.
No matter how good the hardware, developers, and software development managers, in particular, will always to where the tools go. And they won't go there if the tools don't support it.
So, when I had a chance to take the new Platinum edition of CodeComposer out for a spin — the metaphorical equivalent of a student driver trying out a new car in the empty company parking lot on a weekend — I have to admit I was impressed.
I was particularly interested in the many little “extras” the company has incorporated: features such as rewind, connect/disconnect, a new component manager, and a set of tuning tools that works across all of TI's DSP platforms.
“Rewind and Connect/Disconnect both focus on eliminating downtime, said Lori Vidra, eXpressDSP tools product manager, TI. “Waiting for a restart sequence when developers are deep into a debug session can feel like an eternity. Rewind and Connect/Disconnect features get rid of that stress.”
Both of these features will certainly make my life much more peaceful on those occasions I am working in a corporate cubicle somewhere within 100 feet of a DSP developer. I will no longer have to put up with the gnashing of teeth in frustration and the occasional scream of pain when the developer is unable to go back to an earlier step in the process or when the system freezes up and code is lost.
Vidra said the just introduced CCStudio Platinum Edition provides a single IDE that supports multiple TI platforms in one installation and at the same cost as a single platform, saving DSP original equipment manufacturers (OEMs) significant time and expense in the design of multiprocessor, multi-platform applications.
Supporting all TI platforms, including the TMS320C6000 DSP, TMS320C5000 DSP,TMS320C2000 DSP and RISC/DSP OMAP platforms, the high level of multi-platform support in the IDE, said Vidra, means a reduced investment for developers, who now have all the tools they need available in a single package deal.
The IDE can be installed at one time for all platforms, and its integration simplifies tool maintenance and updates. Developers also benefit from parallel debug capabilities for interprocessor visualization, as well as simplified migration of software from one TI DSP platform to another under a common IDE, she said.
Rewind comes to DSP development
The rewind function, the newest feature in CCStudio Platinum Edition, is designed to eliminate the lost time during the debug stage of the development process by eliminating the tedious process of hunting for and fixing software bugs.
Rewind, said Vidra, eliminates the need to back to the beginning and retrace program steps in order to find problems in source code. It allows the developer to move both forward and backward within their source code. For a student “driver” like myself, this feature was enormously useful, because during the learning process I was always making mistakes. On some other tools, when this happened and I was faced with going back to the beginning, my first inclination was to forget about it and throw the CDs onto the stack of other programs I had looked at and didn't have the time or patience to continue.
Like similar capabilities in tools for RISC engines, this first time implementation of rewind for DSP, she said, allows developers to stop at any point using a single back-step keystroke, thus effectively eliminating theneed to reload and step through a program from the beginning to findcode errors.
“Rewind keeps a complete history of execution made by normal step and run commands,” she said. “Then it permits the developer to view the program state and run code at earlier points in the program.”
As far as I could determine, this feature has no associated overhead, so it doesn't slow down the simulation as it records execution of the application. Operating on information stored during normal routines, Rewind allows developers to quickly return to the problem area of the program and fix its operation, taking an enormous amount of frustration and time out of the debug process.
From what developers tell me, and from my own experience, the connect/disconnect feature that TI has added to CCStudio, should be as useful as the rewind feature, since it allows a developer to disconnect from the hardware target and restore the previous debug state when connecting again.
“When hardware and software are being debugged simultaneously,” said Vidra, “it is not uncommon for the software application to lose connection with the target board.
This feature allows connection and disconnection with the target dynamically, which means that a developer can replace a suspect board with a known good board during the debug session, eliminating the hardware as a potential source of errors and narrowing the focus to the software application.
“From the feedback we have gotten from developers using the beta of the IDE, ” said Vidra, “Connect/Disconnect eliminates tens of minutes from repeatedreset and restart sequence each time a failure is encountered.”
More bells and whistles
All though I have not used the CCStudio with any regularity and am not familiar with how things were done in earlier versions, the Component Manager function the TI people have added to the IDE seems to me to be an elegantly simple and easy to use way to deal with the constant upgrades and bug fixes one faces with tools of this sort.
With Component Manager, said Vidra, a developer can upgrade the IDE to take advantage of new features and bug fixes while locking down on the specific compiler and DSP/BIOS software kernel foundation versions for the life of theprogram. “It also lets the developer easily install and evaluate a new compiler or DSP/BIOS kernel version before committing to them in the project,” she said.
On the Platinum version, there is a set of tuning tools that work across the entire array of TI DSP offerings, including tools that proactively review program code, track potential areas for improvement and offer suggestions to help programmers optimize system performance and memory usage. It also supports compiler updates across all TI platforms help improve cycle counts and code size.
A little touch that developers should also appreciate is that in this version of the IDE, the defacto industry standard code editor — CodeWright Editor — has been integrated into the CSStudio IDE for writing and debugging DSP code.