Posts

Building a Lightweight Logging Framework for MicrOS – Part 4: Extending the Framework

In Part 3, we gave MicrOS logging compile-time filtering and per-module verbosity control. That already makes it a powerful tool for day-to-day development. But what if we want to push further? In this final part of the series, I’ll explore runtime flexibility, multiple backends, timestamps, and structured logs. These are…

Read MoreBuilding a Lightweight Logging Framework for MicrOS – Part 4: Extending the Framework

Building a Lightweight Logging Framework for MicrOS – Part 3: Compile-Time and Per-Module Filtering

In Part 2, we added colors, severity tags, and file/line information to MicrOS logs. Now we’re going to take it further: instead of just printing everything, we’ll give developers fine-grained control over what gets logged. This is crucial in embedded systems, where every byte of flash and every CPU cycle…

Read MoreBuilding a Lightweight Logging Framework for MicrOS – Part 3: Compile-Time and Per-Module Filtering

Building a Lightweight Logging Framework for MicrOS – Part 2: Coloring and Structuring Logs

In Part 1 of this series, I explained why logging matters for MicrOS and how we started with a simple design: log levels, a global ceiling, and per-module registration. That gave us the skeleton of a logging system — but the output was still plain and hard to scan. In…

Read MoreBuilding a Lightweight Logging Framework for MicrOS – Part 2: Coloring and Structuring Logs

Building a Lightweight Logging Framework for MicrOS – Part 1: Why Logging Matters in an RTOS

When working with microcontrollers, debugging can feel like peering through a keyhole. Unlike desktop development, there’s no rich OS to lean on, no debugger always attached, and no full-featured console to tell you what went wrong. If your system crashes, often the only trace left is whatever text you managed…

Read MoreBuilding a Lightweight Logging Framework for MicrOS – Part 1: Why Logging Matters in an RTOS

MicrOS Initialization Framework: Structured Startup for Embedded Systems

One of the challenges of building an embedded operating system is handling system initialization in a clean, modular way. As MicrOS grows, we don’t want board bring-up code, driver setup, and diagnostics all crammed inside main(). That’s why we’ve added a lightweight initialization framework to MicrOS, inspired by how Linux…

Read MoreMicrOS Initialization Framework: Structured Startup for Embedded Systems

⚙️ MicrOS Internals: Yielding with SysTick and PendSV

In the last article, we looked at how PendSV swaps thread contexts using prebuilt stack frames. Now it’s time to give our kernel a proper yield mechanism — so threads can give up the CPU voluntarily, or automatically via a timer tick. The Yield API MicrOS provides task_yield() as the…

Read More⚙️ MicrOS Internals: Yielding with SysTick and PendSV

MicrOS Internals: How Stack Frames and PendSV Drive Context Switching

One of the most magical parts of an RTOS is when the CPU suddenly stops running one function and starts running another — as if by sleight of hand. In MicrOS, this magic is powered by the PendSV exception and carefully constructed stack frames for each thread. This post goes…

Read MoreMicrOS Internals: How Stack Frames and PendSV Drive Context Switching

🔄 Context Switching in MicrOS — From Bare Metal to Multitasking

With the LM3S8965EVB QEMU target, MicrOS has taken its first big step into becoming a real operating system:we now support context switching and a simple task API. In this post, I’ll explain what a context switch is, why it matters, and how MicrOS makes it work on ARM Cortex-M (LM3S).…

Read More🔄 Context Switching in MicrOS — From Bare Metal to Multitasking

MicrOS boots successfully on QEMU 🎉

For the last couple of days I’ve been battling with my custom embedded operating system — MicrOS (slogan: “simple, open, embedded”). The goal was straightforward: get a bare-metal “Hello, world” sample running under emulation, before moving to real hardware. The journey turned out to be more educational than I expected.…

Read MoreMicrOS boots successfully on QEMU 🎉

Welcome to MicrOS

MicrOS is a new open-source embedded operating system designed to be simple, open, and educational.It’s inspired by great projects like Zephyr, FreeRTOS, and RIOT, but with a twist: MicrOS aims to stay small, transparent, and beginner-friendly. 🎯 Why MicrOS? The embedded ecosystem is rich with feature-packed RTOSes. They are powerful,…

Read MoreWelcome to MicrOS