Reading bootloader versions in embedded Rust

Introduction It’s been well over a year (perhaps almost two even) since I implemented this, so unfortunately I’ve already forgotton most of the story around it. However, I remember it was a huge struggle so I’ve been meaning to write it up for a while in the hope that it might help others in the future. It’s also just a nice reference for my future self :) Anyway, we’ve recently starting shipping a product powered by embedded Rust and Embassy! Embassy includes a great bootloader, but it was not easy to find a way to read the bootloader version from the application, so in this post I’ll briefly document how that was achieved. ...

September 24, 2026 · 7 min · Gerhard de Clercq
Renode Screenshot

Initial bare-metal testing with Renode

Introduction This is a follow up to my blog post on Bare-metal Rust bootstrapped by C. In this post, I want to discuss how I used the Renode emulator to verify that my setup works. I won’t go into too much detail about how to use Renode. I just want to discuss the part that was relevant for my tests. Installation The first step of getting started with Renode is obviously to install it. This is fairly simple, simply go to https://renode.io/#downloads, download the corresponding package for your operating system and install. I won’t bore you with any additional details :) ...

March 6, 2022 · 5 min · Gerhard de Clercq

Bare-metal Rust bootstrapped by C

Introduction As you might have noticed, Rust is already quite popular in the embedded space. And getting started with embedded Rust, even on a bare-metal level, isn’t all that difficult. However, I’m not a fan of the standard method as it has a bit too much magic for me. When it comes to embedded, I like to know exactly what is going on and that includes knowing the very first code which is run and “kicks off” the main code. As such, I have explored how to do this for the STM32F4-Discovery using C code which then fires up a Rust main function. In this blog post, I will give an overview of the process that I followed. ...

February 19, 2022 · 11 min · Gerhard de Clercq