
Unsafe Rust Explained and What the Keyword Really Promises
A guide to unsafe Rust: what the keyword allows, the contract it creates, how to wrap it in a safe API, how to check it with Miri and where it is actually needed.
Close to the metal: memory layout, no_std, unsafe, FFI and the microcontroller on your desk.

A guide to unsafe Rust: what the keyword allows, the contract it creates, how to wrap it in a safe API, how to check it with Miri and where it is actually needed.

In no_std a panic handler is mandatory. Compare panic-halt, panic-abort, panic-probe and a custom handler, and how panic = abort and the core panic machinery fit together.

Boot a minimal Rust kernel in QEMU: a no_std crate, the bootloader crate, a disk image, a panic handler and writing text to the serial port in a few dozen lines.

A plan for writing an operating system kernel in Rust: the order of milestones from booting to a shell, which crates help, what to read and the traps at each stage.

RTIC schedules interrupt driven tasks with compile time priorities; Embassy runs async tasks cooperatively. Compare the models, resource sharing, latency and when each fits.

Memory mapped registers are fixed addresses you read and write with volatile access. See how a PAC generated by svd2rust wraps them safely, and how HALs build on top.

Debug embedded Rust with probe-rs: defmt logging over RTT, panic-probe, breakpoints in VS Code, reading hard faults and what to check when nothing prints.

Program an STM32 in Rust with probe-rs: pick the target, create a project from the cortex-m template, use embassy-stm32 or a PAC and HAL, flash, log and debug.

Blink an LED on a Raspberry Pi Pico in async Rust with Embassy: toolchain target, memory.x, probe-rs runner, the main task and a second task with a button.

embedded-hal defines traits for pins, buses and delays so one sensor driver runs on any chip. Write a driver generic over I2C and see how to test it with a mock.

no_std removes the standard library and leaves core. See what you lose, what core and alloc still give you, and how to write crates that work both ways.

A guide to embedded Rust from the first blinking LED to firmware structure: no_std, the HAL traits, runtimes, flashing, debugging and size.
We send one email when a new post is published. No spam.