FRM-110 · Firmware & MCU · Practitioner
RTOS Fundamentals: Zephyr & FreeRTOS — full syllabus
Task scheduling, synchronisation and driver models in a small real-time operating system.
Who this course is for
Embedded engineers whose superloop has outgrown itself, and Linux developers new to MCUs, who need tasking, synchronisation and a driver model that fit in kilobytes.
Prerequisites
- C programming on any platform
- FRM-101-level basics: interrupts and memory-mapped registers
- A laptop able to run the Zephyr and FreeRTOS toolchains (lab boards provided)
Course outline
Day 1 — Tasks and scheduling
- The task model: states, stacks and the context switch on Cortex-M
- Preemptive priority scheduling and what the tick actually does
- Assigning priorities: rate-monotonic reasoning and response-time budgets
- FreeRTOS task APIs versus Zephyr threads; static versus dynamic allocation
- Idle work, tickless idle and a first look at power states
Day 2 — Synchronisation and interrupts
- Semaphores, mutexes, queues and notifications: choosing the right primitive
- Priority inheritance, and reproducing an inversion on purpose
- Interrupt-to-task handoff: deferring work through queues, notifications and workqueues
- Races between ISR and task: critical sections versus lock-free handoff
- Deadlock patterns in small systems and how to rule them out
Day 3 — Zephyr as a platform; memory protection
- The Zephyr build system: west, Kconfig and devicetree as one configuration surface
- The Zephyr device model: binding drivers through devicetree
- Porting an application between boards by changing devicetree, not code
- Stack sizing, high-water marks and overflow detection
- MPU-based memory protection and userspace threads: what it buys and what it costs
Hands-on labs
- Lab: build the same multi-task application in FreeRTOS and Zephyr and compare scheduling behaviour and footprint
- Lab: reproduce priority inversion on a shared mutex, measure the blocking, fix it with priority inheritance and re-measure
- Lab: hand data from an ISR to a task through a queue, stress it at full rate, and prove no sample is lost or corrupted
- Lab: describe a sensor in Zephyr devicetree, bind the driver, and move the build to a second board by changing only the overlay
- Lab: size task stacks from high-water-mark measurements, enable overflow detection, and catch an injected overflow before it corrupts
Capstone project
Port a single-threaded sensor/control superloop to a properly partitioned RTOS application: justified task priorities, ISR-to-task handoff, stack sizes derived from measured high-water marks, and a watchdog recovery path. Deliver the task graph, the priority rationale, scheduling traces showing worst-case response, and a stress-run evidence pack proving your shared-state invariants hold.
What you leave with
- A task-priority assignment method grounded in response-time budgets
- Working skill with semaphores, mutexes, queues and priority inheritance in both RTOSes
- Zephyr fluency: west, Kconfig, devicetree and the device model
- Stack sizing and overflow-detection practice that survives review
- An interrupt-to-task handoff pattern that is provably race-free
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 11 Oct – 13 Oct 20263 full days | RiyadhIn person · KAFD Conference Centre | 3 of 14 | — | SAR 7,880 | |
| 18 Oct – 20 Oct 20263 full days | Kuwait CityIn person · Al Hamra Tower | 8 of 14 | — | KWD 650 | |
| 25 Oct – 27 Oct 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 3 of 14 | — | OMR 810 | |
| 25 Oct – 1 Nov 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 7 of 20 | — | US$1,500 | |
| 26 Oct – 28 Oct 20263 full days | OttawaIn person · Kanata North Tech Park | 8 of 14 | — | CAD 2,860 | |
| 2 Nov – 4 Nov 20263 full days | TorontoIn person · MaRS Discovery District | 3 of 14 | — | CAD 2,860 | |
| 2 Nov – 9 Nov 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 12 of 20 | — | US$1,500 | |
| 9 Nov – 11 Nov 20263 full days | LondonIn person · Shoreditch Works | 8 of 14 | GBP 1,480until 10 Oct | ||
| 9 Nov – 16 Nov 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 17 of 20 | US$1,350until 10 Oct | ||
| 16 Nov – 18 Nov 20263 full days | BerlinIn person · Factory Görlitzer Park | 3 of 14 | EUR 1,740until 17 Oct |
Book a seat, or bring this course to your team
Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.