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.
To try out the code,
the latest version of the code from CVS (module
binutils). Things to type are indicated in
style, and you will probably want to replace text in
this style with your own filenames.
cdto your newly created CVS working directory
./configure --target=c6x --enable-maintainer-mode(some errors related to gettext can be avoided by using
If you intend to do a lot of testing with the tools, you can
make install should do the trick. On
the other hand, you can just run them from the binutils
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:
binutils/objdump -d -z --reloc file.obj
For *.out files, you can leave off "
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.