<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture on Aaron Qian</title><link>https://aaronqian.com/tags/architecture/</link><description>Recent content in Architecture on Aaron Qian</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 14 Aug 2026 15:05:35 -0700</lastBuildDate><atom:link href="https://aaronqian.com/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>A chip-agnostic architecture for bare-metal embedded Rust</title><link>https://aaronqian.com/log/2026-08-01-chip-agnostic-architecture-bare-metal-rust/</link><pubDate>Sat, 01 Aug 2026 16:26:42 +0000</pubDate><guid>https://aaronqian.com/log/2026-08-01-chip-agnostic-architecture-bare-metal-rust/</guid><description>&lt;p&gt;Embedded Rust has excellent building blocks like HALs, PACs, and async executors. But very little is published about how to structure a serious firmware project on top of them. Most examples stop at blinky with a HAL. What does the architecture look like when you have a real protocol stack, a motor control loop, a dozen interacting peripherals, and the ambition to support more than one chip? And what if you are bare-metal, with no RTOS and no async executor, just interrupt handlers and a main loop?&lt;/p&gt;
&lt;p&gt;This article documents the architecture &lt;a
 href="https://github.com/OpenServoCore"
 
 target="_blank" rel="noopener"
&gt;OpenServoCore&lt;/a&gt;
&amp;rsquo;s firmware actually uses, in enough detail to build it for your own project. Overview first, then a zoom into every layer with its internal organization and a code example, all the way down to the discrete-event simulation. The architecture has earned some trust the hard way. The firmware&amp;rsquo;s entire wire protocol was ripped out and replaced mid-project, and the layering held. The logic layers compile and unit-test on a desktop with no hardware attached. And the simulation caught over a dozen real bugs before they ever reached silicon.&lt;/p&gt;
&lt;p&gt;The code examples are teaching-sized but structurally faithful to the shipping code, and the codebase itself is &lt;a
 href="https://github.com/OpenServoCore/open-servo-core"
 
 target="_blank" rel="noopener"
&gt;public&lt;/a&gt;
 if you want the full-scale version. If you are new here, the &lt;a
 href="https://aaronqian.com/log/2024-12-15-open-servo-core-overview/"
 
 
&gt;project overview&lt;/a&gt;
 has the background.&lt;/p&gt;</description></item></channel></rss>