rust-embedded/cortex-m-quickstart

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

NZSmartie opened this issue · 0 comments

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