The rtems_task_start
directive is used to place a dormant task in the
ready state. This enables the task to compete, based on its
current priority, for the processor and other system resources.
Any actions, such as suspension or change of priority, performed
on a task prior to starting it are nullified when the task is
started.
With the rtems_task_start
directive the user specifies the task's
starting address and argument. The argument is used to
communicate some startup information to the task. As part of
this directive, RTEMS initializes the task's stack based upon
the task's initial execution mode and start address. The
starting argument is passed to the task in accordance with the
target processor's calling convention.
The rtems_task_restart
directive restarts a task at its initial
starting address with its original priority and execution mode,
but with a possibly different argument. The new argument may be
used to distinguish between the original invocation of the task
and subsequent invocations. The task's stack and control block
are modified to reflect their original creation values.
Although references to resources that have been requested are
cleared, resources allocated by the task are NOT automatically
returned to RTEMS. A task cannot be restarted unless it has
previously been started (i.e. dormant tasks cannot be
restarted). All restarted tasks are placed in the ready state.
Copyright © 1988-2007OAR Corporation