Embedded Systems Building Blocks, Second Edition

Real-time systems are characterized by the severe consequences that result if logical as well as timing correctness properties of the system are not met. There are two types of real-time systems: SOFT and HARD. In a SOFT real-time system, tasks are performed by the system as fast as possible, but the tasks don't have to finish by specific times. In HARD real-time systems, tasks have to be performed not only correctly but on time. Most real-time systems have a combination of SOFT and HARD requirements. Real-time applications cover a wide range, but most real-time systems are embedded. This means that the computer is built into a system and is not seen by the user as being a computer. The following list shows a few examples of embedded systems.
| Process control Food processing Chemical plants Automotive Engine controls Antilock braking systems Office automation FAX machines Copiers Computer peripherals Printers Terminals Scanners Modems | Communication Switches Routers Robots Aerospace Flight management systems Weapons systems Jet engine controls Domestic Microwave ovens Dishwashers Washing machines Thermostats |
Real-time software applications are typically more difficult to design than non-real-time applications. This chapter describes real-time concepts.
Small systems of low complexity are generally designed as shown in Figure 2.1. These systems are called foreground/ background or super-loops. An application consists of an infinite loop that calls modules (i.e., functions) to perform the desired operations (background). Interrupt Service Routines (ISRs) handle asynchronous events (foreground). Foreground is also called interrupt level;