Skip to content

Add documentation for Cortex-M23/M33/M35P #262

Closed
@NZSmartie

Description

@NZSmartie

This is sort of a cross-posted issue from rust-embedded/cortex-m-quickstart#94

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 src/intro/install.md and also other places I've yet to come across?

rustc 1.31.1 (b6c32da9b 2018-12-18)
```
For bandwidth and disk usage concerns the default installation only supports
native compilation. To add cross compilation support for the ARM Cortex-M
architectures choose one of the following compilation targets. For the STM32F3DISCOVERY
board used for the examples in this book, use the final `thumbv7em-none-eabihf` target.
Cortex-M0, M0+, and M1 (ARMv6-M architecture):
``` console
$ rustup target add thumbv6m-none-eabi
```
Cortex-M3 (ARMv7-M architecture):
``` console
$ rustup target add thumbv7m-none-eabi
```
Cortex-M4 and M7 without hardware floating point (ARMv7E-M architecture):
``` console
$ rustup target add thumbv7em-none-eabi
```
Cortex-M4F and M7F with hardware floating point (ARMv7E-M architecture):
``` console
$ rustup target add thumbv7em-none-eabihf
```

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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions