Schedule
Week by week
The same thirteen modules fit a 10-week quarter or a 14-week semester. The semester does not add topics; it gives the hardest ones a second lab.
10-week quarter outline
Two lectures and one three-hour lab a week. Each lab's objective, parts and deliverables are on the students' labs page.
| Week | Lecture topics | Lab |
|---|---|---|
| 1 | What an embedded system is; microcontroller vs embedded Linux; OS images, checksums and boot media; the serial console and the shell. Module 0 | Lab 1: First boot |
| 2 | What a board is made of: the system-on-chip, memory, storage, clock and I/O; first power-on: regulators, rails, sequencing, reset. Modules 1 and 2 | Lab 2: Board anatomy and power rails |
| 3 | The boot ROM: boot-media order, USB boot; why the first stage runs from on-chip SRAM. Modules 3 and 4 | Lab 3: Boot ROM and the SRAM stage |
| 4 | Memory bring-up: timings, training, size detection; exception levels; the secure monitor and U-Boot; the memory map. Modules 5 and 6 | Lab 4: Memory and the bootloader |
| 5 | UEFI and generic distributions; the kernel boot: device tree, driver probe, initramfs, root filesystem, init and systemd. Modules 7 and 8 | Lab 5: UEFI and Linux boot |
| 6 | The device tree and pin multiplexing; overlays; GPIO: the electrical limits of a 3.3 V header, pull-ups, edges; libgpiod; latency in a general-purpose OS. Modules 9 and 10 | Lab 6: Device tree and GPIO |
| 7 | I2C: addressing, transactions, register maps. SPI: modes and chip select. Decoding buses on a logic analyser. Module 10 | Lab 7: I2C and SPI |
| 8 | UART: framing, baud rate, flow control. Drivers: the kernel driver model, user space vs kernel space, a minimal kernel module. Modules 10 and 11 | Lab 8: UART and a driver |
| 9 | Putting it together: PWM, thermals, watchdogs and read-only root filesystems, recovery, security basics. Module 12 | Lab 9: Project build and recovery |
| 10 | Project presentations; where embedded Linux goes next: Yocto and Buildroot, real-time Linux, contributing upstream | Lab 10: Project demo |
| Finals | None | Project report and repository due |
14-week semester outline
The semester version covers the same modules. The extra weeks give the hardest topics a second lab instead of adding new material.
| Weeks | Content |
|---|---|
| 1–2 | Flash and first boot, plus a second lab on the shell, images, checksums and flashing from a desktop PC |
| 3 | Board anatomy and power rails |
| 4 | Boot ROM and the SRAM stage |
| 5–6 | Memory bring-up, then the bootloader, each with its own lab; the second builds U-Boot for the kit board from source |
| 7 | UEFI and Linux boot |
| 8–9 | Device tree, then GPIO, each with its own lab; the GPIO lab adds interrupts, PWM and a real-time comparison against a microcontroller |
| 10 | I2C and SPI |
| 11–12 | UART, then the driver, each with its own lab; the kernel module becomes required |
| 13–14 | Project build with the checkpoint and the boot-recovery exercise and its runbook (lab 9), then the demo (lab 10) |
| Finals | Project report and repository due |