Code Composer Studio™ (CCStudio) is the integrated development environment for TI's DSPs, microcontrollers and application processors. CCStudio includes a suite of tools used to develop and debug embedded applications. It includes compilers for each of TI's device families, source code editor, project build environment, debugger, profiler, simulators and many other features. CCStudio provides a single user interface taking users through each step of the application development flow. Familiar tools and interfaces allow users to get started faster than ever before and add functionality to their application thanks to sophisticated productivity tools.
As of version 4 CCStudio is based on the Eclipse open source software framework. CCStudio is based on Eclipse because it offers an excellent software framework for development environments a standard framework many embedded software vendors. CCStudio combines the advantages of the Eclipse software framework with advanced embedded debug capabilities from TI resulting in a compelling feature rich development environment for embedded developers.
CCStudio’s integrated debugger has DSP-specific capabilities and advanced breakpoints to simplify development. Conditional or hardware breakpoints are based on full C expressions, local variables or registers. The advanced memory window allows you to inspect each level of memory so that you can debug complex cache coherency issues. CCStudio supports the development of complex systems with multiple processors or cores. Global breakpoints and synchronous operations provide control over multiple processors and cores.
CCStudio’s interactive profiler makes it easy to quickly measure code performance and ensure the efficient use of the DSP target’s resources during debug and development sessions. The profiler allows developers to easily profile all C/C++ functions in their application for instruction cycles or other events such as cache misses/hits, pipeline stalls and branches. Profile ranges can be used to concentrate efforts on high-usage areas of code during optimization, helping developers produce finely-tuned code. Profiling is available for ranges of assembly, C++ or C code in any combination. To increase productivity, all profiling facilities are available throughout the development cycle.
Some tasks such as testing need to run for hours or days without user interaction. To accomplish such a task, the IDE should be able to automate common tasks. CCStudio has a complete scripting environment allowing for the automation of repetitive tasks such as testing and performance benchmarking. A separate scripting console allows you to type commands or to execute scripts within the IDE.
CCStudio has many image analysis and graphic visualization. CCStudio includes the ability to graphically view variables and data on displays which can be automatically refreshed. CCStudio can also look at video data in the native format.
TI has developed C/C++ compilers specifically tuned to maximize DSP usage and performance. TI compilers use a wide range of classical, DSP-oriented, and sophisticated device-specific optimizations that are tuned to DSP architectures. Some of these optimizations include:
Common sub-expression elimination
Auto increment addressing
Cost-based register allocation
TI compilers also perform program level optimizations that evaluate code performance at the application level. With the program level view, the compiler is able to generate code similar to an assembly program developer who has the full system view. This application level view is leveraged by the compiler to make trade-offs that significantly increase DSP performance.
The TI ARM and Microcontroller C/C++ compilers are specifically tuned for code size and control code efficiency. They offer industry leading performance and compatibility.
Simulators provide a way for users to begin development prior to having access to a development board. Simulators also have the benefit of providing enhanced visibility into application performance and behavior. Several simulator variants are available allowing users to trade off cycle accuracy, speed and peripheral simulation, with some simulators being ideally suited to algorithm benchmarking and others for more detailed system simulation.
Hardware Debugging (Emulation)
TI devices include advanced hardware debugging capabilities. These capabilities include:
IEEE 1149.1 (JTAG) and Boundary Scan
Non-intrusive access to registers and memory
Real-time mode which provides for the debugging of code that interacts with interrupts that must not be disabled. Real-time mode allows you to suspend background code at break events while continuing to execute time-critical interrupt service routines.
Multi-core operations such as synchronous run, step, and halt. This includes cross-core triggering, which provides the ability to have one core trigger other cores to halt.
Advanced Event Triggering (AET) which is available on selected devices, allows a user to halt the CPU or trigger other events based on complex events or sequences such as invalid data or program memory accesses. It can non-intrusively measure performance and count system events (for example, cache events).
CCStudio provides Processor Trace on selected devices to help customers find previously “invisible” complex real-time bugs. Trace can detect the really hard to find bugs – race conditions between events, intermittent real-time glitches, crashes from stack overflows, runaway code and false interrupts without stopping the processor. Trace is a completely non-intrusive debug method that relies on a debug unit inside the DSP so it does not interfere or change the application’s real-time behavior. Trace can fine tune code performance and cache optimization of complex switch intensive multi-channel applications. Processor Trace supports the export of program, data, timing and selected processor and system events/interrupts. Processor Trace can be exported either to an XDS560 Trace external JTAG emulator, or on selected devices, to an on chip buffer Embedded Trace Buffer (ETB).
TI offers a variety of JTAG emulators. Emulators enable live debug sessions with the target hardware. Learn more
DSP/BIOS 6.x DSP/BIOS 6.x is an advanced, extensible real-time operating system that supports ARM926, ARM Cortex M3, C674x, C64x+, C672x, and 28x-based devices. DSP/BIOS 6.x offers numerous kernel and debugging enhancements not available in DSP/BIOS 5.x, including faster, more flexible memory management, events, and priority-inheritance mutexes. DSP/BIOS 6.x includes a DSP/BIOS 5.x compatibility layer to support easy migration of application source code. Please visit the DSP/BIOS 6.x product folder for additional information Learn more DSP/BIOS 5.x DSP/BIOS 5.x is a real-time operating system that provides pre-emptive multitasking services for DSP devices. DSP/BIOS 5.x services include ISR dispatching, software interrupts, semaphores, messages, device I/O, memory management, and power management. In addition, DSP/BIOS 5.x also includes debug instrumentation and tooling, including low-overhead print and statistics gathering. Learn more