This chapter introduced queues, semaphores, and mutexes. A few common use cases of each of these core building blocks for RTOS applications were also discussed at a high level and some of the more subtle behaviors of each were highlighted. The diagrams presented in this chapter should serve as a reference point to return to as we move on to more complex real-world examples in later chapters.
We've now covered some of the core RTOS concepts. In the next chapter, we'll turn our attention to another very important step of developing a solid real-time system. This step affects how efficiently firmware can be run and has a major impact on system performance – MCU selection.