ARM ® DeveloperSuite Linker and Utilities Guide

Version 1.2


Table of Contents

Preface
About this book
Intended audience
Using this book
Typographical conventions
Further reading
Feedback
Feedback on the ARM Developer Suite
Feedback on this book
1. Introduction
1.1. About the linker and utilities
1.1.1. The linker
1.1.2. The utilities
2. The armlink Command Syntax
2.1. About armlink
2.1.1. Input to armlink
2.1.2. Output from armlink
2.1.3. Summary of armlink options
2.2. armlink command syntax
3. Using the Basic Linker Functionality
3.1. Specifying the image structure
3.1.1. Building blocks for objects and images
3.1.2. Load view and execution view of an image
3.1.3. Specifying an image memory map
3.1.4. Image entry points
3.2. Section placement
3.2.1. Ordering input sectionsby attribute
3.2.2. Using FIRST and LASTto place sections
3.2.3. Aligning sections
3.3. Optimizations and modifications
3.3.1. Common debug section elimination
3.3.2. Common section elimination
3.3.3. Unused section elimination
3.3.4. Veneer generation
3.4. Using command-line options to createsimple images
3.4.1. Type 1: one load region and contiguousoutput regions
3.4.2. Type 2: one load region and non contiguousoutput regions
3.4.3. Type 3: two load regions and noncontiguousoutput regions
4. Accessing Image Symbols
4.1. Accessing linker-defined symbols
4.1.1. Region-related symbols
4.1.2. Section-relatedsymbols
4.2. Accessing symbols in another image
4.2.1. Reading a symdefs file
4.2.2. Creating a symdefs file
4.2.3. Symdefs file format
4.3. Hiding and renaming global symbols
4.3.1. Steering file format
4.3.2. Steering file commands
4.4. Using $Super$$ and $Sub$$ to overidesymbol definitions
5. Using Scatter-loading description files
5.1. About scatter-loading
5.1.1. Symbols defined for scatter-loading
5.1.2. When to use scatter-loading
5.1.3. Command-line option
5.1.4. Images with a simple memory map
5.1.5. Images with a complex memory map
5.2. The formal syntax of the scatter-loadingdescription file
5.2.1. BNF notation and syntax
5.2.2. Overview of the syntax of scatter-loading description files
5.2.3. Load region description
5.2.4. Execution region description
5.2.5. Input section description
5.2.6. Resolving multiplematches
5.3. Examples of specifying region andsection addresses
5.3.1. Selecting veneer input sections in scatter-loadingdescriptions
5.3.2. Creating root executionregions
5.3.3. Placing regions at fixed addresses
5.4. Equivalent scatter-loading descriptionsfor simple images
5.4.1. Type 1
5.4.2. Type 2
5.4.3. Type 3
6. Creating and Using libraries
6.1. About libraries
6.2. Library searching, selection, andscanning
6.2.1. Searching for user libraries
6.2.2. Searching for ARM libraries
6.2.3. Selecting ARM library variants
6.2.4. Scanning the libraries
6.3. The ARM librarian
6.3.1. Librarian command-line options
6.3.2. Examples
7. Using fromELF
7.1. About fromELF
7.1.1. Image structure
7.2. fromELF command-line options
7.3. Examples of fromELF usage
7.3.1. Producing a plain binary file
7.3.2. Disassembly
7.3.3. Listing field offsets as assembly language EQUs
7.3.4. Listing addresses of static data
7.3.5. Converting debug to nodebug
8. Using the ARM Profiler
8.1. About the ARM profiler
8.2. Profiler command-line options
8.2.1. Example
8.3. Sample output
Glossary

ProprietaryNotice

Words and logos marked with ® or ™ are registered trademarks or trademarksowned by ARM Limited. Other brands and names mentioned herein maybe the trademarks of their respective owners.

Neither the whole nor any part of the information containedin, or the product described in, this document may be adapted orreproduced in any material form except with the prior written permissionof the copyright holder.

The product described in this document is subject to continuousdevelopments and improvements. All particulars of the product andits use contained in this document are given by ARM in good faith.However, all warranties implied or expressed, including but notlimited to implied warranties of merchantability, or fitness forpurpose, are excluded.

This document is intended only to assist the reader in theuse of the product. ARM Limited shall not be liable for any lossor damage arising from the use of any information in this document,or any error or omission in such information, or any incorrect useof the product.

Revision History
Revision A November 2001 ADSRelease 1.2
Copyright © 2001 ARM Limited. All rights reserved. ARM DUI 0151A
Non-Confidential