Skip to content
This repository was archived by the owner on Jul 29, 2025. It is now read-only.
This repository was archived by the owner on Jul 29, 2025. It is now read-only.

Add documentation ARM v8 Baseline and Mainline (Cortex-M23/M33/M35P) #94

@NZSmartie

Description

@NZSmartie

I'm getting started with a ATSAML10xxxx series project that uses Cortex M23 (ARM v8 baseline)

Since I'm new to Rust development (but already an experienced embedded developer), I've been following The Embedded Rust Book - Installing the tools. Specifically it suggests adding the following targets with rustup target add

  • thumbv6m-none-eabi
  • thumbv7m-none-eabi
  • thumbv7em-none-eabi
  • thumbv7em-none-eabihf

As for ARM v8 baseline, mainline and mainline with extension, the targets are respectively:

  • thumbv8m.base-none-eabi (e.g. Cortex M23)
  • thumbv8m.main-none-eabi (Not sure which arch uses this instruction set specifically 🤷‍♀️)
  • thumbv8m.main-none-eabihf (e.g. Cortex M33, CortexM35P)

Could these be added to README.md and also other places I've yet to come across?

- `rust-std` components (pre-compiled `core` crate) for the ARM Cortex-M
targets. Run:
``` console
$ rustup target add thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf
```

and
``` toml
[build]
# Pick ONE of these compilation targets
# target = "thumbv6m-none-eabi" # Cortex-M0 and Cortex-M0+
# target = "thumbv7m-none-eabi" # Cortex-M3
# target = "thumbv7em-none-eabi" # Cortex-M4 and Cortex-M7 (no FPU)
target = "thumbv7em-none-eabihf" # Cortex-M4F and Cortex-M7F (with FPU)
```

Maybe a reference to the Cortex-M comparison table might help with picking out the right instruction set

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions