Code Composer Studio™ (CCS or 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.
CCStudio version 5 (CCSv5) is based on the Eclipse open source software framework. CCSv5 is based on Eclipse because it offers an excellent software framework for development environments that is used by many embedded software vendors. CCSv5 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 several 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 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.
Image Analysis and Visualization
CCStudio has many image analysis and graphic visualization capabilities. It includes the ability to graphically view variables and data on displays that can be automatically refreshed. CCStudio can also look at images and video data in the native format (YUV, RGB) both in the host PC or loaded in the target board.
TI has developed C/C++ compilers specifically tuned to maximize the processor's usage and performance. TI compilers use a wide range of classical, application-oriented, and sophisticated device-specific optimizations that are tuned to all the supported architectures. Some of these optimizations include:
- Common sub-expression elimination
- Software pipelining
- Strength reduction
- Auto-increment addressing
- Cost-based register allocation
- Instruction predication
- Hardware looping
- Function in-lining
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 the processor 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 you 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 you 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 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) is available on selected devices. AET allows you 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 you 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 processor 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).
Real time operating system support
CCSv5 comes with two versions of TI's real-time operating system:
- DSP/BIOS 5.4x is a real-time operating system that provides pre-emptive multitasking services for DSP devices. Its services include ISR dispatching, software interrupts, semaphores, messages, device I/O, memory management, and power management. In addition, DSP/BIOS 5.x includes debug instrumentation and tooling, including low-overhead print and statistics gathering.
- BIOS 6.x is an advanced, extensible real-time operating system that supports ARM926, ARM Cortex M3, C674x, C64x+, C672x, and 28x-based devices. It offers numerous kernel and debugging enhancements not available in DSP/BIOS 5.x, including faster, more flexible memory management, events, and priority-inheritance mutexes.
- Note: BIOS 6.x includes a DSP/BIOS 5.x compatibility layer to support easy migration of application source code.
Where to get additional information about CCSv4?
- CCSv5 category at wiki: http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v5
- Basic concepts of Eclipse IDE: http://processors.wiki.ti.com/index.php/Eclipse_Concepts
- Selection of movies in Flash that show common actions in CCS: http://processors.wiki.ti.com/index.php/Quick_Tips
- TI E2E Community: http://e2e.ti.com
- Look for Code Composer Studio Forum or Compiler Forum
- TI Support Site: http://support.ti.com