The Teardown 2025 schedule is not yet finalized.
Check back here for time and location.
"Maybe you’ve blinked your first LED and now want to blink a second LED at a different rate; you need an RTOS ("real-time operating system"), right? Or maybe you’re designing the next great IoT product that talks to a server and reads from sensors and has a display; you definitely need an RTOS, right? Wrong! Using a preemptive RTOS can help make a system schedulable (i.e. help all of its tasks meet their deadlines) but it comes at a cost: "concurrently" running tasks can interact in unforeseen ways that cause system failures, that dreaded class of errors known as "race conditions". In part, this is because humans have difficulty thinking about things that happen concurrently. Using the venerable superloop can help avoid this problem entirely and, in some cases, it can actually make a system work that wouldn’t work at all using an RTOS! Additionally, a "superloop" style scheduler has the benefit of being simple enough for you to write yourself in a few dozen lines of code.
If you’re unfamiliar with terms like "deadlines", "schedulability", or "worst-case response time", then I would argue you are almost definitely using an RTOS prematurely! If you are familiar with those terms, allow me to show you a few ways to improve the superloop that bring its performance nearly on par with an RTOS, with no concern about race conditions.
This talk will be based on the first two blog articles of a four-part series with the same name You Don’t Need an RTOS on Embedded Related.