1.
Introduction
1.1.
Hardware
1.2.
no_std
1.3.
Tooling
1.4.
Installation
1.4.1.
Linux
1.4.2.
MacOS
1.4.3.
Windows
1.4.4.
Verify Installation
2.
Getting started
2.1.
QEMU
2.2.
Hardware
2.3.
Memory-mapped Registers
2.4.
Semihosting
2.5.
Panicking
2.6.
Exceptions
2.7.
Interrupts
2.8.
IO
3.
Peripherals
3.1.
A first attempt in Rust
3.2.
The Borrow Checker
3.3.
Singletons
4.
Static Guarantees
4.1.
Typestate Programming
4.2.
Peripherals as State Machines
4.3.
Design Contracts
4.4.
Zero Cost Abstractions
5.
Portability
6.
Concurrency
7.
Collections
8.
Design Patterns
8.1.
HALs
8.1.1.
Checklist
8.1.2.
Naming
8.1.3.
Interoperability
8.1.4.
Predictability
8.1.5.
GPIO
9.
Tips for embedded C developers
10.
Interoperability
10.1.
A little C with your Rust
10.2.
A little Rust with your C
11.
Unsorted topics
11.1.
Optimizations: The speed size tradeoff
Appendix A: Glossary
Light (default)
Rust
Coal
Navy
Ayu
The Embedded Rust Book
IO
TODO
Cover memory mapped I/O using registers.