About this book

ARM Compiler v5.05 for µVision armcc User Guide. This manual provides user information for the ARM compiler, armcc. armcc is an optimizing C and C++ compiler that compiles Standard C and Standard C++ source code into machine code for ARM architecture-based processors. Available as PDF.

Using this book

This book is organized into the following chapters:
Chapter 1 Overview of the Compiler

Gives an overview of the ARM compiler, the languages and extensions it supports, and the provided libraries.

Chapter 2 Getting Started with the Compiler

Introduces some of the more common ARM compiler command-line options.

Chapter 3 Compiler Features

Provides an overview of ARM-specific features of the compiler.

Chapter 4 Compiler Coding Practices

Describes programming techniques and practices to help you increase the portability, efficiency and robustness of your C and C++ source code.

Chapter 5 Compiler Diagnostic Messages

Describes the format of compiler diagnostic messages and how to control the output during compilation.

Chapter 6 Using the Inline and Embedded Assemblers of the ARM Compiler

Describes the optimizing inline assembler and non-optimizing embedded assembler of the ARM compiler, armcc.

Chapter 7 Compiler Command-line Options

Describes the armcc compiler command-line options.

Chapter 8 Language Extensions

Describes the language extensions that the compiler supports.

Chapter 9 Compiler-specific Features

Describes compiler-specific features including ARM extensions to the C and C++ Standards, ARM-specific pragmas and intrinsics, and predefined macros.

Chapter 10 C and C++ Implementation Details

Describes the language implementation details for the compiler. Some language implementation details are common to both C and C++, while others are specific to C++.

Chapter 11 What is Semihosting?

Describes the semihosting mechanism.

Chapter 12 ARMv6 SIMD Instruction Intrinsics

Describes the ARMv6 SIMD instruction intrinsics. SIMD instructions allow the processor to operate on packed 8-bit or 16-bit values in 32-bit registers.

Chapter 13 Via File Syntax

Describes the syntax of via files accepted by the armcc.

Chapter 14 Summary Table of GNU Language Extensions

Describes ARM compiler support for GNU extensions to the C and C++ languages.

Chapter 15 Standard C Implementation Definition

Provides information required by the ISO C standard for conforming C implementations.

Chapter 16 Standard C++ Implementation Definition

Lists the C++ language features defined in the ISO/IEC standard for C++, and states whether or not ARM C++ supports that language feature.

Chapter 17 C and C++ Compiler Implementation Limits

Describes the implementation limits when using the ARM compiler to compile C and C++.


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.
  • The number ARM DUI0375F.
  • 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.
Non-ConfidentialPDF file icon PDF versionARM DUI0375F
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.