This page provides links to User's Guides and other documentation resources for the TI Code Composer Studio integrated development environment (IDE).
User's Guides and General References
CCS Product Page | CCS Product Page on TI website |
CCS User's Guide | The CCS User's Guide explains how to use the CCS IDE and the TI Code Generation Tools (Compiler/Linker/Assembler) |
Compiler User's Guides | TI Compiler User's Guides explains how to use the TI Code Generation Tools |
Key Changes | Key changes introduced in CCS releases |
Linux Host Support | This page contains information regarding Code Composer Studio running on Linux. It includes installation instructions, device support, and debug probe support |
macOS Host Support | This page contains information regarding Code Composer Studio running on macOS. It includes installation instructions, device support, and debug probe support |
CCS with Virtual Machines | Using Code Composer Studio (CCS) with Virtual Machines: VMware, VirtualBox and Parallels |
Feature Overviews, Application Notes and How-to Articles
General and IDE
The resources below relate to the Code Composer Studio Eclipse IDE and other general topics.
Eclipse Concepts | Information on various concepts that are part of the Eclipse/CCS environment |
Getting Started View | The Getting Started View in CCS |
Resource Explorer | Resource Explorer helps you find all the latest examples, libraries, demo applications, datasheets, and more for your chosen platform. This article describes the interface in CCS 9.3 and higher. |
Resource Explorer (until CCS 9.2.0) | Resource Explorer helps you find all the latest examples, libraries, demo applications, datasheets, and more for your chosen platform. This article describes the interface until CCS 9.2. |
Resource Explorer Classic | This article describes the older Resource Explorer (offline) included in CCS 6.1.3 and earlier |
App Center | The Code Composer Studio App Center provides access to additional tools and utilities to help users get up and running faster on their chosen platform |
Tasks View | Tasks view in CCS allows you to create and keep track of 'To-Do' (or Tasks) list |
MatLab with CCS | This document describes the level of CCS support for various MatLab releases |
Product Installation and Selection | This article describes the process for installing and selecting RTSC products and SDKs in CCS |
Updating | Code Composer Studio update manager allows you to check for new versions of Code Composer Studio, compiler releases, new device support as well as updates to other Eclipse plug-in packages that you have installed |
Using a Simplelink SDK from a Git repository | This document describes how to set up CCS to use a SimpleLink SDK that is in a local Git repository |
How to Configure CCS for a Multi user Host | This application note describes a method to perform post-setup actions that allow Code Composer Studio to be used in a multi-user host |
Automating Testing with Code Composer Studio | This application note provides an example of how to automate testing of your CCS environment |
Customizing CCS Editor and GUI | CCS allows for customization of several settings related to the editor and GUI |
Command Line Installation | This article describes how to install CCS from a command line interface |
Using CCS 3.3 with Windows 10 | This page contains details about running CCSv3.x on more current Windows systems (Windows 10) |
Creating an Offline CCS Update Package | This page contains details on how to create offline CCS update packages to update CCS on machines without internet access |
C671x Software Development Environment | This document describes the software development environment for the TMS320C671x family of of digital signal processors |
Projects and Build
The resources below relate to CCS project and build topics. This includes resources that apply to the compiler tools that come with CCS.
C++14 Support for ARM, MSP and C6000 Compilers: Overview | The ARM, MSP430 and C6000 compilers support the C++14 version of the C++ standard (ISO/IEC 14882:2014) |
C++14 Support for ARM and MSP Compilers: constexpr | This article serves to introduce the 'constexpr' specifier introduced in C++11 |
C++14 Support for ARM and MSP Compilers: lambda expressions | This article serves to introduce lambda expressions introduced in C++14 |
Optimizer Assistant | Optimizer Assistant is a static code analysis tool that scans source code and provides advice on how the code could be changed to improve performance |
Ultra-Low Power (ULP) Advisor | ULP Advisor is a static code analysis tool that scans source code against a thorough set of low-power coding rules to help squeeze every last nano amp out of your application |
Memory Allocation View | The Memory Allocation View provides a graphical representation of how much memory is consumed by your application |
Stack Usage View | The Stack Usage View provides a static view of stack usage for your application |
Software for Functional Safety: SafeTI Compiler Qualification Kit | The SafeTI Compiler Qualification Kits were developed as part of TI's SafeTI design packages to assist customers in their efforts to qualify their use of TI C/C++ Compilers to help meet industry functional safety standards |
Files in CCS Projects | This article describes the common files found in a CCS project |
Updating the Compiler | This article describes how to update the compiler version inside CCS. This article also describes how to obtain older version of the compiler |
Compiler Installation and Selection | This article describes the process for installing and selecting specific compiler tools in CCS |
Create and Build Projects Using Command Line | This article describes how to create, import and build projects using command line |
Portable Projects | This topic describes in detail how to modify your project to facilitate having multiple users working on the same project at the same time |
ProjectSpecs in CCS | This article describes how to create and use ProjectSpecs in CCS |
Source Control with CCS | Working with CCS and source control |
Using Git with CCS | Using Eclipse Git integration in CCS |
Using a Simplelink SDK from a Git repository | This article describes how to set up CCS to use a SimpleLink SDK that is in a local Git repository |
Scripting Console | The Scripting Console is a tool in Code Composer Studio which allows users to specify commands to the IDE through a console |
Hex utility in CCS | This article describes the Hex utility integrated into CCS |
Introducing LTS and STS Compiler Releases | This article describes the new Long Term Support (LTS) and Short Term Support (STS) compiler release model |
Compiler Version Numbers and What They Mean | Explains the meaning of the compiler version numbers |
Linker Command File Primer | This article explains the code which commonly appears in most linker command files |
Byte Accesses with the C28x CPU | This article describes how to handle byte accesses with the 28x CPU |
C2000 Migration from COFF to EABI | This document describes changes that should be made when migrating existing C28x COFF ABI libraries and applications to use the C28x EABI |
C28x Code Generation Tips and Tricks | A listing of tips and tricks related to the Code Generation Tools for C28x based devices |
C28x Compiler Error and Warning Messages | This article includes a list of the error, warning and remark messages generated as well as a list of common errors and their resolution |
C28x Compiler - Understanding Linking | This page describes the compiler section names and how to link them in your project. This article has been written with the C28x flash device in mind |
C28x Context Save and Restore | This article describes the automatic context save/restore for the C28x CPU. This also applies to devices with the FPU and VCU extensions |
C28x Pipeline Conflicts | This article discuss how pipeline conflicts arise and provides some suggested guidelines for avoiding them |
C2000 Performance Tips and Tricks | This article describes how to enable the compiler to generate code that takes advantage of the C2000 architecture’s powerful performance features |
Profiling on C28x Targets | This article describes how to enable profiling data collection for C28x, and suggests solutions for profiling without using the Code Composer's data collection |
Data blocking in the C2000 MCU compiler explained | This article explains data blocking in the C2000 MCU compiler |
CLA signed integer comparison workaround | This article explains how the C2000 MCU compiler implements a workaround for a hardware flaw with the CLA that affects integer comparisons |
Making a Copy of Simplelink SDK Projects | This article describes how to make a copy of a Simplelink SDK example project |
Perform cyclic redundancy checking using linker-generated CRC tables | This article shows how to perform a CRC check at run-time using linker generated CRC tables |
A Brief History of TI Object File Formats | This article brings together the basics about object file formats used by TI code generation tools |
Debug versus Optimization Tradeoff | This article discusses the trade-off between the ease of debugging and the effectiveness of compiler optimization |
Tips for using printf | The printf family of functions are standard C functions used to output text. Basic information about the printf family is widely available online and in introductory C textbooks. However, users of the TI toolchain need to be aware of certain implementation-specific details |
Sharing projects | This article discusses how to package and share CCS projects with another user |
Best Practices for Creating and Sharing projects | This article discusses best practices for creating and Sharing CCS projects |
Multiple SimpleLink SDK Versions in one Workspace | This article shows how you can have different projects use different versions of the SDK |
How to combine SimpleLink SDK application and kernel projects | How to combine SimpleLink SDK application and kernel projects |
Changing the SimpleLink SDK version used by a Project | This document describes how to update the version of the SimpleLink SDK that a Code Composer Studio project is using |
Project Import and Build Errors in CCS | This guide describes some of the more common errors and warnings encountered when building your CCS project |
"Error: Import failed for project 'abc' because its compiler definition is not available" | Error: Import failed for project 'abc' because its compiler definition is not available |
Working with SysConfig Projects | This article describes the build process for SysConfig projects and shows how to combine SimpleLink application project and BIOS kernel project into a single project. |
Dwarf 4 in TI Compilers | This article describes the 4th revision of the DWARF debugging format. |
Find Source of Code Size Increase | This article describes how to find the functions which have the largest code size increase between the builds. |
Finding Compiler Options in CCS | This article describes tips on how to find compiler option settings in your CCS project. |
TI Compiler Presentations | A collection of presentations on TI compilers. Topics include general tips and optimizing your code. |
Linker Special Section Types | This article describes special linker section types such as NOLOAD, DSECT, and COPY. |
tiobj2bin Failed | This article describes how to troubleshoot tiobj2bin errors. |
Using CCS Variables in Source Code | This article shows how you can reference CCS build variables within symbol definitions in C source code and within project options. |
Handling the Change in ltoa | Suppose you see the compiler diagnostic: too few arguments in function call. Suppose further the related source line is a call to the function ltoa. This article describes how to handle this diagnostic. |
Floating Point Optimization | Discusses how to optimize floating point calculations |
Pragmas You Can Understand | Learn how to wrap a pragma in a macro for better readability, portability, and maintenance |
An Introduction to Binary Files | Describes the simple binary files typically used to program flash, or as an input to boot loaders, etc. |
Compiler Verification and Validation | Describes the test suites and validation infrastructure used to verify and validate TI compiler releases |
Importing CCSv3.3 Project to CCS Eclipse | This page contains details about import a CCS 3.3 pjt file into CCS Eclipse. |
Multiple SysConfig Files and Boards in a Project | This page discusses having multiple SysConfig files in a Code Composer Studio (CCS) project |
Using System Projects to Simplify Multicore Debug Launch | This page introduces and explains the benefits of System Projects |
Code Coverage with TI Compilers | This page introduces how to use the TI compiler to generate code coverage information of your application |
Code Coverage with TI Arm Clang Compiler | This page introduces how to use the TI ARM Clang compiler to generate code coverage information of your application |
Linking: Migrate from Arm GCC to tiarmclang | How to migrate from a GCC linker script to a tiarmclang linker command file |
Methods to Force an Ordering of Global Variables | How to force global variables to be in memory in a specific order and at a specific address |
Build a Leaner and Faster TI Arm® Application with Link-Time Optimization (LTO) | This article provides a technical overview of how the TI Arm Clang Compiler Tools' implementation of Link-Time Optimization, LTO, can be used to perform inter-module optimizations at link-time |
How to Query Compiler Issues | Describes how to query the system used to store bugs and enhancements related to TI compiler toolchains |
Debug
The resources below relate to debugging and run-time analysis such as profiling and trace.
Terminal View | Terminal View |
loadti | loadti is a command-line loader which can load and run an executable *.out file on TI targets |
Custom Target Configurations | This article describes how to use the Advanced setup feature of the Target Configuration editor to create custom target configurations |
Memory Map | This article covers the basics of the debugger memory map |
Multi-Core Debug with CCS | This article covers the basics of using CCS to debug multi-cores targets |
Debugging with Multiple Debug Probes | It may be possible to create a single debug session for multiple devices, each connected to the host machine by a separate emulator. The level of support for this varies depending on the devices and emulators used |
Scripting Console | The Scripting Console is a tool in Code Composer Studio which allows users to specify commands to the IDE through a console |
Hardware Breakpoints and Watchpoints in CCS for C2000 devices | This article describes how to setup and use Hardware Breakpoints, Watchpoints, Count Events and Data Access Counts in CCS for C2000 devices |
SMP Debug with CCS | This article is intended to help developers properly configure and use Code Composer Studio to debug their SMP environment |
Common Target Configurations | This article is intended to help developers find the required settings when creating the target configuration file (.ccxml) for development kits and launchpads that have built-in Debug Probes |
Customizing a Debug Session | This application note describes a few practical tips on customizing and automating some operations of a debug session using the scripting tool built into Code Composer Studio |
Counting Cycles | This article discusses simple methods for counting cycles |
Connecting Launchpads with a Single Debug Probe | How to chain multiple launchpads to the same host |
Debug versus Optimization Tradeoff | This article discusses the trade-off between the ease of debugging and the effectiveness of compiler optimization. The way these two features affect each other is undergoing a fundamental change |
Checking for Stack Overflow | This article describes how to use CCS to detect stack overflow |
GEL Example: Periodic Recording of a Variable | This is a short example which demonstrates how to use a GEL timer to periodically read the value of a variable and output it to the C I/O Console View in CCS |
Data Verification Errors | This guide provides suggestions for CCS users experiencing 'data verification' errors when attempting to load their executable on to their target |
JTAG/Debugger Connectivity Issues | This page talks about how to properly debug JTAG connection issues by providing a step-by-step method of narrowing down the problem based on the feedback CCS provides |
Semihosting | This page talks about how semihosting is used with CCS |
Debug Probe Performance Comparison | This page shows performance measurements and comparison tables among the different classes of XDS Debug Probes (JTAG Emulators) |
Flashing multiple boards with UniFlash | This document describes how to use UniFlash to program more than one board when they are connected to the same host computer via separate debug probes |
XDS Debug Probe
The resources below relate to XDS-class debug probes that enable software development on TI embedded processors.
XDS100 | XDS100 Debug Probe |
XDS110 | XDS110 Debug Probe |
XDS200 | XDS200 Debug Probe |
XDS560v2 | XDS560v2 Debug Probe |
Debug Probe Performance Comparison | Comparing the performance of Debug Probes |
XDS Target Connection Guide | Design guidelines for JTAG |
XDS Gdb Debug Agent | Using the GDB Agent |
JTAG Connectors and Pinout | Information about the various JTAG Connectors and Pinout |
JTAG Adapters | Information about the various JTAG Adapters available |
SWO Trace | Information about the SWO Trace technology and all usage scenarios for SimpleLink family of microcontrollers. |
EnergyTrace | Information about the EnergyTrace technology and all usage scenarios for SimpleLink family of microcontrollers. |
Software Messaging (STM) | The Software Messaging application uses the System Trace Macrocell (STM) to allow application code to send printf style messages for debugging and diagnostics. |
DMA ring accelerator | The DMA ring accelerator trace provides a log of ring accelerator operations during DMA transfers. |
Traffic profiling | The Traffic Profiling in CCS provides a non-intrusive means of profiling SoC traffic in TI Keystone 3 devices. |
JTAG Overview | General overview of IEEE1149.1 (JTAG) and IEEE1149.7 (cJTAG). |
BSDL Overview | General overview of Boundary-scan Description Language. |
JTAG adaptive clocking | General overview of JTAG adaptive clocking technology. |
ICEPICK | General overview of ICEPICK JTAG router. |
Wait in reset | General overview of the wait in reset feature. |
Reset types | General overview of the types of resets issued by the Debug Probe. |

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Last updated: July 1 2024 21:12 Central Time