Книга: Real-Time Concepts for Embedded Systems
11.1 Introduction
11.1 Introduction
In embedded systems, system tasks and user tasks often schedule and perform activities after some time has elapsed. For example, a RTOS scheduler must perform a context switch of a preset time interval periodically-among tasks of equal priorities-to ensure execution fairness when conducting a round-robin scheduling algorithm. A software-based memory refresh mechanism must refresh the dynamic memory every so often or data loss will occur. In embedded networking devices, various communication protocols schedule activities for data retransmission and protocol recovery. The target monitor software sends system information to the host-based analysis tool periodically to provide system-timing diagrams for visualization and debugging.
In any case, embedded applications need to schedule future events. Scheduling future activities is accomplished through timers using timer services.
Timers are an integral part of many real-time embedded systems. A timer is the scheduling of an event according to a predefined time value in the future, similar to setting an alarm clock.
A complex embedded system is comprised of many different software modules and components, each requiring timers of varying timeout values. Most embedded systems use two different forms of timers to drive time-sensitive activities: hard timers and soft timers. Hard timers are derived from physical timer chips that directly interrupt the processor when they expire. Operations with demanding requirements for precision or latency need the predictable performance of a hard timer. Soft timers are software events that are scheduled through a software facility.
A soft-timer facility allows for efficiently scheduling of non-high-precision software events. A practical design for the soft-timer handling facility should have the following properties:
· efficient timer maintenance, i.e., counting down a timer,
· efficient timer installation, i.e., starting a timer, and
· efficient timer removal, i.e., stopping a timer.
While an application might require several high-precision timers with resolutions on the order of microseconds or even nanoseconds, not all of the time requirements have to be high precision. Even demanding applications also have some timing functions for which resolutions on the order of milliseconds, or even of hundreds of milliseconds, are sufficient. Aspects of applications requiring timeouts with course granularity (for example, with tolerance for bounded inaccuracy) should use soft timers. Examples include the Transmission Control Protocol module, the Real-time Transport Protocol module, and the Address Resolution Protocol module.
Another reason for using soft timers is to reduce system-interrupt overhead. The physical timer chip rate is usually set so that the interval between consecutive timer interrupts is within tens of milliseconds or even within tens of microseconds. The interrupt latency and overhead can be substantial and can grow with the increasing number of outstanding timers. This issue particularly occurs when each timer is implemented by being directly interfaced with the physical timer hardware.
This chapter focuses on:
· real-time clocks versus system clocks,
· programmable interval timers,
· timer interrupt service routines,
· timer-related operations,
· soft timers, and
· implementing soft-timer handling facilities.
- Introduction to Microprocessors and Microcontrollers
- Introduction
- 5.1 Introduction
- Introduction to Serial Devices
- 14.1 Introduction
- Introduction to PHP
- 3.4.1. Introduction to Atomic Transactions
- 11.1. Introduction to BusyBox
- 1.1 Introduction
- 2.5.1. Introduction to Group Communication
- 4.1.1. Introduction to Threads
- 6.1. INTRODUCTION