| |||
| Home > Key Features of ARM Architecture Versions > ARM architecture v7-A | |||
This is an overview of the compilation tools support for ARMv7-A (ARMv7 architecture targeted at the application profile). Application profiles implement a traditional ARM architecture with multiple modes and support a virtual memory system architecture based on an MMU. These profiles support both ARM and Thumb instruction sets. The following table shows useful command-line options.
Table 7. Useful command-line options
| Command-line option | Description |
|---|---|
--cpu=7 | ARMv7 with 16-bit Thumb and 32-bit Thumb only (no ARM instructions), and without hardware divide[a] |
--cpu=7-A | ARMv7 application profile supporting virtual MMU-based memory systems, with ARM, 16-bit Thumb, 32-bit Thumb, and ThumbEE instruction sets, NEON™ support, and 32-bit SIMD support |
--cpu= | Where
|
[a] ARM v7 is not a recognized ARM architecture. Rather, it denotes the features that are common to all of the ARMv7-A, ARMv7-R, and ARMv7-M architectures. | |
Key features for ARMv7-A:
Supports the advanced SIMD extensions
Supports the Thumb Execution Environment (ThumbEE).
The data alignment behavior supported by the ARM architecture
is significantly different between ARMv4 and ARMv7. An ARMv7 implementation
must support unaligned data accesses. You can control the alignment
requirements of load and store instructions by using the A bit
in the CP15 register c1.
ARMv7 architectures do not support pre-ARMv6 alignment.
You can produce either little-endian or big-endian code using
the compiler command-line options --littleend and --bigend respectively.
ARMv7-A supports the following endian modes:
little-endian format
big-endian format used by ARMv6 and ARMv7.
The ARMv7 does not support the legacy BE-32 mode. If you have legacy code for ARMv7 processors that contain instructions with a big-endian byte order, then you must perform byte order reversal.
Using the Compiler:
Compiler Reference:
Assembler Reference: