Enables code generation for the selected ARM® processor or architecture.
If you do not include the
armlink derives an architecture from the combination
of the input objects.
If you include
- Faults any input object that is not compatible with the cpu.
- For library selection, acts as if at least one input object is compiled
name is the name of a
processor or architecture:
is the name of a processor, enter it as shown on ARM data sheets, for example,
is the name of an architecture, it must belong to the list of architectures shown in the following table.
Processor and architecture names are not case-sensitive.
Wildcard characters are not accepted.
The following table shows the supported architectures.
For a complete list of the supported architecture and processor names, specify the
Table 12-1 Supported ARM architectures
||ARMv4 without Thumb|
||ARMv4 with Thumb|
||ARMv5 with Thumb and interworking|
||ARMv5 with Thumb, interworking, DSP multiply, and double-word instructions|
ARMv5 with Thumb, interworking, DSP multiply, double-word instructions, and Jazelle® extensions
armlink cannot generate Java bytecodes.
||ARMv6 with Thumb, interworking, DSP multiply, double-word instructions, unaligned and mixed-endian support, Jazelle, and media extensions.|
ARMv6 microcontroller profile with Thumb only, plus processor state instructions.
ARMv6 microcontroller profile with Thumb only, plus processor state instructions and OS extensions.
||ARMv6 with SMP extensions.|
||ARMv6 with Thumb (Thumb-2 technology).|
||ARMv6 with Security Extensions.|
||ARMv7 with Thumb (Thumb-2 technology) only, and without hardware divide.|
||ARMv7 application profile.|
||ARMv7-A architecture profile with the
ARMv7 real-time profile.
||ARMv7 microcontroller profile.|
||ARMv7-M architecture profile with DSP extension.|
ARMv7 is not an actual ARM architecture.
--cpu=7denotes the features that are common to the ARMv7-A, ARMv7-R, and ARMv7-M architectures. By definition, any given feature used with
--cpu=7exists on the ARMv7-A, ARMv7-R, and ARMv7-M architectures.
7-A.securityis not an actual ARM architecture, but rather refers to
7-Aplus Security Extensions.
- The full list of supported architectures and processors depends on your license.
The following general points apply to processor and architecture options:
Selecting the processor selects the appropriate architecture, Floating-Point Unit (FPU), and memory organization.
--cpuvalues include all current ARM product names or architecture versions.
Other ARM architecture-based processors, such as the Marvell Feroceon and the Marvell XScale, are also supported.
If you specify a processor for the
--cpuoption, the generated code is optimized for that processor.
If you specify an architecture name for the
--cpuoption, the generated code can run on any processor supporting that architecture. For example,
--cpu=5TEproduces code that can be used by the ARM926EJ-S processor.
Some specifications of
--fpuselection.Note Any explicit FPU, set with
--fpuon the command line, overrides an implicit FPU.
--fpuoption is specified and no
--cpuoption is specified,
if you do not specify a
You cannot specify both a processor and an architecture on the same command-line.