The following list describes the tools that
are shown in Figure 2-1:
- The C/C++ compiler accepts C/C++ source code and produces TMS320C28x machine code object modules. See the
TMS320C28x Optimizing C/C++ Compiler User's Guide
for more information. A shell program, an optimizer, and an interlist utility are
included in the installation:
- The shell program enables you to
compile, assemble, and link source modules in one step.
- The optimizer modifies code to
improve the efficiency of C/C++ programs.
- The interlist utility interlists
C/C++ source statements with assembly language output to correlate code produced by
the compiler with your source code.
- The assembler translates assembly
language source files into machine language object modules. Source files can contain instructions, assembler directives, and
macro directives. You can use assembler directives to control the assembly process,
including the source listing format, data alignment, and section content. See Chapter 5 through Chapter 7. See the
TMS320C28x DSP CPU and Instruction Set Reference
Guide
for detailed information on the assembly language instruction
set.
- The linker combines object files
into a single
executable object module. It performs symbolic relocation and resolves external
references. The linker accepts relocatable object modules (created by the assembler) as
input. It also accepts archiver library members and output modules created by a previous
linker run. Link directives allow you to combine object file sections, bind sections or
symbols to addresses or within memory ranges, and define global symbols. See Chapter 9.
- The archiver allows you to collect
a group of files into a single archive file, called a library. The most common use of the
archiver is to collect a group of object files into an object library. The linker extracts
object library members to resolve external references during the link. You can also use
the archiver to collect several macros into a macro library. The assembler searches the
library and uses the members that are called as macros by the source file. The archiver
allows you to modify a library by deleting, replacing, extracting, or adding members. See
Section 8.2.
- The library information archiver
allows you to create an index library of several object file library variants, which is
useful when several variants of a library with different options are available. Rather
than refer to a specific library, you can link against the index library, and the linker
will choose the best match from the indexed libraries. See Section 8.6 for more information about using the archiver to manage the content of a library.
- You can use the library-build
utility to build your own customized run-time-support library. See the TMS320C28x Optimizing C/C++ Compiler
User's Guide
for more information.
- The hex conversion utility
converts object files to TI-Tagged, ASCII-Hex, Intel, Motorola-S, or Tektronix object
format. Converted files can be downloaded to an EPROM programmer. See Chapter 13.
- The absolute lister uses linked object files to create .abs files. These files can
be assembled to produce a listing of the absolute addresses of object code. See Chapter 10.
- The cross-reference lister uses object files to produce a cross-reference listing
showing symbols, their definition, and their references in the linked source files. See
Chapter 11.
- The main product of this development
process is a executable object file that can be executed on a
TMS320C28x
device. You can use one of several debugging tools to refine and correct your code. Available
products include:
- An instruction-accurate and
clock-accurate software simulator
- An XDS emulator
In addition, the following utilities
are provided to help examine or manage the content of a given object file:
- The object file display utility
prints the contents of object files and object libraries in either human readable or XML
formats. See Section 12.2.
- The disassembler decodes the
machine code from object modules to show the assembly instructions that it represents. See
Section 12.3.
- The name utility prints a list of
symbol names for objects and functions defined or referenced in an object file or object
archive. See Section 12.4.
- The strip utility removes symbol
table and debugging information from object files and object libraries. See Section 12.5.