Rust’s growing ecosystem provides a range of tools and frameworks designed for embedded systems development, each catering to specific needs in debugging, concurrency, and operating systems.
These are either mature or stable projects in the rust ecosystem.
Debugger: probe-rs
probe-rs is an open-source debugging toolkit written in Rust, designed to program and debug microcontrollers via debug probes. It supports ARM and RISC-V targets.
This project gets rid of the GDB layer and provides a direct interface to the debug probe, which then enables other software to use its debug functionality.
Learn more at probe.rs.
Frameworks for Concurrency and Real-Time Systems
RTIC (Real-Time Interrupt-driven Concurrency) ('*'RTOS)
RTIC is a lightweight framework for building real-time systems, particularly suited for ARM Cortex-M microcontrollers. It leverages hardware interrupts for task management, ensuring minimal overhead and high efficiency.
Key features include:
-
Event-triggered task management
-
Shared memory through a single call stack
-
Support for real-time applications requiring precise interrupt handling
Explore more on the RTIC.
Embassy.rs
Embassy is an asynchronous framework enabling efficient, non-blocking concurrency using Rust’s async/await syntax.It simplifies the handling of multiple I/O operations without manually writing state machines.
Key features:
-
Cooperative multitasking
-
Integrated HALs for supported microcontrollers
-
Ideal for I/O-bound applications
Learn more on Embassy
Operating System: Tock OS
Tock is an embedded operating system written in Rust, designed for safety and isolation. It employs a microkernel architecture, making it suitable for running multiple concurrent applications securely.
Its key features include:
-
Concurrency and fault isolation
-
Efficient memory management
-
Discover more about Tock OSSecure execution of untrusted applications alongside critical tasks