<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Embedded OS &amp; SBC Platforms on Embedded Systems Development</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/</link><description>Recent content in Embedded OS &amp; SBC Platforms on Embedded Systems Development</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/index.xml" rel="self" type="application/rss+xml"/><item><title>SBC &amp; Compute Module Selection Guide</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/sbc-selection-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/sbc-selection-guide/</guid><description>&lt;h1 id="sbc--compute-module-selection-guide"&gt;SBC &amp;amp; Compute Module Selection Guide&lt;a class="anchor" href="#sbc--compute-module-selection-guide"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Once a project points toward an MPU or SBC rather than a bare-metal MCU — see
&lt;a href="https://applied-ee.github.io/embedded/docs/foundations/choosing-the-right-mcu/mcu-vs-mpu/"&gt;MCU vs MPU&lt;/a&gt; for the decision boundary — the next
question becomes which platform fits the application requirements. The
single-board computer and compute module market has expanded well beyond the
Raspberry Pi, and different boards optimize for different axes: raw compute,
GPU/NPU acceleration, real-time I/O, power efficiency, production readiness, or
simply ecosystem maturity and community support.&lt;/p&gt;</description></item><item><title>Embedded OS Landscape</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/embedded-os-landscape/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/embedded-os-landscape/</guid><description>&lt;h1 id="embedded-os-landscape"&gt;Embedded OS Landscape&lt;a class="anchor" href="#embedded-os-landscape"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Once an MPU-class platform is chosen, the operating system defines how applications interact with hardware. The choice spans from full Linux distributions to lightweight RTOSes running on MPU-capable chips. Each option makes tradeoffs across boot time, image size, real-time capability, package availability, and long-term maintainability. Understanding the practical characteristics of each OS option — not just the marketing pitch — is essential for avoiding costly migrations later in a project.&lt;/p&gt;</description></item><item><title>Real-Time Constraints on Linux</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/real-time-linux/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/real-time-linux/</guid><description>&lt;h1 id="real-time-constraints-on-linux"&gt;Real-Time Constraints on Linux&lt;a class="anchor" href="#real-time-constraints-on-linux"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Standard Linux is not a real-time operating system. The kernel can preempt user tasks at any time, but kernel code itself has sections that run with preemption disabled — creating unbounded worst-case latencies. For embedded applications that need deterministic timing (motor control, audio processing, high-speed data acquisition), this matters. The difference between a 15 µs average scheduling latency and a 2000 µs worst-case spike is the difference between a control loop that tracks its setpoint and one that overshoots into a mechanical stop.&lt;/p&gt;</description></item><item><title>GPIO &amp; Peripheral Access: Linux vs Bare-Metal</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/gpio-peripherals-linux-vs-mcu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/gpio-peripherals-linux-vs-mcu/</guid><description>&lt;h1 id="gpio--peripheral-access-linux-vs-bare-metal"&gt;GPIO &amp;amp; Peripheral Access: Linux vs Bare-Metal&lt;a class="anchor" href="#gpio--peripheral-access-linux-vs-bare-metal"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;On a bare-metal MCU, toggling a GPIO pin means writing directly to a memory-mapped register — a single instruction, deterministic, and immediate. On Linux, that same operation passes through kernel drivers, userspace APIs, and scheduling layers. The abstraction provides safety and portability but introduces latency and non-determinism that fundamentally changes what GPIO can and cannot do.&lt;/p&gt;
&lt;p&gt;Understanding the available access methods, their performance characteristics, and their limitations is essential for choosing the right approach on a Linux-based SBC. Some tasks that are trivial on a bare-metal MCU — bit-banging a custom protocol, generating a precisely-timed PWM signal — become difficult or impossible through a standard Linux GPIO interface. Other tasks — managing dozens of I²C sensors, driving SPI displays while running a network stack — become dramatically easier with a full OS underneath.&lt;/p&gt;</description></item><item><title>Image-Based Deployments &amp; System Updates</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/image-based-deployments/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/image-based-deployments/</guid><description>&lt;h1 id="image-based-deployments--system-updates"&gt;Image-Based Deployments &amp;amp; System Updates&lt;a class="anchor" href="#image-based-deployments--system-updates"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Deploying software to an embedded Linux device is fundamentally different from deploying firmware to an MCU. Instead of flashing a single binary, the deployment unit is an entire OS image — kernel, root filesystem, configuration, and application — or a carefully managed set of packages. How that image gets built, written to storage, and updated in the field determines the reliability and maintainability of the product. A device that can be updated safely and rolled back on failure is a device that can survive years of field deployment. A device that cannot is a device that eventually becomes e-waste.&lt;/p&gt;</description></item><item><title>Boot Process &amp; System Configuration</title><link>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/boot-process-and-configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://applied-ee.github.io/embedded/docs/foundations/embedded-os-sbc/boot-process-and-configuration/</guid><description>&lt;h1 id="boot-process--system-configuration"&gt;Boot Process &amp;amp; System Configuration&lt;a class="anchor" href="#boot-process--system-configuration"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;An embedded Linux device goes through multiple firmware stages before the application code runs. Understanding this sequence — and where each stage can be configured, measured, and optimized — is essential for reducing boot time, debugging startup failures, and building reliable systems that recover from faults.&lt;/p&gt;
&lt;p&gt;The boot chain is deterministic: each stage loads and validates the next, handing off control in a fixed order. A failure at any stage halts the process, and the symptoms observed at the serial console directly indicate which stage failed. Knowing the chain makes root-cause analysis straightforward.&lt;/p&gt;</description></item></channel></rss>