Most RTEMS applications will include a clock tick
device driver which invokes the rtems_clock_tick
directive at regular intervals. The clock tick is necessary if
the application is to utilize timeslicing, the clock manager, the
timer manager, the rate monotonic manager, or the timeout option on blocking
directives.
The clock tick is usually provided as an interrupt
from a counter/timer or a real-time clock device. When a
counter/timer is used to provide the clock tick, the device is
typically programmed to operate in continuous mode. This mode
selection causes the device to automatically reload the initial
count and continue the countdown without programmer
intervention. This reduces the overhead required to manipulate
the counter/timer in the clock tick ISR and increases the
accuracy of tick occurrences. The initial count can be based on
the microseconds_per_tick field in the RTEMS Configuration
Table. An alternate approach is to set the initial count for a
fixed time period (such as one millisecond) and have the ISR
invoke rtems_clock_tick
on the microseconds_per_tick boundaries.
Obviously, this can induce some error if the configured
microseconds_per_tick is not evenly divisible by the chosen
clock interrupt quantum.
It is important to note that the interval between clock ticks directly impacts the granularity of RTEMS timing operations. In addition, the frequency of clock ticks is an important factor in the overall level of system overhead. A high clock tick frequency results in less processor time being available for task execution due to the increased number of clock tick ISRs.
Copyright © 1988-2003 OAR Corporation