mirror of
https://git.rtems.org/rtems-docs/
synced 2025-07-26 10:59:41 +08:00
parent
a17535d222
commit
1161ed179c
@ -65,9 +65,10 @@ Timer Server
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
The Timer Server task is responsible for executing the timer service routines
|
The Timer Server task is responsible for executing the timer service routines
|
||||||
associated with all task-based timers. This task executes at a priority higher
|
associated with all task-based timers. This task executes at a priority
|
||||||
than any RTEMS application task, and is created non-preemptible, and thus can
|
specified by :ref:`rtems_timer_initiate_server() <rtems_timer_initiate_server>`
|
||||||
be viewed logically as the lowest priority interrupt.
|
and it may have a priority of zero (the highest priority). In uni-processor
|
||||||
|
configurations, it is created non-preemptible.
|
||||||
|
|
||||||
By providing a mechanism where timer service routines execute in task rather
|
By providing a mechanism where timer service routines execute in task rather
|
||||||
than interrupt space, the application is allowed a bit more flexibility in what
|
than interrupt space, the application is allowed a bit more flexibility in what
|
||||||
@ -75,9 +76,10 @@ operations a timer service routine can perform. For example, the Timer Server
|
|||||||
can be configured to have a floating point context in which case it would be
|
can be configured to have a floating point context in which case it would be
|
||||||
safe to perform floating point operations from a task-based timer. Most of the
|
safe to perform floating point operations from a task-based timer. Most of the
|
||||||
time, executing floating point instructions from an interrupt service routine
|
time, executing floating point instructions from an interrupt service routine
|
||||||
is not considered safe. However, since the Timer Server task is
|
is not considered safe. The timer service routines invoked by the Timer Server
|
||||||
non-preemptible, only directives allowed from an ISR can be called in the timer
|
may block, however, since this blocks the Timer Server itself, other timer
|
||||||
service routine.
|
service routines that are already pending do not run until the blocked timer
|
||||||
|
service routine finished its work.
|
||||||
|
|
||||||
The Timer Server is designed to remain blocked until a task-based timer fires.
|
The Timer Server is designed to remain blocked until a task-based timer fires.
|
||||||
This reduces the execution overhead of the Timer Server.
|
This reduces the execution overhead of the Timer Server.
|
||||||
@ -227,7 +229,12 @@ DESCRIPTION:
|
|||||||
local TMCB free pool and initializes it.
|
local TMCB free pool and initializes it.
|
||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
This directive will not cause the calling task to be preempted.
|
This directive will obtain the allocator mutex and may cause the calling
|
||||||
|
task to be preempted.
|
||||||
|
|
||||||
|
In SMP configurations, the processor of the currently executing thread
|
||||||
|
determines the processor used for the created timer. During the life-time
|
||||||
|
of the timer this processor is used to manage the timer internally.
|
||||||
|
|
||||||
.. raw:: latex
|
.. raw:: latex
|
||||||
|
|
||||||
@ -337,7 +344,8 @@ DESCRIPTION:
|
|||||||
by RTEMS.
|
by RTEMS.
|
||||||
|
|
||||||
NOTES:
|
NOTES:
|
||||||
This directive will not cause the running task to be preempted.
|
This directive will obtain the allocator mutex and may cause the calling
|
||||||
|
task to be preempted.
|
||||||
|
|
||||||
A timer can be deleted by a task other than the task which created the
|
A timer can be deleted by a task other than the task which created the
|
||||||
timer.
|
timer.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user