ARM Assembly Language Tools V5.0 User's Guide (Rev. K) TI Assembler Manual
User Manual:
Open the PDF directly: View PDF
Page Count: 326 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Table of Contents
- Preface
- 1 Introduction to the Software Development Tools
- 2 Introduction to Object Modules
- 3 Assembler Description
- 3.1 Assembler Overview
- 3.2 The Assembler's Role in the Software Development Flow
- 3.3 Invoking the Assembler
- 3.4 Naming Alternate Directories for Assembler Input
- 3.5 Source Statement Format
- 3.6 Constants
- 3.7 Character Strings
- 3.8 Symbols
- 3.9 Expressions
- 3.10 Built-in Functions
- 3.11 Unified Assembly Language Syntax Support
- 3.12 Source Listings
- 3.13 Debugging Assembly Source
- 3.14 Cross-Reference Listings
- 4 Assembler Directives
- 4.1 Directives Summary
- 4.2 Directives That Define Sections
- 4.3 Directives That Change the Instruction Type
- 4.4 Directives That Initialize Constants
- 4.5 Directives That Perform Alignment and Reserve Space
- 4.6 Directives That Format the Output Listings
- 4.7 Directives That Reference Other Files
- 4.8 Directives That Enable Conditional Assembly
- 4.9 Directives That Define Union or Structure Types
- 4.10 Directives That Define Enumerated Types
- 4.11 Directives That Define Symbols at Assembly Time
- 4.12 Miscellaneous Directives
- 4.13 Directives Reference
- 5 Macro Description
- 5.1 Using Macros
- 5.2 Defining Macros
- 5.3 Macro Parameters/Substitution Symbols
- 5.4 Macro Libraries
- 5.5 Using Conditional Assembly in Macros
- 5.6 Using Labels in Macros
- 5.7 Producing Messages in Macros
- 5.8 Using Directives to Format the Output Listing
- 5.9 Using Recursive and Nested Macros
- 5.10 Macro Directives Summary
- 6 Archiver Description
- 7 Linker Description
- 7.1 Linker Overview
- 7.2 The Linker's Role in the Software Development Flow
- 7.3 Invoking the Linker
- 7.4 Linker Options
- 7.4.1 Wild Cards in File, Section, and Symbol Patterns
- 7.4.2 Relocation Capabilities (--absolute_exe and --relocatable Options)
- 7.4.3 Allocate Memory for Use by the Loader to Pass Arguments (--arg_size Option)
- 7.4.4 Changing Encoding of Big-Endian Instructions
- 7.4.5 Compression (--cinit_compression and --copy_compression Option)
- 7.4.6 Compress DWARF Information (--compress_dwarf Option)
- 7.4.7 Control Linker Diagnostics
- 7.4.8 Disable Automatic Library Selection (--disable_auto_rts Option)
- 7.4.9 Controlling Unreferenced and Unused Sections
- 7.4.10 Link Command File Preprocessing (--disable_pp, --define and --undefine Options)
- 7.4.11 Define an Entry Point (--entry_point Option)
- 7.4.12 Set Default Fill Value (--fill_value Option)
- 7.4.13 Generate List of Dead Functions (--generate_dead_funcs_list Option)
- 7.4.14 Define Heap Size (--heap_size Option)
- 7.4.15 Hiding Symbols
- 7.4.16 Alter the Library Search Algorithm (--library Option, --search_path Option, and TI_ARM_C_DIR Environment Variable)
- 7.4.17 Change Symbol Localization
- 7.4.18 Create a Map File (--map_file Option)
- 7.4.19 Managing Map File Contents (--mapfile_contents Option)
- 7.4.20 Disable Name Demangling (--no_demangle)
- 7.4.21 Disable Merge of Symbolic Debugging Information (--no_sym_merge Option)
- 7.4.22 Strip Symbolic Information (--no_symtable Option)
- 7.4.23 Name an Output Module (--output_file Option)
- 7.4.24 Prioritizing Function Placement (--preferred_order Option)
- 7.4.25 C Language Options (--ram_model and --rom_model Options)
- 7.4.26 Retain Discarded Sections (--retain Option)
- 7.4.27 Create an Absolute Listing File (--run_abs Option)
- 7.4.28 Scan All Libraries for Duplicate Symbol Definitions (--scan_libraries)
- 7.4.29 Define Stack Size (--stack_size Option)
- 7.4.30 Enforce Strict Compatibility (--strict_compatibility Option)
- 7.4.31 Mapping of Symbols (--symbol_map Option)
- 7.4.32 Generate Far Call Trampolines (--trampolines Option)
- 7.4.33 Introduce an Unresolved Symbol (--undef_sym Option)
- 7.4.34 Display a Message When an Undefined Output Section Is Created (--warn_sections Option)
- 7.4.35 Generate XML Link Information File (--xml_link_info Option)
- 7.4.36 Zero Initialization (--zero_init Option)
- 7.5 Linker Command Files
- 7.5.1 Reserved Names in Linker Command Files
- 7.5.2 Constants in Linker Command Files
- 7.5.3 The MEMORY Directive
- 7.5.4 The SECTIONS Directive
- 7.5.4.1 SECTIONS Directive Syntax
- 7.5.4.2 Allocation
- 7.5.4.3 Specifying Input Sections
- 7.5.4.4 Using Multi-Level Subsections
- 7.5.4.5 Specifying Library or Archive Members as Input to Output Sections
- 7.5.4.6 Allocation Using Multiple Memory Ranges
- 7.5.4.7 Automatic Splitting of Output Sections Among Non-Contiguous Memory Ranges
- 7.5.5 Specifying a Section's Run-Time Address
- 7.5.6 Using UNION and GROUP Statements
- 7.5.7 Special Section Types (DSECT, COPY, NOLOAD, and NOINIT)
- 7.5.8 Assigning Symbols at Link Time
- 7.5.8.1 Syntax of Assignment Statements
- 7.5.8.2 Assigning the SPC to a Symbol
- 7.5.8.3 Assignment Expressions
- 7.5.8.4 Symbols Defined by the Linker
- 7.5.8.5 Assigning Exact Start, End, and Size Values of a Section to a Symbol
- 7.5.8.6 Why the Dot Operator Does Not Always Work
- 7.5.8.7 Address and Dimension Operators
- 7.5.9 Creating and Filling Holes
- 7.6 Object Libraries
- 7.7 Default Allocation Algorithm
- 7.8 Linker-Generated Copy Tables
- 7.8.1 A Current Boot-Loaded Application Development Process
- 7.8.2 An Alternative Approach
- 7.8.3 Overlay Management Example
- 7.8.4 Generating Copy Tables Automatically With the Linker
- 7.8.5 The table() Operator
- 7.8.6 Boot-Time Copy Tables
- 7.8.7 Using the table() Operator to Manage Object Components
- 7.8.8 Compression Support
- 7.8.9 Copy Table Contents
- 7.8.10 General Purpose Copy Routine
- 7.8.11 Linker-Generated Copy Table Sections and Symbols
- 7.8.12 Splitting Object Components and Overlay Management
- 7.9 Linker-Generated CRC Tables
- 7.10 Partial (Incremental) Linking
- 7.11 Linking C/C++ Code
- 7.12 Linker Example
- 8 Absolute Lister Description
- 9 Cross-Reference Lister Description
- 10 Object File Utilities
- 11 Hex Conversion Utility Description
- 11.1 The Hex Conversion Utility's Role in the Software Development Flow
- 11.2 Invoking the Hex Conversion Utility
- 11.3 Understanding Memory Widths
- 11.4 The ROMS Directive
- 11.5 The SECTIONS Directive
- 11.6 The Load Image Format (--load_image Option)
- 11.7 Excluding a Specified Section
- 11.8 Assigning Output Filenames
- 11.9 Image Mode and the --fill Option
- 11.10 Building a Table for an On-Chip Boot Loader
- 11.11 Controlling the ROM Device Address
- 11.12 Control Hex Conversion Utility Diagnostics
- 11.13 Description of the Object Formats
- 11.13.1 ASCII-Hex Object Format (--ascii Option)
- 11.13.2 Intel MCS-86 Object Format (--intel Option)
- 11.13.3 Motorola Exorciser Object Format (--motorola Option)
- 11.13.4 Extended Tektronix Object Format (--tektronix Option)
- 11.13.5 Texas Instruments SDSMAC (TI-Tagged) Object Format (--ti_tagged Option)
- 11.13.6 TI-TXT Hex Format (--ti_txt Option)
- 12 Sharing C/C++ Header Files With Assembly Source
- 12.1 Overview of the .cdecls Directive
- 12.2 Notes on C/C++ Conversions
- 12.2.1 Comments
- 12.2.2 Conditional Compilation (#if/#else/#ifdef/etc.)
- 12.2.3 Pragmas
- 12.2.4 The #error and #warning Directives
- 12.2.5 Predefined symbol _ _ASM_HEADER_ _
- 12.2.6 Usage Within C/C++ asm( ) Statements
- 12.2.7 The #include Directive
- 12.2.8 Conversion of #define Macros
- 12.2.9 The #undef Directive
- 12.2.10 Enumerations
- 12.2.11 C Strings
- 12.2.12 C/C++ Built-In Functions
- 12.2.13 Structures and Unions
- 12.2.14 Function/Variable Prototypes
- 12.2.15 C Constant Suffixes
- 12.2.16 Basic C/C++ Types
- 12.3 Notes on C++ Specific Conversions
- 12.4 Special Assembler Support
- A Symbolic Debugging Directives
- B XML Link Information File Description
- C Hex Conversion Utility Examples
- D Glossary