RTOS
Real-Time Operating Systems
On a microcontroller, a main loop is enough as long as the work stays short and the deadlines stay wide. As soon as a long task has to coexist with a response due in a few milliseconds, something has to arbitrate. An RTOS provides that arbitration: preemptive priority scheduling, synchronisation primitives, time management. In exchange it brings its own traps, priority inversion, stack overflows, critical sections held too long, which rarely show up in development and almost always in production.
Choosing a kernel
Three kernels cover most of the embedded world, and they answer different questions.
FreeRTOS is a kernel. A few thousand lines, a scheduler, queues, semaphores. It drops into an existing project without overturning anything, and its memory footprint stays in the tens of kilobytes. It is the natural choice when the hardware is well understood and the need is multitasking, nothing more.
Zephyr is a complete environment: kernel, drivers, networking stack, hardware description through Devicetree, configuration through Kconfig, multi-repository handling through West. The learning curve is longer, but moving from one board to another stops being a project of its own. It is the choice that imposes itself when a product has to live for years across several targets.
ThreadX, now open source as Eclipse ThreadX, sits in between: a compact, certifiable kernel with networking and file stacks alongside it. It shows up mostly where certification weighs on the decision.
Our courses
FreeRTOS Real Time Programming (RT3), three days, starts at the kernel: scheduling, queues, semaphores, mutexes, and above all the design mistakes that produce intermittent lockups.
Zephyr RTOS Programming (RT5), five days, covers the whole ecosystem, from the build system and West to Devicetree and Kconfig configuration, up to writing drivers.
Real Time Programming with Eclipse ThreadX (RT6), three days, applies the same principles to the ThreadX kernel, formerly Azure RTOS.
West, MCUXpresso SDK and Kconfig (RTW), two days, covers multi-repository project handling with West and the structure of the NXP MCUXpresso SDK.
STM32 + FreeRTOS + LwIP (STG), five days, takes on the complete case: an STM32, a real-time kernel and a TCP/IP stack that have to share the processor without starving one another.
Cortex-M4 Texas Instruments Implementation and Ti-RTOS (TI3) covers the TI platform and its own kernel.
Internet of Things on Microcontrollers (IOT1), three days, addresses the particular case of very low power devices, where scheduling is judged in microamps as much as in milliseconds.
Hands-on work is a large part of every session. On site it runs on real boards. Remotely, depending on the course, on remotely accessible hardware or on the simulation tools we develop, which lets you work on a target you do not physically have. A scheduler is only understood by watching what it does to a loaded system.