C/C++ Compiler Overview
www.ti.com
• The assembler translates assembly language source files into machine language relocatable object
files. The TMS320C6000 Assembly Language Tools User's Guide explains how to use the assembler.
• The linker combines relocatable object files into a single absolute executable object file. As it creates
the executable file, it performs relocation and resolves external references. The linker accepts
relocatable object files and object libraries as input. See Chapter 5. The TMS320C6000 Assembly
Language Tools User's Guide provides a complete description of the linker.
• The archiver allows you to collect a group of files into a single archive file, called a library.
Additionally, the archiver allows you to modify a library by deleting, replacing, extracting, or adding
members. One of the most useful applications of the archiver is building a library of object files. The
TMS320C6000 Assembly Language Tools User's Guide explains how to use the archiver.
• The run-time-support libraries contain the standard ISO C and C++ library functions, compiler-utility
functions, floating-point arithmetic functions, and C I/O functions that are supported by the compiler.
See Chapter 8.
You can use the library-build utility to build your own customized run-time-support library. See
Section 8.5. Source code for the standard run-time-support library functions for C and C++ are
provided in the self-contained rtssrc.zip file.
• The hex conversion utility converts an object file into other object formats. You can download the
converted file to an EPROM programmer. The TMS320C6000 Assembly Language Tools User's Guide
explains how to use the hex conversion utility and describes all supported formats.
• The absolute lister accepts linked object files as input and creates .abs files as output. You can
assemble these .abs files to produce a listing that contains absolute, rather than relative, addresses.
Without the absolute lister, producing such a listing would be tedious and would require many manual
operations. The TMS320C6000 Assembly Language Tools User's Guide explains how to use the
absolute lister.
• The cross-reference lister uses object files to produce a cross-reference listing showing symbols,
their definitions, and their references in the linked source files. The TMS320C6000 Assembly
Language Tools User's Guide explains how to use the cross-reference utility.
• The C++ name demangler is a debugging aid that converts names mangled by the compiler back to
their original names as declared in the C++ source code. As shown in Figure 1-1, you can use the C++
name demangler on the assembly file that is output by the compiler; you can also use this utility on the
assembler listing file and the linker map file. See Chapter 9.
• The disassembler decodes object files to show the assembly instructions that they represent. The
TMS320C6000 Assembly Language Tools User's Guide explains how to use the disassembler.
• The main product of this development process is an executable object file that can be executed in a
TMS320C6000 device. You can use one of several debugging tools to refine and correct your code.
Available products include:
– An instruction-level and clock-accurate software simulator
– An XDS emulator
1.2 C/C++ Compiler Overview
The following subsections describe the key features of the compiler.
1.2.1 ANSI/ISO Standard
The C and C++ language features in the compiler are implemented in conformance with these ISO
standards:
• ISO-standard C
The C/C++ compiler conforms to the C Standard ISO/IEC 9889:1990. The ISO standard supercedes
and is the same as the ANSI C standard. There is also a 1999 version of the ISO standard, but the TI
compiler conforms to the 1990 standard, not the 1999 standard. The language is also described in the
second edition of Kernighan and Ritchie's The C Programming Language (K&R).
• ISO-standard C++
The C/C++ compiler conforms to the C++ Standard ISO/IEC 14882:1998. The language is also
described in Ellis and Stroustrup's The Annotated C++ Reference Manual (ARM), but this is not the
16
Introduction to the Software Development Tools SPRU187U–July 2012
Submit Documentation Feedback
Copyright © 2012, Texas Instruments Incorporated