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:
typedef struct { void *work_space_start; uint32_t work_space_size; uint32_t maximum_extensions; uint32_t microseconds_per_tick; uint32_t ticks_per_timeslice; void (*idle_task)( void ); uint32_t idle_task_stack_size; uint32_t interrupt_stack_size; void * (*stack_allocate_hook)( uint32_t ); void (*stack_free_hook)( void * ); bool do_zero_of_workspace; uint32_t maximum_drivers; uint32_t number_of_device_drivers; rtems_driver_address_table *Device_driver_table; uint32_t number_of_initial_extensions; rtems_extensions_table *User_extension_table; #if defined(RTEMS_MULTIPROCESSING) rtems_multiprocessing_table *User_multiprocessing_table; #endif rtems_api_configuration_table *RTEMS_api_configuration; posix_api_configuration_table *POSIX_api_configuration; itron_api_configuration *ITRON_api_configuration; } rtems_configuration_table;
rtems_initialize_executive
.
When using the rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_EXECUTIVE_RAM_WORK_AREA
which defaults to NULL
. Normally, this field should be
configured as NULL
as BSPs will assign memory for the
RTEMS RAM Workspace as part of system initialization.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_EXECUTIVE_RAM_SIZE
and is calculated based on the other system configuration settings.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_MICROSECONDS_PER_TICK
.
If not defined by the application, then the
CONFIGURE_MICROSECONDS_PER_TICK
macro defaults to 10000
(10 milliseconds).
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_TICKS_PER_TIMESLICE
.
rtems/confdefs.h
mechanism
for configuring an RTEMS application, the value for this field
corresponds to the setting of the macro CONFIGURE_IDLE_TASK_BODY
.
rtems/confdefs.h
mechanism
for configuring an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_IDLE_TASK_STACK_SIZE
.
rtems/confdefs.h
mechanism for
configuring an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_INTERRUPT_STACK_SIZE
.
rtems/confdefs.h
mechanism
for configuring an RTEMS application, the value for this field
corresponds to the setting of the macro
CONFIGURE_TASK_STACK_ALLOCATOR
.
rtems/confdefs.h
mechanism
for configuring an RTEMS application, the value for this field
corresponds to the setting of the macro
CONFIGURE_TASK_STACK_DEALLOCATOR
.
rtems/confdefs.h
mechanism
for configuring an RTEMS application, the value for this field
corresponds to the setting of the macro
CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_MAXIMUM_DRIVERS
.
User_driver_address_table
entry should be NULL.
When using the rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field is calculated
automatically based on the number of entries in the
Device Driver Table. This calculation is based on the assumption
that the Device Driver Table is named Device_drivers
and defined in C. This table may be generated automatically
for simple applications using only the device drivers that correspond
to the following macros:
CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
Note that network device drivers are not configured in the Device Driver Table.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the Device Driver Table is assumed to be
named Device_drivers
and defined in C. If the application is providing
its own Device Driver Table, then the macro
CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
must be defined to indicate
this and prevent rtems/confdefs.h
from generating the table.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS
which is set automatically by rtems/confdefs.h
based on the size
of the User Extensions Table.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the User Extensions Table is named
Configuration_Initial_Extensions
and defined in
confdefs.h. It is initialized based on the following
macros:
CONFIGURE_INITIAL_EXTENSIONS
STACK_CHECKER_EXTENSION
The application may configure one or more initial user extension
sets by setting the CONFIGURE_INITIAL_EXTENSIONS
macro. By
defining the STACK_CHECKER_EXTENSION
macro, the task stack bounds
checking user extension set is automatically included in the
application.
rtems/confdefs.h
mechanism for configuring
an RTEMS application, the Multiprocessor Configuration Table
is automatically generated when the CONFIGURE_MP_APPLICATION
is defined. If CONFIGURE_MP_APPLICATION
is not defined, the this
entry is set to NULL. The generated table has the name
Multiprocessing_configuration
.
rtems/confdefs.h
application
configuration mechanism. The generated table has the name
Configuration_RTEMS_API
.
rtems/confdefs.h
application
configuration mechanism. The rtems/confdefs.h
application
mechanism will fill this field in with the address of the
Configuration_POSIX_API
table of POSIX API is configured
and NULL if the POSIX API is not configured.
Copyright © 1988-2008 OAR Corporation