Summary
Introduction
Hardware
no_std
Tooling
Installation
Linux
MacOS
Windows
Verify Installation
Getting started
QEMU
Hardware
Memory-mapped Registers
Semihosting
Panicking
Exceptions
Interrupts
IO
Peripherals
A first attempt in Rust
The Borrow Checker
Singletons
Static Guarantees
Typestate Programming
Peripherals as State Machines
Design Contracts
Zero Cost Abstractions
Portability
Concurrency
Collections
Tips for embedded C developers
Interoperability
A little C with your Rust
A little Rust with your C
Unsorted topics
Optimizations: The speed size tradeoff
Appendix A: Glossary