11. Armv7E-M bare-metal (soft-float)¶
Note
Currently the baseline target is qualified, without any specific
-Ctarget-cpu
or -Ctarget-feature
flags mentioned in the rustc book.
Please contact support if your use case demands fully optimized builds for a specific CPU configuration.
The thumbv7em-none-eabi
Ferrocene target provides support for
bare-metal ARMv7E-M processors with the
T32 ISA,
using the soft-float ABI. This includes the Arm Cortex-M4 and Arm Cortex-M7.
On this target, functions accepting f32
or f64
will have those
arguments packed into integer registers. For more information on the
differences between the hard-float and soft-float ABIs, see the
rustc book.
For the hard-float ABI, Armv7E-M bare-metal (hard-float) is also available.
11.1. Prerequisites¶
This target has no pre-requisites.
11.2. Archives to install¶
The following archives are needed when installing this target as a cross-compilation target:
rust-std-thumbv7em-none-eabi
11.3. Required compiler flags¶
To use the target, the following additional flags must be provided to
rustc
:
--target=thumbv7em-none-eabi
11.4. Testing Facade (Experimental)¶
Bare metal targets cannot use test harnesses that require libc
. Instead, a testing facade that emulates the bare metal target can
be used instead, but also provides access to std
functionality.
The following additional archive is needed when installing:
rust-std-thumbv7em-ferrocene.facade-eabi
This target is the same as the one it proxies, except it includes a Linux libc
,
which means it can use std
for testing and enriched interactive development on a
Armv8-A Linux (glibc) or x86-64 Linux (glibc) host.
For more information, consult Testing Facades.