Real-Time Embedded Multithreading: Using ThreadX and ARM

The purpose of this chapter is to review some of the essential concepts and definitions used in embedded systems. [16] You have already encountered several of these terms in previous chapters, and you will read about several new concepts here.
[16]A relatively small number of terms and concepts are reviewed in this chapter. For a more complete listing, see the online Embedded Systems Glossary by Michael Barr at http://www.netrino.com/Publications/Glossary/.
Most embedded real-time systems use a priority system as a means of establishing the relative importance of threads in the system. There are two classes of priorities: static and dynamic. A static priority is one that is assigned when a thread is created and remains constant throughout execution. A dynamic priority is one that is assigned when a thread is created, but can be changed at any time during execution. Furthermore, there is no limit on the number of priority changes that can occur.
ThreadX provides a flexible method of dynamic priority assignment. Although each thread must have a priority, ThreadX places no restrictions on how priorities may be used. As an extreme case, all threads could be assigned the same priority that would never change. However, in most cases, priority values are carefully assigned and modified only to reflect the change of importance in the processing of threads. As illustrated by Figure 3.1, ThreadX provides priority values from 0 to 31, inclusive, where the value 0 represents the highest priority and the...