Summary
In this chapter, we talked a lot about real-time systems. We defined a real-time system and gave some examples of real-time systems in the real world. At this point, you should understand how real-time systems have different timing requirements and how there are different consequences for not meeting those timing requirements.
We then looked at the ways to use hardware and software to implement real-time systems. We saw that some real-time systems can just use hardware to meet their timing requirements. On the other hand, some real-time systems can get away with just using software on a general-purpose OS. In between those extremes is the focus of this book: applications that depend on an RTOS and run on an MCU.
After better understanding real-time systems, we defined an RTOS and described how it differs from a general-purpose OS. We explored the difference between hard, firm, and soft real-time systems. It is important to remember that the timing requirements of the real-time system determine what type of RTOS is necessary to achieve the desired performance.
We discussed the types of RTOSes that are available and why FreeRTOS was chosen for this book. FreeRTOS is mature and is used widely in industry. It is also free! And, learning FreeRTOS is a way to better understand RTOSes in general.
Finally, we looked at when it is appropriate to use an RTOS, and when it is not. And, when appropriate, we looked at determining the type of RTOS to use.
Upcoming chapters show how FreeRTOS works, and how to use it. The chapters are illustrated with example programs that run on an ST development board. The next two chapters present the development board, and also, the development tools (e.g., the IDE) that we will be using to run the example programs.