ARM Assembly
Language Tools
v18.1.0.LTS User's Guide
SPNU118U - REVISED JANUARY 2018
1 Introduction to the Software Development Tools
The ARM® is supported by a set of software development tools, which includes an optimizing C/C++ compiler, an assembler, a linker, and assorted utilities. This chapter provides an overview of these tools.
The ARM device is supported by the following assembly language development tools:
- Assembler
- Archiver
- Linker
- Library information archiver
- Absolute lister
- Cross-reference lister
- 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 ARM device, refer to the books listed in Related Documentation From Texas Instruments.
1.1 Software Development Tools Overview
Figure 1-1 shows the ARM device 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 ARM machine code object modules. See the ARM 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 Section 4 through Section 6. See the TMS470R1x User's 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 Section 8.
- 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 ARM 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 Section 12.
- 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 Section 9.
- 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 Section 10.
- The main product of this development process is a executable object file that can be executed on a ARM 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 11.1.
- The disassembler decodes the machine code from object modules to show the assembly instructions that it represents. See Section 11.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 11.3.
- The strip utility removes symbol table and debugging information from object files and object libraries. See Section 11.4.
Copyright© 2018, 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.