FRM-110 · Firmware & MCU

RTOS Fundamentals: Zephyr & FreeRTOS

Task scheduling, synchronisation and driver models in a small real-time operating system.

Practitioner 3 days in person6 half-days online Max 14 in person

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 platformFRM-101-level basics: interrupts and memory-mapped registersA 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

Labs follow the academy model — 35% principles, 20% guided investigation, 45% engineering studio. Every claim you make in a lab is backed by a trace, a counter or a measurement you captured yourself. How we teach

  1. Lab: build the same multi-task application in FreeRTOS and Zephyr and compare scheduling behaviour and footprint
  2. Lab: reproduce priority inversion on a shared mutex, measure the blocking, fix it with priority inheritance and re-measure
  3. 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
  4. Lab: describe a sensor in Zephyr devicetree, bind the driver, and move the build to a second board by changing only the overlay
  5. 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

How it runs

Every course follows the same model: 35% principles, 20% guided investigation, 45% engineering studio. You leave with working code, raw measurements and an evidence-based report — not a certificate of attendance. Read the methodology or see a full sample lesson.

Material is adapted to your kernel version, hardware and workload before a private delivery. For public cohorts, the environment is provided and configured.

Questions

Who is this course 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. It sits at practitioner level within the Firmware & MCU track.

What do I need to know already?

Specific prerequisites for this course: 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). We confirm levels before the cohort starts and adapt if a group is stronger or weaker than expected.

Can this run privately for my team?

Yes. Any course runs on-site at your offices anywhere, or live online for a distributed team, with labs adapted to your hardware and codebase.

What is the difference between in-person and online?

In person is 3 full days with hardware on your desk, capped at 14. Online is 6 half-day sessions across about two weeks so you can keep working, capped at 20, with remote lab access.

Do you invoice companies?

Yes. Purchase orders are accepted and invoicing is available in USD, EUR, GBP, SAR and CAD.

Upcoming dates

DatesWhereSeatsEarly birdRegular
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 OctGBP 1,640
9 Nov – 16 Nov 20266 half-days Americas bandLive online · 13:00–17:00 ET 17 of 20 US$1,350until 10 OctUS$1,500
16 Nov – 18 Nov 20263 full days BerlinIn person · Factory Görlitzer Park 3 of 14 EUR 1,740until 17 OctEUR 1,930

Dates shown for the next few months. If nothing fits, tell us where and when — cohorts are added on demand, and private delivery can be scheduled any week.

More in Firmware & MCU