About this book

The ARM® Compiler Compiler User Guide provides information for users new to ARM Compiler 6.

Using this book

This book is organized into the following chapters:

Chapter 1 Getting Started

This introduces ARM® Compiler 6 and helps you start working with ARM Compiler 6 quickly. You can use ARM Compiler 6 from ARM DS-5, Keil MDK, or as a standalone product.

Chapter 2 Using Common Compiler Options

There are many options that you can use to control how ARM® Compiler 6 generates code for your application. This section lists the mandatory and commonly used optional command-line arguments, such as to control target selection, optimization, and debug view.

Chapter 3 Writing Optimized Code

To make best use of the optimization capabilities of ARM® Compiler, there are various options, pragmas, attributes, and coding techniques that you can use.

Chapter 4 Using Assembly and Intrinsics in C or C++ Code

All code for a single application can be written in the same source language. This is usually a high-level language such as C or C++ that is compiled to instructions for ARM® architectures. However, in some situations you might need lower-level control than what C and C++ provide.

Chapter 5 Mapping Code and Data to the Target

There are various options in ARM® Compiler to control how code, data and other sections of the image are mapped to specific locations on the target.

Appendix A Supporting reference information

The various features in ARM Compiler might have different levels of support, ranging from fully supported product features to community features.


The ARM Glossary is a list of terms used in ARM documentation, together with definitions for those terms. The ARM Glossary does not contain terms that are industry standard unless the ARM meaning differs from the generally accepted meaning.

See the ARM Glossary for more information.

Typographic conventions

Introduces special terminology, denotes cross-references, and citations.
Highlights interface elements, such as menu names. Denotes signal names. Also used for terms in descriptive lists, where appropriate.
Denotes text that you can enter at the keyboard, such as commands, file and program names, and source code.
Denotes a permitted abbreviation for a command or option. You can enter the underlined text instead of the full command or option name.
monospace italic
Denotes arguments to monospace text where the argument is to be replaced by a specific value.
monospace bold
Denotes language keywords when used outside example code.
Encloses replaceable terms for assembler syntax where they appear in code or code fragments. For example:
MRC p15, 0, <Rd>, <CRn>, <CRm>, <Opcode_2>
Used in body text for a few terms that have specific technical meanings, that are defined in the ARM Glossary. For example, IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and UNPREDICTABLE.


Feedback on this product

If you have any comments or suggestions about this product, contact your supplier and give:

  • The product name.
  • The product revision or version.
  • An explanation with as much information as you can provide. Include symptoms and diagnostic procedures if appropriate.
Feedback on content

If you have comments on content then send an e-mail to errata@arm.com. Give:

  • The title ARM Compiler User Guide.
  • The number ARM 100748_0607_00_en.
  • If applicable, the page number(s) to which your comments refer.
  • A concise explanation of your comments.

ARM also welcomes general suggestions for additions and improvements.


ARM tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the quality of the represented document when used with any other PDF reader.

Other information

Non-ConfidentialPDF file icon PDF versionARM 100748_0607_00_en
Copyright © 2016, 2017 ARM Limited or its affiliates. All rights reserved.