28.11.2012 Views

ARM Compiler toolchain Developing Software for ARM Processors

ARM Compiler toolchain Developing Software for ARM Processors

ARM Compiler toolchain Developing Software for ARM Processors

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.13 <strong>ARM</strong> architecture v7-A<br />

2.13.1 Key features<br />

Key Features of <strong>ARM</strong> Architecture Versions<br />

This is an overview of the compilation tools support <strong>for</strong> <strong>ARM</strong>v7-A (<strong>ARM</strong>v7 architecture<br />

targeted at the application profile). Application profiles implement a traditional <strong>ARM</strong><br />

architecture with multiple modes and support a virtual memory system architecture based on an<br />

MMU. These profiles support both <strong>ARM</strong> and Thumb instruction sets. the following table shows<br />

useful command-line options.<br />

Command-line option Description<br />

--cpu=7 <strong>ARM</strong>v7 with Thumb-2 only, and without hardware divide a<br />

2.13.2 Alignment support<br />

2.13.3 Endian support<br />

Key features <strong>for</strong> <strong>ARM</strong>v7-A:<br />

• Supports the advanced SIMD extensions<br />

• Supports the Thumb Execution Environment (ThumbEE).<br />

The data alignment behavior supported by the <strong>ARM</strong> architecture is significantly different<br />

between <strong>ARM</strong>v4 and <strong>ARM</strong>v7. An <strong>ARM</strong>v7 implementation must support unaligned data<br />

accesses. You can control the alignment requirements of load and store instructions by using the<br />

A bit in the CP15 register c1.<br />

Note<br />

<strong>ARM</strong>v7 architectures do not support pre-<strong>ARM</strong>v6 alignment.<br />

You can produce either little-endian or big-endian code using the compiler command-line<br />

options --littleend and --bigend respectively.<br />

<strong>ARM</strong>v7-A supports the following endian modes:<br />

LE little-endian <strong>for</strong>mat<br />

BE-8 big-endian <strong>for</strong>mat used by <strong>ARM</strong>v6 and <strong>ARM</strong>v7.<br />

Table 2-7 Useful command-line options<br />

--cpu=7-A <strong>ARM</strong>v7 application profile supporting virtual MMU-based memory systems, with <strong>ARM</strong>,<br />

Thumb, Thumb-2, and Thumb-2EE instruction sets, NEON support, and 32-bit SIMD<br />

support<br />

--cpu=name Where name is a specific <strong>ARM</strong> processor. For example:<br />

• Cortex-A8 <strong>for</strong> <strong>ARM</strong>v7 with <strong>ARM</strong>, Thumb, Thumb-2, hardware VFP, NEON support,<br />

and 32-bit SIMD support.<br />

a. <strong>ARM</strong> v7 is not a recognized <strong>ARM</strong> architecture. Rather, it denotes the features that are common to all of the <strong>ARM</strong>v7-A,<br />

<strong>ARM</strong>v7-R, and <strong>ARM</strong>v7-M architectures.<br />

The <strong>ARM</strong>v7 does not support the legacy BE-32 mode. If you have legacy code <strong>for</strong> <strong>ARM</strong>v7<br />

processors that contain instructions with a big-endian byte order, then you must per<strong>for</strong>m byte<br />

order reversal.<br />

<strong>ARM</strong> DUI 0471C Copyright © 2010-2011 <strong>ARM</strong>. All rights reserved. 2-20<br />

ID080411 Non-Confidential

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!