This is only a part of a presentation. See https://peter-kehl.github.io/embedded_low_level_rust for the whole presentation.
- Per-platform
rustflags
in.cargo/config.toml
. See [Zero2Prod > Faster Linking] (https://www.lpalmieri.com/posts/2020-06-06-zero-to-production-1-setup-toolchain-ides-ci/#5-1-faster-linking). - Embedded Rust book >
QEMU. (It's
not suitable for multithreaded applications, but we can't use threads in
no_std
anyway.) - Cargo Reference > Build scripts
- Unsafe code guidelines
- Rust Foundation's Embedded
resources
- including the
Rustonomicon
and theUnstable book
- the Embedded Rust book >
- Tips for embedded C developers
- Zero Cost Abstractions
- Static
Guarantees.
Worthwhile in
std
Rust, too.
- including the
- the Embedenomicon > A note on compiler support
- sindresorhus/awesome =
project-awesome.org >
- Awesome Rust =
rust-unofficial/awesome-rust
- rust-unofficial/awesome-rust#embedded, its news & history and its RSS feed
- rust-unofficial/awesome-rust#ffi (no specific RSS feed; but you can subscribe to whole rust-unofficial/awesome-rust through GitHub or its RSS feed)
- rust-embedded - official working group
- rust-embedded/awesome-embedded-rust (including realtime OS and crates for various chipboards)
- Awesome Rust =
rust-unofficial/awesome-rust
- crates.io >
- Categories (out of total of 54) >
- No standard library (no-std)
- Embedded development, [crates.io
API bindings (FFI)](https://crates.io/categories/api-bindings)
- External FFI bindings
- Hardware support
- Keywords (out of many, so not easy to find) >
- no_std
- no-heap
- embedded
- embedded-database
- rtos
- bare metal
- embedded-hal (Hardware Abstraction Layer)
- embedded-hal-driver
- embedded-hal-impl
- check the above for how many crates or if popular
- sensor
- sdcard
- smartcard
- examples of crates (not necessarily recommended & only a few) *
- Categories (out of total of 54) >
- Python > CircuitPython and MicroPython, both for microcontrollers
- most likely not (Embedded)
CPython since it is "typical
Linux-based", hence
std
- rustc book > Platform support (and tiers)
Note:
TODO highlight selected lines with - or use delimiters as above
TODO put GitHub code line range link at a commit as an alternative - to make this
accessible.
arrform is an heapless no_std alternative to format!(...)
.
New to Rust? Exclamation mark indicates a macro invocation.