Skip to content

Reference

Deep-dive reference material for the Linux in Embedded Systems course. These pages contain the full theory — mathematics, architecture diagrams, comparison tables, and design guidelines — that support the hands-on Tutorials.

For the week-by-week schedule, see the Semester Lab Track.


Reference Pages

How to Use

Tutorials explain concepts inline (5–15 lines) right where you need them. These Reference pages hold the deeper content — math, architecture diagrams, comparison tables — that is too long to inline or shared across many tutorials. Follow the links from tutorials when you want more depth.

# Topic Summary Key Tutorials
1 What Is Embedded Linux? Linux under constraints — when to choose it, hardware requirements, the layered stack, history and emerging trends SSH Login, Exploring Linux
2 How Linux Works Processes, files, VFS, permissions, services, IPC, scheduling, MMU, scripting, and debugging Exploring Linux, Processes and IPC, Threads and Synchronization, ELF and Program Execution
3 Graphics Stack in Embedded Linux Framebuffer vs DRM/KMS vs full GUI — choosing the right graphics level, display interfaces, tearing Framebuffer Basics, DRM/KMS Test, Single-App UI
3b Camera and Display Interfaces MIPI D-PHY, CSI-2, DSI, HDMI, SPI — differential signaling, bandwidth math, ISP pipeline, EDID, protocol packets Camera Pipeline, DSI Display, SPI Display
3c Qt Quick for Embedded Linux QML + C++ architecture, property bindings, EGLFS platform plugin, build system, development workflow Qt Dashboard, Qt App Launcher
4 Boot Flow and Architectures Power-on to application — boot stages, MCU vs SoC vs PC, secure boot, timing and optimization Boot Timing Lab, Buildroot
5 Device Tree and Drivers How Linux discovers hardware — DT nodes, overlays, driver binding, kernel vs user space, interfaces MCP9808 Driver, BMI160 SPI Driver, BUSE Driver
6 Real-Time Systems Design PREEMPT_RT, latency budgets, schedulability analysis, control theory, and heterogeneous architectures PREEMPT_RT Latency, Jitter Measurement, MCU RT Controller
7 Why Build Your Own Linux? Buildroot vs Yocto — custom images for boot time, reliability, security, and the toolchain Buildroot, Buildroot SDL2 Image
8 IoT, Networking, and Security MQTT, CoAP, attack surfaces, CVE case studies, hardening, OTA updates, and regulatory compliance Security Audit, Data Logger
9 Real-Time Graphics and Display Pipelines VSync, page flipping, sensor-to-pixel latency, core partitioning, and DMA Level Display SDL2, Display Apps, SPI DMA Optimization
10 Reliability, Updates, and Watchdogs Read-only root, overlayfs, A/B updates, watchdogs, failure rate math, and power-loss testing Data Logger, Buildroot
11 Industrial I/O (IIO) Subsystem IIO architecture, channels, triggers, buffers, DMA integration, and userspace tools BMI160 SPI Driver, IIO Buffered Capture, Custom IIO Driver
12 DMA Fundamentals DMA engine, coherent vs streaming, scatter-gather, measuring DMA impact SPI DMA Optimization, IIO Buffered Capture
13 Linux Input Subsystem Event types, evdev, uinput virtual devices, multi-touch protocol, coordinate calibration, and input latency Input Events, Display Apps, SPI Display, Doom on Pi
14 Software Architecture for Embedded Linux Process patterns (monolithic, supervisor, pipeline), IPC selection, layered design, state machines, error handling, systemd service design, project structure Data Logger, Qt App Launcher, Kiosk Service
15 Performance Profiling for Embedded Linux Measure-profile-fix workflow, perf/strace/ftrace usage, common bottleneck patterns, optimization priority list, embedded-specific considerations Jitter Measurement, Ball Detection, SPI DMA Optimization
16 Signal Processing for Embedded Systems Sampling, FFT, filtering, cross-correlation, biquad filters, CPU vs DSP vs FPGA architecture decisions, fixed-point arithmetic, real-time budgets Audio Visualizer, Audio Viz Challenges
17 ML and Signal Processing When to use DSP vs classical ML vs deep learning, feature engineering for audio and vision, CNN deployment on Pi, quantization, parallel concepts across audio and image domains Acoustic Keystroke, Ball Detection, Audio Visualizer
18 Serial Bus Interfaces: I2C, SPI, I2S Protocol details, electrical characteristics, clock modes, Linux kernel subsystems, Device Tree configuration, debugging, and design tradeoffs for the three serial buses MCP9808 Driver, BMI160 SPI, Audio Visualizer

Capstone: IMU Level Display Track

The primary course project — a progressive track that builds an IMU-based leveling display, exercising SPI kernel driver development, custom image building, DRM/KMS graphics, real-time performance measurement, and boot optimization.

Step What Reference Tutorial
1 Write an SPI kernel driver for BMI160 Device Tree and Drivers BMI160 SPI Driver
2 Prototype level display in Python Real-Time Graphics Level Display Python
3 Build tear-free SDL2 display Graphics Stack, Real-Time Graphics Level Display SDL2
4 Measure and optimize boot time Boot Flow and Architectures Boot Timing Lab
5 Build custom image with SDL2 + SPI Building Custom Linux Buildroot SDL2
6 Measure jitter, compare standard vs RT Real-Time Systems, Real-Time Graphics Jitter Measurement
7 Optimize SPI with DMA and FIFO Real-Time Graphics SPI DMA Optimization

Alternative Capstone: Quick Start Path

A lighter end-to-end project for self-study or shortened semesters:

Step What Reference Tutorial
1 Build a minimal Linux image Building Custom Linux Buildroot
2 Run a single fullscreen status UI Graphics Stack Single-App UI
3 Add resilient data logging Reliability and Updates Data Logger
4 Optional: headless camera processing Camera Pipeline

Course Overview