1.1 Software Development Tools Overview
Figure 1-1 illustrates the software development flow. The shaded portion of the figure highlights the most common path of software development for C language programs. The other portions are peripheral functions that enhance the development process.
The following list describes the tools that are shown in Figure 1-1:
- 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 Section 5.
- The compiler accepts C/C++ source code and produces C6000 assembly language source code. See Section 3.
- The assembler translates assembly language source files into machine language relocatable object files. See the TMS320C6000 Assembly Language Tools User's Guide.
- 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 Section 6 for an overview of the linker. See the TMS320C6000 Assembly Language Tools User's Guide for details.
- The archiver allows you to collect a group of files into a single archive file, called a library. The archiver allows you to modify such libraries by deleting, replacing, extracting, or adding members. One of the most useful applications of the archiver is building a library of object files. See the TMS320C6000 Assembly Language Tools User's Guide.
- 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 Section 9.
The library-build utility automatically builds the run-time-support library if compiler and linker options require a custom version of the library. See Section 9.4. Source code for the standard run-time-support library functions for C and C++ is provided in the lib\src subdirectory of the directory where the compiler is installed.
- The hex conversion utility converts an object file into other object formats. You can download the converted file to an EPROM programmer. See the TMS320C6000 Assembly Language Tools User's Guide.
- 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 Section 10.
- The disassembler decodes object files to show the assembly instructions that they represent. See the TMS320C6000 Assembly Language Tools User's Guide.
- The main product of this development process is an executable object file that can be executed in a TMS320C6000 device. You can use an XDS emulator when refining and correcting your code.