Skip to content

PRO TIP Block youtube.com at the DNS level — Pi-hole, NextDNS or your hosts file — but allow youtube-nocookie.com and i.ytimg.com. These tutorials keep playing; the rabbit hole does not.

Learning without distractions

#27 RTOS Part-6: Synchronization and communication among concurrent threads

29.4K views on YouTube

This sixth lesson on RTOS talks about the RTOS mechanisms for synchronization and communication among concurrent threads. Such mechanisms are the most complex elements of any RTOS, and are generally really tricky to develop by yourself. For that reason, this lesson replaces the toy MiROS RTOS with the professional-grade QXK RTOS included in the QP/C framework, parts of which have been used since lesson 21. The lesson demonstrates the process of porting an existing application to a different RTOS, and once this is done, explains semaphores and shows how they work in practice.

Articles mentioned in the lesson + recommended reading:
——————————————————-
Edsger W. Dijkstra “Cooperating sequential processes”, Lecture Notes EWD123, 1963
https://www.cs.utexas.edu/~EWD/transcriptions/EWD01xx/EWD123.html

Jack Ganssle “A Guide to Debouncing, or, How to Debounce a Contact in Two Easy Pages”
http://www.ganssle.com/debouncing.htm

——
Resources:

Companion web page for this video course:
https://www.state-machine.com/quickstart

GitHub repository for projects for this video course:
https://github.com/QuantumLeaps/modern-embedded-programming-course

Preemptive Dual-Mode QXK Kernel:
https://www.state-machine.com/qpc/arm-cm_qxk.html

Transcript of this lesson:
https://www.state-machine.com/course/lesson27.txt

Music credits:
The background music comes from:
https://www.bensound.com/royalty-free-music/track/straight