From adee597960ce3c5ff0ce303ae9ac25b7eebdfe32 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 4 May 2000 19:45:17 +0000 Subject: Numerous changes based on comments from Stephan Wilms including a new section in the Getting Started called "Where to Go From Here", lots of index entries added, and more configuration table information. --- doc/user/task.t | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'doc/user/task.t') diff --git a/doc/user/task.t b/doc/user/task.t index e399f2ea74..5db64eeca3 100644 --- a/doc/user/task.t +++ b/doc/user/task.t @@ -120,10 +120,15 @@ current state and priority. @cindex task priority @cindex priority, task +@findex rtems_task_priority A task's priority determines its importance in relation to the other tasks executing on the same processor. RTEMS supports 255 -levels of priority ranging from 1 to 255. Tasks of numerically +levels of priority ranging from 1 to 255. The data type +@code{@value{DIRPREFIX}task_priority} is used to store task +priorities. + +Tasks of numerically smaller priority values are more important tasks than tasks of numerically larger priority values. For example, a task at priority level 5 is of higher privilege than a task at priority @@ -143,8 +148,10 @@ processor execution time. @subsection Task Mode @cindex task mode +@findex rtems_task_mode -A task's mode is a combination of the following four components: +A task's execution mode is a combination of the following +four components: @itemize @bullet @item preemption @@ -154,7 +161,9 @@ A task's mode is a combination of the following four components: @end itemize It is used to modify RTEMS' scheduling process and to alter the -execution environment of the task. +execution environment of the task. The data type +@code{@value{DIRPREFIX}task_mode} is used to manage the task +execution mode. @cindex preemption @@ -210,6 +219,7 @@ specifies that the task will execute at interrupt level n. @subsection Accessing Task Arguments @cindex task arguments +@cindex task prototype All RTEMS tasks are invoked with a single argument which is specified when they are started or restarted. The argument is @@ -218,6 +228,8 @@ The simplest manner in which to define a task which accesses it argument is: @ifset is-C +@findex rtems_task + @example rtems_task user_task( rtems_task_argument argument @@ -240,7 +252,8 @@ single argument as an index into an array of parameter blocks. @cindex floating point -Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} flag results +Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} attribute +flag results in additional memory being allocated for the TCB to store the state of the numeric coprocessor during task switches. This additional memory is @b{NOT} allocated for @code{@value{RPREFIX}NO_FLOATING_POINT} tasks. Saving @@ -726,10 +739,6 @@ This directive will not cause the calling task to be preempted. Valid task priorities range from a high of 1 to a low of 255. -RTEMS supports a maximum of 256 interrupt levels which are -mapped onto the interrupt levels actually supported by the -target processor. - The requested stack size should be at least @code{@value{RPREFIX}MINIMUM_STACK_SIZE} bytes. The value of @code{@value{RPREFIX}MINIMUM_STACK_SIZE} @@ -760,6 +769,11 @@ The following task mode constants are defined by RTEMS: @item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n @end itemize +The interrupt level portion of the task execution mode +supports a maximum of 256 interrupt levels. These levels are +mapped onto the interrupt levels actually supported by the +target processor in a processor dependent fashion. + Tasks should not be made global unless remote tasks must interact with them. This avoids the system overhead incurred by the creation of a global task. When a global task is created, -- cgit v1.2.3