13. Armv7-R bare-metal (hard-float)

The armv7r-none-eabihf Ferrocene target provides support for bare-metal ARMv7-R processors with the ARM ISA, using the hard-float ABI with a double-precision capable FPU. This includes the Arm Cortex-R4, Cortex-R5, Cortex-R7 and Cortex-R8 with FPU architecture VFPv3-D16.

On this target, functions accepting f32 or f64 will have those arguments passed via FPU registers. For more information on the differences between the hard-float and soft-float ABIs, see the rustc book.

13.1. Prerequisites

This target has no pre-requisites.

13.2. Archives to install

The following archives are needed when installing this target as a cross-compilation target:

  • rust-std-armv7r-none-eabihf

13.3. Required compiler flags

To use the target, the following additional flags must be provided to rustc:

  • --target=armv7r-none-eabihf

13.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-armv7r-ferrocene.facade-eabihf

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.