blob: dc785af08fe8f44ba77490ba0d02118fc206ed31 [file] [log] [blame] [view] [edit]
# Installing the tools
This page contains OS-agnostic installation instructions for a few of the tools:
### Rust Toolchain
Install rustup by following the instructions at [https://rustup.rs](https://rustup.rs).
**NOTE** Make sure you have a compiler version equal to or newer than `1.31`. `rustc
-V` should return a date newer than the one shown below.
``` text
$ rustc -V
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 `thumbv7em-none-eabihf` target.
[Find the best Cortex-M for you.](https://developer.arm.com/ip-products/processors/cortex-m#c-7d3b69ce-5b17-4c9e-8f06-59b605713133)
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
```
Cortex-M23 (ARMv8-M architecture):
``` console
rustup target add thumbv8m.base-none-eabi
```
Cortex-M33 and M35P (ARMv8-M architecture):
``` console
rustup target add thumbv8m.main-none-eabi
```
Cortex-M33F and M35PF with hardware floating point (ARMv8-M architecture):
``` console
rustup target add thumbv8m.main-none-eabihf
```
### `cargo-binutils`
``` text
cargo install cargo-binutils
rustup component add llvm-tools
```
WINDOWS: prerequisite C++ Build Tools for Visual Studio 2019 is installed. https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
### `cargo-generate`
We'll use this later to generate a project from a template.
``` console
cargo install cargo-generate
```
Note: on some Linux distros (e.g. Ubuntu) you may need to install the packages `libssl-dev` and `pkg-config` prior to installing cargo-generate.
### OS-Specific Instructions
Now follow the instructions specific to the OS you are using:
- [Linux](install/linux.md)
- [Windows](install/windows.md)
- [macOS](install/macos.md)