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
Real-time applications come with real challenges—persistent connections, multi-server deployment, and strict performance requirements are...
New
PragmaticBookshelf
Take your Go skills to the next level by learning how to design, develop, and deploy a distributed service. Start from the bare essential...
New
PragmaticBookshelf
Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly—you concentrate on creating the application, and...
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
Is your current programming language ready for tomorrow? Elixir is. Elixir is a modern, functional language built on the Erlang VM. ...
New
PragmaticBookshelf
Construct, analyze, and visualize networks with networkx, a Python language module. Discover how to work with social, product, temporal, ...
New
PragmaticBookshelf
Build a working binary clock using Elixir, Nerves, and OTP. Control complexity in your projects using a layered approach to software desi...
New
PragmaticBookshelf
Communicate more clearly, refactor more effectively, and save time with attractive diagrams that only take minutes to make with open sour...
New
PragmaticBookshelf
Use event sourcing to solve complex software development problems by modeling your application as a stream of immutable events and their ...
New
PragmaticBookshelf
Hone your Clojure skills and validate your understanding as you explore the design decisions behind this data-driven functional programmi...
New

Other popular topics Top

PragmaticBookshelf
Learn from the award-winning programming series that inspired the Elixir language, and go on a step-by-step journey through the most impo...
New
PragmaticBookshelf
Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to soci...
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
AstonJ
Curious to know which languages and frameworks you’re all thinking about learning next :upside_down_face: Perhaps if there’s enough peop...
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
PragmaticBookshelf
Use WebRTC to build web applications that stream media and data in real time directly from one user to another, all in the browser. ...
New
AstonJ
If you get Can't find emacs in your PATH when trying to install Doom Emacs on your Mac you… just… need to install Emacs first! :lol: bre...
New
Help
I am trying to crate a game for the Nintendo switch, I wanted to use Java as I am comfortable with that programming language. Can you use...
New
RobertRichards
Hair Salon Games for Girls Fun Girls Hair Saloon game is mainly developed for kids. This game allows users to select virtual avatars to ...
New