ABSTRACT

This chapter provides the necessary background and bridges it into software development practice by presenting the main communication and synchronization primitives provided by the FreeRTOS open-source operating system. It contains an introduction to real-time task scheduling algorithms and the related scheduling analysis theory for a few simple cases of practical relevance. The chapter also contains an introduction to concurrent programming from the practical point of view, within the context of a real-world real-time operating system for embedded applications. Albeit the data transfer mechanism by itself is straightforward, in order to design a working concurrent application, it is important to look deeper into how message queue synchronization works. Semaphores have successfully been used to address many problems of practical significance in diverse concurrent programming domains even though, strictly speaking, they are not powerful enough to solve every concurrent programming problem that can be conceived.