Why Use An Embedded RTOS? (2026-09-23 - 2026-09-24)#

Intro#

  • Coin terminology: “Interrupt”, “ISR”, “IRQ”, “Spinlock”, “Thread”, “Scheduling”, …

  • Quick look into Zephyr, and its in-course substitute, WhyOS

Interrupt Handling#

  • Bare metal embedded software: a main loop, and a number of interrupts that bring life to the system

  • Talk about limitations

Scheduling#

  • What is The Scheduler?

  • The advantages of waiting

  • Discuss task priorities, timeslices, and preemption

Message Queues#

  • Message queue: easy communication from an ISR to a thread

  • … and between threads

  • Main communication device for the rest of the course

  • Not the only one: pipe, semaphore, event (manual- and auto-reset), …

Semaphores#

  • Show how we can implement custom waiting scenarios

Didactic Toy Application#

  • Longer live-hacking session with discussion

  • Demonstrate how easy life can be when you are allowed to wait

  • Create a semi-complex application with file and network I/O

Events/Polling#

  • Introduce waiting for multiple events, and why this is a good thing

  • Quick example: collapsing two threads into one

Didactic Toy Application, Revisited#

  • Restructure the toy application around a single-threaded event loop

Miscellaneous#

  • Room for realtime discussions. Deadlock scenarios; what does it mean that Zephyr mutexes do priority inheritance?

  • The course uses modern C++ for brevity and clarity. If there is need to, we can diverge and explain as needed.