The RTEMS Configuration Table is used to tailor an
application for its specific needs. For example, the user can
configure the number of device drivers or which APIs may be used.
THe address of the user-defined Configuration Table is passed as an
argument to the rtems_initialize_executive
directive, which MUST be the first RTEMS directive called.
The RTEMS Configuration Table
is defined in the following C structure:
is the address of the RTEMS RAM Workspace.
This area contains items such as the
various object control blocks (TCBs, QCBs, ...) and task stacks.
If the address is not aligned on a four-word boundary, then
RTEMS will invoke the fatal error handler during
rtems_initialize_executive.
work_space_size
is the calculated size of the
RTEMS RAM Workspace. The section Sizing the RTEMS RAM Workspace
details how to arrive at this number.
microseconds_per_tick
is number of microseconds per clock tick.
ticks_per_timeslice
is the number of clock ticks for a timeslice.
maximum_devices
is the maximum number of devices that can be registered.
number_of_device_drivers
is the number of device drivers for the system. There should be
the same number of entries in the Device Driver Table. If this field
is zero, then the User_driver_address_table entry should be NULL.
Device_driver_table
is the address of the Device Driver Table. This table contains the entry
points for each device driver. If the number_of_device_drivers field is zero,
then this entry should be NULL. The format of this table will be
discussed below.
number_of_initial_extensions
is the number of initial user extensions. There should be
the same number of entries as in the User_extension_table. If this field
is zero, then the User_driver_address_table entry should be NULL.
User_extension_table
is the address of the User
Extension Table. This table contains the entry points for the
static set of optional user extensions. If no user extensions
are configured, then this entry should be NULL. The format of
this table will be discussed below.
User_multiprocessing_table
is the address of the Multiprocessor Configuration Table. This
table contains information needed by RTEMS only when used in a multiprocessor
configuration. This field must be NULL when RTEMS is used in a
single processor configuration.
RTEMS_api_configuration
is the address of the RTEMS API Configuration Table. This table
contains information needed by the RTEMS API. This field should be
NULL if the RTEMS API is not used. [NOTE: Currently the RTEMS API
is required to support support components such as BSPs and libraries
which use this API.]
POSIX_api_configuration
is the address of the POSIX API Configuration Table. This table
contains information needed by the POSIX API. This field should be
NULL if the POSIX API is not used.