ManningBooks

ManningBooks

Devtalk Sponsor

Embedded Software with Rust (Manning)

Embedded Software with Rust is a practical introduction to building firmware that is fast, efficient, and far safer than traditional embedded software written in C or C++. Rust gives developers the low-level control embedded systems demand, but adds modern guarantees around memory safety, data races, and error handling. In a field where a single bug can cause crashes, security flaws, or costly field failures, those guarantees are a major advantage.

David Cabanis

Embedded firmware has always demanded close control over hardware: memory-mapped registers, interrupts, linker scripts, startup code, timing, and strict resource limits. Traditionally, that has meant C or C++, along with all the familiar risks around pointer misuse, undefined behavior, data races, and fragile error handling.

Rust offers another path. It gives embedded developers low-level control while adding compile-time checks for memory safety, ownership, borrowing, and concurrency. For firmware running in consumer devices, industrial systems, vehicles, medical equipment, robotics, and edge platforms, those guarantees matter.

Embedded Software with Rust is a practical guide to building bare-metal firmware in Rust. It starts with the foundations and moves steadily toward working hardware-focused development, showing how Rust’s language features connect directly to embedded tasks.

Inside the book, you’ll learn how to:

  • Set up an embedded Rust development environment

  • Build and inspect firmware with Cargo, cargo-binutils, GNU tools, OpenOCD, probe-rs, and QEMU

  • Configure no_std projects for bare-metal execution

  • Understand the reset-to-main() path on Cortex-M systems

  • Define memory layouts with linker scripts and memory.x

  • Work with startup code, vector tables, exceptions, and interrupts

  • Share data safely between main code and interrupt handlers

  • Use PACs, HALs, BSPs, and embedded-hal traits

  • Manage memory in constrained systems

  • Interoperate with C as part of a migration path

The book is hands-on throughout. Early chapters walk through toolchain setup, project structure, no_std configuration, linker scripts, and minimal startup. Later chapters expand into memory-mapped I/O, debugging, profiling, stack and heap management, async and RTOS compatibility, performance tuning, and Rust-C integration.

A big strength of the book is that it explains what is happening underneath the abstractions. You won’t only use cortex-m-rt, embedded-hal, or a board support crate; you’ll also see how the reset handler, vector table, .data copying, .bss zeroing, panic behavior, and interrupt dispatch actually fit together.

The book is written for software engineers with basic Rust knowledge. Prior embedded experience helps, but the text introduces the needed background step by step. Experienced firmware engineers coming from C or C++ will also find plenty of familiar ground, especially around build/debug workflows, hardware registers, linker configuration, and interrupt-driven design.

About the author: Dr David Cabanis is Principal Engineer at Doulos, specializing in Arm embedded software, FPGA and SoC design, and system-level modeling. He is an ARM Accredited Engineer, MCU Engineer, and former ARM Certified Trainer, with deep practical experience in embedded Rust.


Don’t forget you can get 45% off with your Devtalk discount! Just use the coupon code “devtalk.com” at checkout :+1:

Where Next?

Popular Backend topics Top

PragmaticBookshelf
For decades, voice-enabled computers have only existed in the realm of science fiction. But now the Alexa Skills Kit (ASK) lets you devel...
New
PragmaticBookshelf
Don’t accept the compromise between fast and beautiful: you can have it all. Phoenix creator Chris McCord, Elixir creator José Valim, and...
New
PragmaticBookshelf
Your domain is rich and interconnected, and your API should be, too. Upgrade your web API to GraphQL, using flexible queries to empower y...
New
PragmaticBookshelf
Do less work when testing your Python code, but be just as expressive, elegant, and readable. The pytest testing framework helps you writ...
New
PragmaticBookshelf
Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. Thi...
New
PragmaticBookshelf
You don’t have to leave the rich Java Platform to take advantage of Groovy. Groovy preserves Java’s semantics and extends the JDK, so pro...
New
PragmaticBookshelf
Write Elixir tests that you can be proud of. Dive into Elixir’s test philosophy and gain mastery over the terminology and concepts that u...
New
PragmaticBookshelf
Learn network programming with Erlang and Elixir. Build reliable and scalable network systems, and understand why this platform is a perf...
New
PragmaticBookshelf
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic. Sam Ruby @rubys ...
New
PragmaticBookshelf
This book forgoes the abstract and instead provides concrete examples to help you better leverage the unique properties of Elixir, Erlang...
New

Other popular topics Top

PragmaticBookshelf
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you’ll go beyond the syntax—and...
New
AstonJ
There’s a whole world of custom keycaps out there that I didn’t know existed! Check out all of our Keycaps threads here: https://forum....
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
PragmaticBookshelf
Tailwind CSS is an exciting new CSS framework that allows you to design your site by composing simple utility classes to create complex e...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
PragmaticBookshelf
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic. Sam Ruby @rubys ...
New
PragmaticBookshelf
A concise guide to MySQL 9 database administration, covering fundamental concepts, techniques, and best practices. Neil Smyth MySQL...
New
xiji2646-netizen
There’s a GitHub repo at forrestchang/andrej-karpathy-skills that’s sitting at 97.8k stars. It’s a single CLAUDE.md file with four behavi...
New