RTEMS Logo

RTEMS 4.6.0 On-Line Library


Configuring a System Initialization Task Table

PREV UP NEXT Bookshelf RTEMS Ada User's Guide

22.7: Initialization Task Table

The Initialization Task Table is used to describe each of the user initialization tasks to the Initialization Manager. The table contains one entry for each initialization task the user wishes to create and start. The fields of this data structure directly correspond to arguments to the rtems.task_create and rtems.task_start directives. The number of entries is found in the number_of_initialization_tasks entry in the Configuration Table.

The format of each entry in the Initialization Task Table is defined in the following Ada record:

type Initialization_Tasks_Table_Entry is
   record
      Name             : RTEMS.Name;          -- task name
      Stack_Size       : RTEMS.Unsigned32;    -- task stack size
      Initial_Priority : RTEMS.Task_priority; -- task priority
      Attribute_Set    : RTEMS.Attribute;     -- task attributes
      Entry_Point      : RTEMS.Task_Entry;    -- task entry point
      Mode_Set         : RTEMS.Mode;          -- task initial mode
      Argument         : RTEMS.Unsigned32;    -- task argument
   end record;

type Initialization_Tasks_Table is array
    ( RTEMS.Unsigned32 range <> ) of
      RTEMS.Initialization_Tasks_Table_Entry;

type Initialization_Tasks_Table_Pointer is access all
     Initialization_Tasks_Table;
name
is the name of this initialization task.
stack_size
is the size of the stack for this initialization task.
initial_priority
is the priority of this initialization task.
attribute_set
is the attribute set used during creation of this initialization task.
entry_point
is the address of the entry point of this initialization task.
mode_set
is the initial execution mode of this initialization task.
argument
is the initial argument for this initialization task.

A typical declaration for an Initialization Task Table might appear as follows:

Initialization_Tasks : aliased
  RTEMS.Initialization_Tasks_Table( 1 .. 2 ) := (
   (INIT_1_NAME,
    1024,
    1,
    RTEMS.Default_Attributes,
    Init_1'Access,
    RTEMS.Default_Modes,
    1),
   (INIT_2_NAME,
    1024,
    250,
    RTEMS.Floating_Point,
    Init_2'Access,
    RTEMS.No_Preempt,
    2)
);


PREV UP NEXT Bookshelf RTEMS Ada User's Guide

Copyright © 1988-2004 OAR Corporation