Open Source TMS320C6x Development Tools

SourceForge Project Page

The main source of information on this project will be the SourceForge project page.


The goal of this project is to provide an Open Source development environment for users of the TI TMS320C6x DSP family. Initially, the tools will simply consist of a port of the GNU binutils, and a simple Linux driver to facilitate downloading code to a DSK.

Eventually, it would be nice to merge this code with the official binutils tree. Until this codebase becomes useful, I'm not going to pester the binutils developers with patches.

Currently, the 'C6x family includes the 'C62x (fixed-point VLIW), the 'C67x (floating point VLIW; a superset of the 'C62x) and the 'C64x (fixed-point 2nd gen VLIW). The 'C6211 and 'C6711 are most commonly seen in TI's DSK (DSP Starter Kit).

The 'C6211 DSK has been superceded by the 'C6711 DSK, although the 'C6711 is pin- and code-compatible with the 'C6211. This means you can develop code on a 'C6711 DSK, and as long as you don't use floating point or double-word loads, your code will run just fine on the cheaper 'C6211.


The project is still in its infancy. A few useful items have been checked into CVS. A description of the magic file addition is available here.

A discussion mailing list and a CVS commit list have been added. See the main project page for details.

Getting Started

To try out the code, check out the latest version of the code from CVS (module binutils). Things to type are indicated in this style, and you will probably want to replace text in this style with your own filenames.

If you intend to do a lot of testing with the tools, you can install them. make install should do the trick. On the other hand, you can just run them from the binutils directory.

A good sanity check is to take a project that you know works in Code Composer Studio, and to dissect the generated code. Save a copy of your project file (better yet, just copy everything to a new directory), and turn on all of the diagnostic output (.asm files, .map files, whatever works). Build as usual.

Then, copy the *.obj and *.out files over to wherever you have the c6x binutils installed.

For *.obj files:

For *.out files, you can leave off "--reloc" because an output file should not have any relocations.

Relocations are broken. This code follows the TI documentation better than TI's code, it seems.

Once you have the disassembled output, compare it to the listing file. As of early 2003, the code recognizes the general opcode class for all 'C62xx instructions, and disassembles most of the fixed-point opcodes.

You can also list some of the COFF headers for both types of files as well. See the binutils documentation for details.


Get TMS320C6x development tools at Fast, secure and Free Open Source software downloads Created by XEmacs Valid HTML 4.01!
Charles Lepple
$Id: index.html,v 1.5 2003/07/09 22:57:39 clepple Exp $

Texas Instruments is a registered trademark of Texas Instruments Incorporated. All device names (most notably TMS320C6000) are trademarks of Texas Instruments.