TMS320C6000 Assembly Language
Tools
v8.2.x User's Guide
SPRUI03B - REVISED MAY 2017
1 Introduction to the Software Development Tools
The TMS320C6000™ is supported by a set of software development tools, which includes an optimizing C/C++ compiler, an assembly optimizer, an assembler, a linker, and assorted utilities. This chapter provides an overview of these tools.
The TMS320C6000 is supported by the following assembly language development tools:
- Assembler
- Archiver
- Linker
- Library information archiver
- Object file display utility
- Disassembler
- Name utility
- Strip utility
- Hex conversion utility
This chapter shows how these tools fit into the general software tools development flow and gives a brief description of each tool. For convenience, it also summarizes the C/C++ compiler and debugging tools. For detailed information on the compiler and debugger, and for complete descriptions of the TMS320C6000, refer to the books listed in Related Documentation From Texas Instruments.
1.1 Software Development Tools Overview
Figure 1-1 shows the TMS320C6000 software development flow. The shaded portion highlights the most common development path; the other portions are optional. The other portions are peripheral functions that enhance the development process.
1.2 Tools Descriptions
The following list describes the tools that are shown in Figure 1-1:
- The C/C++ compiler accepts C/C++ source code and produces TMS320C6000 machine code object modules. See the TMS320C6000 Optimizing Compiler User's Guide for more information.
- The assembly optimizer allows you to write linear assembly code without being concerned with the pipeline structure or with assigning registers. It accepts assembly code that has not been register-allocated and is unscheduled. The assembly optimizer assigns registers and uses loop optimization to turn linear assembly into highly parallel assembly that takes advantage of software pipelining. See the TMS320C6000 Optimizing Compiler User's Guide for more information.
- 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 Section 4 through Section 6. See the TMS320C64x/C64x+ DSP CPU and Instruction Set Reference Guide (SPRU732), TMS320C66x CPU and Instruction Set Reference Guide (SPRUGH7), and TMS320C674x CPU and Instruction Set Reference Guide (SPRUFE8) for detailed information on the assembly language instruction set.
- The linker combines object files into a single static executable or dynamic 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 Section 8. For more information about creating a dynamic object module, see Chapter 14 of The C6000 Embedded Application Binary Interface Application Report (SPRAB89).
- 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 7.1.
- 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 7.5 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 TMS320C6000 Optimizing 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 Section 10.
- The main product of this development process is a executable object file that can be executed on a TMS320C6000 device. You can use an XDS emulator when refining and correcting your code.
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 9.1.
- The disassembler decodes the machine code from object modules to show the assembly instructions that it represents. See Section 9.2.
- 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 9.3.
- The strip utility removes symbol table and debugging information from object files and object libraries. See Section 9.4.
Copyright© 2017, Texas Instruments Incorporated. An IMPORTANT NOTICE for this document addresses availability, warranty, changes, use in safety-critical applications, intellectual property matters and other important disclaimers.