mirror of
https://git.rtems.org/rtems-docs/
synced 2025-06-06 13:23:31 +08:00
c-user: Use new template for integer config opts
Try to bring all descriptions up to date. Add cross-references to several options. Clarify configuration value constraints. Use this template also for initializer type options. Close #3901.
This commit is contained in:
parent
e26f87497e
commit
7bad8940ad
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
Block Device Cache Configuration
|
||||
@ -44,17 +45,23 @@ CONFIGURE_BDBUF_BUFFER_MAX_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_BUFFER_MAX_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
It must be positive and an integral multiple of the buffer minimum size.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 4096 bytes.
|
||||
The default value is 4096.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be an integral multiple of :ref:`CONFIGURE_BDBUF_BUFFER_MIN_SIZE`.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the maximum size of a buffer in bytes.
|
||||
The value of this configuration option defines the maximum size of a buffer
|
||||
in bytes.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -69,17 +76,19 @@ CONFIGURE_BDBUF_BUFFER_MIN_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_BUFFER_MIN_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 512 bytes.
|
||||
The default value is 512.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the minimum size of a buffer in bytes.
|
||||
The value of this configuration option defines the minimum size of a buffer
|
||||
in bytes.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -94,17 +103,19 @@ CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_CACHE_MEMORY_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 32768 bytes.
|
||||
The default value is 32768.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``SIZE_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Size of the cache memory in bytes.
|
||||
The value of this configuration option defines the size of the cache memory
|
||||
in bytes.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -119,17 +130,19 @@ CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the maximum blocks per read-ahead request.
|
||||
The value of this configuration option defines the maximum blocks per
|
||||
read-ahead request.
|
||||
|
||||
NOTES:
|
||||
A value of 0 disables the read-ahead task (default). The read-ahead task
|
||||
@ -146,17 +159,19 @@ CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 16.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the maximum blocks per write request.
|
||||
The value of this configuration option defines the maximum blocks per write
|
||||
request.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -171,17 +186,18 @@ CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY``
|
||||
|
||||
DATA TYPE:
|
||||
Task priority (``rtems_task_priority``).
|
||||
|
||||
RANGE:
|
||||
Valid task priority.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 15.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid Classic API task
|
||||
priority. The set of valid task priorities is scheduler-specific.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the read-ahead task priority.
|
||||
The value of this configuration option defines the read-ahead task priority.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -196,17 +212,29 @@ CONFIGURE_BDBUF_TASK_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_BDBUF_TASK_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is RTEMS_MINIMUM_STACK_SIZE.
|
||||
The default value is ``RTEMS_MINIMUM_STACK_SIZE``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the task stack size of the Block Device Cache tasks in bytes.
|
||||
The value of this configuration option defines the task stack size of the
|
||||
Block Device Cache tasks in bytes.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -221,17 +249,19 @@ CONFIGURE_SWAPOUT_BLOCK_HOLD
|
||||
CONSTANT:
|
||||
``CONFIGURE_SWAPOUT_BLOCK_HOLD``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 1000 milliseconds.
|
||||
The default value is 1000.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the swapout task maximum block hold time in milliseconds.
|
||||
The value of this configuration option defines the swapout task maximum block
|
||||
hold time in milliseconds.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -246,17 +276,19 @@ CONFIGURE_SWAPOUT_SWAP_PERIOD
|
||||
CONSTANT:
|
||||
``CONFIGURE_SWAPOUT_SWAP_PERIOD``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 250 milliseconds.
|
||||
The default value is 250.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the swapout task swap period in milliseconds.
|
||||
The value of this configuration option defines the swapout task swap period
|
||||
in milliseconds.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -271,17 +303,18 @@ CONFIGURE_SWAPOUT_TASK_PRIORITY
|
||||
CONSTANT:
|
||||
``CONFIGURE_SWAPOUT_TASK_PRIORITY``
|
||||
|
||||
DATA TYPE:
|
||||
Task priority (``rtems_task_priority``).
|
||||
|
||||
RANGE:
|
||||
Valid task priority.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 15.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid Classic API task
|
||||
priority. The set of valid task priorities is scheduler-specific.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the swapout task priority.
|
||||
The value of this configuration option defines the swapout task priority.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -296,17 +329,19 @@ CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
|
||||
CONSTANT:
|
||||
``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY``
|
||||
|
||||
DATA TYPE:
|
||||
Task priority (``rtems_task_priority``).
|
||||
|
||||
RANGE:
|
||||
Valid task priority.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 15.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid Classic API task
|
||||
priority. The set of valid task priorities is scheduler-specific.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the swapout worker task priority.
|
||||
The value of this configuration option defines the swapout worker task
|
||||
priority.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -321,17 +356,18 @@ CONFIGURE_SWAPOUT_WORKER_TASKS
|
||||
CONSTANT:
|
||||
``CONFIGURE_SWAPOUT_WORKER_TASKS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
Defines the swapout worker task count.
|
||||
The value of this configuration option defines the swapout worker task count.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
BSP Related Configuration Options
|
||||
@ -20,24 +21,30 @@ BSP_IDLE_TASK_BODY
|
||||
CONSTANT:
|
||||
``BSP_IDLE_TASK_BODY``
|
||||
|
||||
DATA TYPE:
|
||||
Function pointer.
|
||||
|
||||
RANGE:
|
||||
Undefined or valid function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This option is BSP specific.
|
||||
The default value is BSP-specific.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void *( *idle_body )( uintptr_t )``.
|
||||
|
||||
DESCRIPTION:
|
||||
If ``BSP_IDLE_TASK_BODY`` is defined by the BSP and
|
||||
``CONFIGURE_IDLE_TASK_BODY`` is not defined by the application, then this
|
||||
BSP specific idle task body will be used.
|
||||
If
|
||||
|
||||
* this configuration option is defined by the BSP
|
||||
|
||||
* and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
|
||||
|
||||
then the value of this configuration option defines the default value of
|
||||
:ref:`CONFIGURE_IDLE_TASK_BODY`.
|
||||
|
||||
NOTES:
|
||||
As it has knowledge of the specific CPU model, system controller logic, and
|
||||
peripheral buses, a BSP specific IDLE task may be capable of turning
|
||||
components off to save power during extended periods of no task activity
|
||||
peripheral buses, a BSP-specific IDLE task may be capable of turning
|
||||
components off to save power during extended periods of no task activity.
|
||||
|
||||
.. index:: BSP_IDLE_TASK_STACK_SIZE
|
||||
|
||||
@ -49,30 +56,35 @@ BSP_IDLE_TASK_STACK_SIZE
|
||||
CONSTANT:
|
||||
``BSP_IDLE_TASK_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Undefined or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This option is BSP specific.
|
||||
The default value is BSP-specific.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to a
|
||||
BSP-specific and application-specific minimum value.
|
||||
|
||||
* It shall be small enough so that the IDLE
|
||||
task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``size_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
If ``BSP_IDLE_TASK_STACK_SIZE`` is defined by the BSP and
|
||||
``CONFIGURE_IDLE_TASK_STACK_SIZE`` is not defined by the application, then
|
||||
this BSP suggested idle task stack size will be used.
|
||||
If
|
||||
|
||||
* this configuration option is defined by the BSP
|
||||
|
||||
* and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
|
||||
|
||||
then the value of this configuration option defines the default value of
|
||||
:ref:`CONFIGURE_IDLE_TASK_SIZE`.
|
||||
|
||||
NOTES:
|
||||
The order of precedence for configuring the IDLE task stack size is:
|
||||
|
||||
- RTEMS default minimum stack size.
|
||||
|
||||
- If defined, then ``CONFIGURE_MINIMUM_TASK_STACK_SIZE``.
|
||||
|
||||
- If defined, then the BSP specific ``BSP_IDLE_TASK_SIZE``.
|
||||
|
||||
- If defined, then the application specified ``CONFIGURE_IDLE_TASK_SIZE``.
|
||||
None.
|
||||
|
||||
.. index:: BSP_INITIAL_EXTENSION
|
||||
|
||||
@ -84,22 +96,29 @@ BSP_INITIAL_EXTENSION
|
||||
CONSTANT:
|
||||
``BSP_INITIAL_EXTENSION``
|
||||
|
||||
DATA TYPE:
|
||||
List of user extension initializers (``rtems_extensions_table``).
|
||||
|
||||
RANGE:
|
||||
Undefined or a list of user extension initializers.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This option is BSP specific.
|
||||
The default value is BSP-specific.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a list of initializers for
|
||||
structures of type :c:type:`rtems_extensions_table`.
|
||||
|
||||
DESCRIPTION:
|
||||
If ``BSP_INITIAL_EXTENSION`` is defined by the BSP, then this BSP specific
|
||||
initial extension will be placed as the last entry in the initial extension
|
||||
table.
|
||||
If
|
||||
|
||||
* this configuration option is defined by the BSP
|
||||
|
||||
* and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
|
||||
|
||||
then the value of this configuration option is used to initialize the table
|
||||
of initial user extensions.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
The value of this configuration option is placed after the entries of all
|
||||
other initial user extensions.
|
||||
|
||||
.. index:: BSP_INTERRUPT_STACK_SIZE
|
||||
|
||||
@ -111,53 +130,39 @@ BSP_INTERRUPT_STACK_SIZE
|
||||
CONSTANT:
|
||||
``BSP_INTERRUPT_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Undefined or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This option is BSP specific.
|
||||
The default value is BSP-specific.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to a
|
||||
BSP-specific and application-specific minimum value.
|
||||
|
||||
* It shall be small enough so that the
|
||||
interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``size_t``.
|
||||
|
||||
* It shall be aligned according to
|
||||
``CPU_INTERRUPT_STACK_ALIGNMENT``.
|
||||
|
||||
DESCRIPTION:
|
||||
If ``BSP_INTERRUPT_STACK_SIZE`` is defined by the BSP and
|
||||
``CONFIGURE_INTERRUPT_STACK_SIZE`` is not defined by the application, then
|
||||
this BSP specific interrupt stack size will be used.
|
||||
If
|
||||
|
||||
* this configuration option is defined by the BSP
|
||||
|
||||
* and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
|
||||
|
||||
then the value of this configuration option defines the default value of
|
||||
:ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
|
||||
.. index:: BSP_MAXIMUM_DEVICES
|
||||
|
||||
.. _BSP_MAXIMUM_DEVICES:
|
||||
|
||||
BSP_MAXIMUM_DEVICES
|
||||
-------------------
|
||||
|
||||
CONSTANT:
|
||||
``BSP_MAXIMUM_DEVICES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Undefined or positive.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This option is BSP specific.
|
||||
|
||||
DESCRIPTION:
|
||||
If ``BSP_MAXIMUM_DEVICES`` is defined by the BSP and
|
||||
``CONFIGURE_MAXIMUM_DEVICES`` is not defined by the application, then this
|
||||
BSP specific maximum device count will be used.
|
||||
|
||||
NOTES:
|
||||
This option is specific to the device file system (devFS) and should not be
|
||||
confused with the ``CONFIGURE_MAXIMUM_DRIVERS`` option. This parameter
|
||||
only impacts the devFS and thus is only used by ``<rtems/confdefs.h>`` when
|
||||
``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM`` is specified.
|
||||
|
||||
.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS
|
||||
|
||||
.. _CONFIGURE_BSP_PREREQUISITE_DRIVERS:
|
||||
@ -168,26 +173,30 @@ CONFIGURE_BSP_PREREQUISITE_DRIVERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_BSP_PREREQUISITE_DRIVERS``
|
||||
|
||||
DATA TYPE:
|
||||
List of device driver initializers (``rtems_driver_address_table``).
|
||||
|
||||
RANGE:
|
||||
Undefined or array of device drivers.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This option is BSP specific.
|
||||
The default value is BSP-specific.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a list of initializers for
|
||||
structures of type :c:type:`rtems_extensions_table`.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_BSP_PREREQUISITE_DRIVERS`` is defined if the BSP has device
|
||||
drivers it needs to include in the Device Driver Table. This should be
|
||||
defined to the set of device driver entries that will be placed in the
|
||||
table at the *FRONT* of the Device Driver Table and initialized before any
|
||||
other drivers *INCLUDING* any application prerequisite drivers.
|
||||
If
|
||||
|
||||
* this configuration option is defined by the BSP
|
||||
|
||||
* and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
|
||||
|
||||
then the value of this configuration option is used to initialize the table
|
||||
of initial user extensions.
|
||||
|
||||
NOTES:
|
||||
``CONFIGURE_BSP_PREREQUISITE_DRIVERS`` is typically used by BSPs to
|
||||
configure common infrastructure such as bus controllers or probe for
|
||||
devices.
|
||||
The value of this configuration option is placed before the entries of all
|
||||
other initial user extensions (including
|
||||
:ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`).
|
||||
|
||||
.. index:: CONFIGURE_DISABLE_BSP_SETTINGS
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
Classic API Configuration
|
||||
@ -17,21 +18,36 @@ CONFIGURE_MAXIMUM_BARRIERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_BARRIERS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_BARRIERS`` is the maximum number of Classic API
|
||||
Barriers that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Barriers that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
|
||||
|
||||
@ -43,23 +59,38 @@ CONFIGURE_MAXIMUM_MESSAGE_QUEUES
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_MESSAGE_QUEUES`` is the maximum number of Classic API
|
||||
Message Queues that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Message Queues that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode. You have
|
||||
to account for the memory used to store the messages of each message queue,
|
||||
see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`. You have to account for the memory used to
|
||||
store the messages of each message queue, see
|
||||
:ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_PARTITIONS
|
||||
|
||||
@ -71,21 +102,36 @@ CONFIGURE_MAXIMUM_PARTITIONS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_PARTITIONS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_PARTITIONS`` is the maximum number of Classic API
|
||||
Partitions that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Partitions that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_PERIODS
|
||||
|
||||
@ -97,21 +143,36 @@ CONFIGURE_MAXIMUM_PERIODS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_PERIODS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_PERIODS`` is the maximum number of Classic API Periods
|
||||
that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Periods that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_PORTS
|
||||
|
||||
@ -123,21 +184,36 @@ CONFIGURE_MAXIMUM_PORTS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_PORTS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_PORTS`` is the maximum number of Classic API Ports that
|
||||
can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Ports that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_REGIONS
|
||||
|
||||
@ -149,21 +225,36 @@ CONFIGURE_MAXIMUM_REGIONS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_REGIONS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_REGIONS`` is the maximum number of Classic API Regions
|
||||
that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Regions that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_SEMAPHORES
|
||||
|
||||
@ -175,21 +266,36 @@ CONFIGURE_MAXIMUM_SEMAPHORES
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_SEMAPHORES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_SEMAPHORES`` is the maximum number of Classic API
|
||||
Semaphores that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Semaphore that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
In SMP configurations, the size of a Semaphore Control Block depends on the
|
||||
scheduler count (see :ref:`ConfigurationSchedulerTable`). The semaphores
|
||||
@ -205,21 +311,40 @@ CONFIGURE_MAXIMUM_TASKS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_TASKS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``0``.
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_TASKS`` is the maximum number of Classic API Tasks that
|
||||
can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Tasks that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
The calculations for the required memory in the RTEMS Workspace for tasks
|
||||
assume that each task has a minimum stack size and has floating point
|
||||
@ -230,7 +355,7 @@ NOTES:
|
||||
``CONFIGURE_EXTRA_TASK_STACKS``.
|
||||
|
||||
The maximum number of POSIX threads is specified by
|
||||
:ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
|
||||
:ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
|
||||
|
||||
A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
|
||||
assumption that all tasks have floating point enabled. This would require
|
||||
@ -247,21 +372,36 @@ CONFIGURE_MAXIMUM_TIMERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_TIMERS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_TIMERS`` is the maximum number of Classic API Timers
|
||||
that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API Timers that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS
|
||||
|
||||
@ -273,18 +413,27 @@ CONFIGURE_MAXIMUM_USER_EXTENSIONS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_USER_EXTENSIONS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_USER_EXTENSIONS`` is the maximum number of Classic API
|
||||
User Extensions that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of Classic
|
||||
API User Extensions that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class cannot be configured in unlimited allocation mode.
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
Classic API Initialization Task Configuration
|
||||
@ -18,18 +19,19 @@ CONFIGURE_INIT_TASK_ARGUMENTS
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_ARGUMENTS``
|
||||
|
||||
DATA TYPE:
|
||||
RTEMS Task Argument (``rtems_task_argument``).
|
||||
|
||||
RANGE:
|
||||
Complete range of the type.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid integer of type
|
||||
``rtems_task_argument``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_ARGUMENTS`` is the task argument of the single
|
||||
initialization task defined by the Classic API Initialization Tasks Table.
|
||||
The value of this configuration option defines task argument of the Classic
|
||||
API initialization task.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -44,18 +46,18 @@ CONFIGURE_INIT_TASK_ATTRIBUTES
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_ATTRIBUTES``
|
||||
|
||||
DATA TYPE:
|
||||
RTEMS Attributes (``rtems_attribute``).
|
||||
|
||||
RANGE:
|
||||
Valid task attribute sets.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid task attribute set.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_ATTRIBUTES`` is the task attributes of the single
|
||||
initialization task defined by the Classic API Initialization Tasks Table.
|
||||
The value of this configuration option defines the task attributes of the
|
||||
Classic API initialization task.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -70,23 +72,23 @@ CONFIGURE_INIT_TASK_ENTRY_POINT
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_ENTRY_POINT``
|
||||
|
||||
DATA TYPE:
|
||||
Task entry function pointer (``rtems_task_entry``).
|
||||
|
||||
RANGE:
|
||||
Valid task entry function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``Init``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_ENTRY_POINT`` is the entry point (a.k.a. function
|
||||
name) of the single initialization task defined by the Classic API
|
||||
Initialization Tasks Table.
|
||||
The value of this configuration option initializes the entry point of the
|
||||
Classic API initialization task.
|
||||
|
||||
NOTES:
|
||||
The user must implement the function ``Init`` or the function name provided
|
||||
in this configuration parameter.
|
||||
The application shall provide the function referenced by this configuration
|
||||
option.
|
||||
|
||||
.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
|
||||
|
||||
@ -98,19 +100,19 @@ CONFIGURE_INIT_TASK_INITIAL_MODES
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_INITIAL_MODES``
|
||||
|
||||
DATA TYPE:
|
||||
RTEMS Mode (``rtems_mode``).
|
||||
|
||||
RANGE:
|
||||
Valid task mode sets.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``RTEMS_NO_PREEMPT``.
|
||||
In SMP configurations, the default value is ``RTEMS_DEFAULT_MODES``,
|
||||
otherwise the default value is ``RTEMS_NO_PREEMPT``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid task mode set.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_INITIAL_MODES`` is the initial execution mode of the
|
||||
single initialization task defined by the Classic API Initialization Tasks
|
||||
Table.
|
||||
The value of this configuration option defines the initial execution mode of
|
||||
the Classic API initialization task.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -125,21 +127,22 @@ CONFIGURE_INIT_TASK_NAME
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_NAME``
|
||||
|
||||
DATA TYPE:
|
||||
RTEMS Name (``rtems_name``).
|
||||
|
||||
RANGE:
|
||||
Any value.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid integer of type
|
||||
``rtems_name``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_NAME`` is the name of the single initialization task
|
||||
defined by the Classic API Initialization Tasks Table.
|
||||
The value of this configuration option defines the name of the Classic API
|
||||
initialization task.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
Use :c:func:`rtems_build_name` to define the task name.
|
||||
|
||||
.. index:: CONFIGURE_INIT_TASK_PRIORITY
|
||||
|
||||
@ -151,18 +154,19 @@ CONFIGURE_INIT_TASK_PRIORITY
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_PRIORITY``
|
||||
|
||||
DATA TYPE:
|
||||
RTEMS Task Priority (``rtems_task_priority``).
|
||||
|
||||
RANGE:
|
||||
One (1) to the maximum user priority value of the scheduler.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 1, which is the highest priority in the Classic API.
|
||||
The default value is 1.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid Classic API task
|
||||
priority. The set of valid task priorities is scheduler-specific.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_PRIORITY`` is the initial priority of the single
|
||||
initialization task defined by the Classic API Initialization Tasks Table.
|
||||
The value of this configuration option defines the initial priority of the
|
||||
Classic API initialization task.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -177,24 +181,28 @@ CONFIGURE_INIT_TASK_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_INIT_TASK_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is RTEMS_MINIMUM_STACK_SIZE.
|
||||
The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_INIT_TASK_STACK_SIZE`` is the stack size of the single
|
||||
initialization task defined by the Classic API Initialization Tasks Table.
|
||||
The value of this configuration option defines the task stack size of the
|
||||
Classic API initialization task.
|
||||
|
||||
NOTES:
|
||||
If the stack size specified is greater than the configured minimum, it must
|
||||
be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``. See :ref:`Reserve
|
||||
Task/Thread Stack Memory Above Minimum` for more information about
|
||||
``CONFIGURE_EXTRA_TASK_STACKS``.
|
||||
None.
|
||||
|
||||
.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
@ -218,10 +226,10 @@ DESCRIPTION:
|
||||
initialization task is configured.
|
||||
|
||||
NOTES:
|
||||
The application must define exactly one of the following configuration
|
||||
The application shall define exactly one of the following configuration
|
||||
options
|
||||
|
||||
* :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
|
||||
* `CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
|
||||
|
||||
* :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
Device Driver Configuration
|
||||
@ -34,7 +35,7 @@ NOTES:
|
||||
of using the Hello World example as the baseline for an application and
|
||||
leaving out a clock tick source.
|
||||
|
||||
The application must define exactly one of the following configuration options
|
||||
The application shall define exactly one of the following configuration options
|
||||
|
||||
* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
|
||||
|
||||
@ -54,23 +55,26 @@ CONFIGURE_APPLICATION_EXTRA_DRIVERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
|
||||
|
||||
DATA TYPE:
|
||||
device driver entry structures
|
||||
|
||||
RANGE:
|
||||
Undefined or set of device driver entry structures
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default.
|
||||
The default value is the empty list.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a list of initializers for
|
||||
structures of type :c:type:`rtems_driver_address_table`.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` is defined if the application has
|
||||
device drivers it needs to include in the Device Driver Table. This should
|
||||
be defined to the set of device driver entries that will be placed in the
|
||||
table at the *END* of the Device Driver Table.
|
||||
The value of this configuration option is used to initialize the Device
|
||||
Driver Table.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
The value of this configuration option is placed after the entries of other
|
||||
device driver configuration options.
|
||||
|
||||
See :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative
|
||||
placement of application device driver initializers.
|
||||
|
||||
.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
@ -97,7 +101,7 @@ NOTES:
|
||||
The Clock Driver is responsible for providing a regular interrupt
|
||||
which invokes a clock tick directive.
|
||||
|
||||
The application must define exactly one of the following configuration options
|
||||
The application shall define exactly one of the following configuration options
|
||||
|
||||
* `CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
|
||||
|
||||
@ -372,7 +376,7 @@ NOTES:
|
||||
The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS
|
||||
Testsuite. Applications should not use this driver.
|
||||
|
||||
The application must define exactly one of the following configuration options
|
||||
The application shall define exactly one of the following configuration options
|
||||
|
||||
* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
|
||||
|
||||
@ -445,28 +449,27 @@ CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS``
|
||||
|
||||
DATA TYPE:
|
||||
device driver entry structures
|
||||
|
||||
RANGE:
|
||||
Undefined or set of device driver entry structures
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default.
|
||||
The default value is the empty list.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a list of initializers for
|
||||
structures of type :c:type:`rtems_driver_address_table`.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` is defined if the
|
||||
application has device drivers it needs to include in the Device Driver
|
||||
Table. This should be defined to the set of device driver entries that
|
||||
will be placed in the table at the *FRONT* of the Device Driver Table and
|
||||
initialized before any other drivers *EXCEPT* any BSP prerequisite drivers.
|
||||
The value of this configuration option is used to initialize the Device
|
||||
Driver Table.
|
||||
|
||||
NOTES:
|
||||
In some cases, it is used by System On Chip BSPs to support peripheral
|
||||
buses beyond those normally found on the System On Chip. For example, this
|
||||
is used by one RTEMS system which has implemented a SPARC/ERC32 based board
|
||||
with VMEBus. The VMEBus Controller initialization is performed by a device
|
||||
driver configured via this configuration parameter.
|
||||
The value of this configuration option is placed after the entries defined by
|
||||
:ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver
|
||||
configuration options.
|
||||
|
||||
See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement
|
||||
of application device driver initializers.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_DRIVERS
|
||||
|
||||
@ -478,24 +481,33 @@ CONFIGURE_MAXIMUM_DRIVERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_DRIVERS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is computed by default, and is set to the number of device drivers
|
||||
configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER``
|
||||
configuration parameters.
|
||||
configuration options.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be less than or equal to ``SIZE_MAX``.
|
||||
|
||||
* It shall be greater than or equal than the number of statically configured
|
||||
device drivers.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers
|
||||
per node.
|
||||
The value of this configuration option defines the number of device drivers.
|
||||
|
||||
NOTES:
|
||||
If the application will dynamically install device drivers, then this
|
||||
configuration parameter must be larger than the number of statically
|
||||
configuration parameter shall be larger than the number of statically
|
||||
configured device drivers. Drivers configured using the
|
||||
``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are
|
||||
``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration options are
|
||||
statically installed.
|
||||
|
@ -110,19 +110,31 @@ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
|
||||
CONSTANT:
|
||||
``CONFIGURE_RECORD_PER_PROCESSOR_ITEMS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``unsigned int``).
|
||||
|
||||
RANGE:
|
||||
A power of two greater than or equal to 16.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default.
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 16.
|
||||
|
||||
* It shall be less than or equal to ``SIZE_MAX``.
|
||||
|
||||
* It shall be a power of two.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
DESCRIPTION:
|
||||
If defined, then a record item buffer of the specified item count is
|
||||
statically allocated for each configured processor
|
||||
(:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).
|
||||
The value of this configuration option defines the event record item count
|
||||
per processor.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
The event record buffers are statically allocated for each configured
|
||||
processor (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`). If the value of this
|
||||
configuration option is zero, then nothing is allocated.
|
||||
|
@ -70,7 +70,7 @@ DESCRIPTION:
|
||||
configured.
|
||||
|
||||
NOTES:
|
||||
Filesystems must be initialized to support file descriptor based device
|
||||
Filesystems shall be initialized to support file descriptor based device
|
||||
drivers and basic input/output functions such as :c:func:`printf`.
|
||||
Filesystems can be disabled to reduce the memory footprint of an application.
|
||||
|
||||
@ -421,26 +421,28 @@ CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
|
||||
CONSTANT:
|
||||
``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK``
|
||||
|
||||
DATA TYPE:
|
||||
Boolean feature macro.
|
||||
|
||||
RANGE:
|
||||
Valid values for this configuration parameter are a power of two (2)
|
||||
between 16 and 512 inclusive. In other words, valid values are 16, 32, 64,
|
||||
128, 256,and 512.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default IMFS block size is 128 bytes.
|
||||
The default value is 128.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be
|
||||
an element of {16, 32, 64, 128, 256, 512}.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter specifies the block size for in-memory files
|
||||
managed by the IMFS. The configured block size has two impacts. The first
|
||||
is the average amount of unused memory in the last block of each file. For
|
||||
example, when the block size is 512, on average one-half of the last block
|
||||
of each file will remain unused and the memory is wasted. In contrast, when
|
||||
the block size is 16, the average unused memory per file is only 8
|
||||
bytes. However, it requires more allocations for the same size file and
|
||||
thus more overhead per block for the dynamic memory management.
|
||||
The value of this configuration option defines the block size for in-memory
|
||||
files managed by the IMFS.
|
||||
|
||||
NOTES:
|
||||
The configured block size has two impacts. The first is the average amount of
|
||||
unused memory in the last block of each file. For example, when the block
|
||||
size is 512, on average one-half of the last block of each file will remain
|
||||
unused and the memory is wasted. In contrast, when the block size is 16, the
|
||||
average unused memory per file is only 8 bytes. However, it requires more
|
||||
allocations for the same size file and thus more overhead per block for the
|
||||
dynamic memory management.
|
||||
|
||||
Second, the block size has an impact on the maximum size file that can be
|
||||
stored in the IMFS. With smaller block size, the maximum file size is
|
||||
@ -460,9 +462,6 @@ DESCRIPTION:
|
||||
- when the block size is 512 bytes, the maximum file size is 1,082,195,456
|
||||
bytes.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
|
||||
.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
|
||||
|
||||
.. _CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM:
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
General System Configuration
|
||||
@ -47,23 +48,30 @@ CONFIGURE_EXTRA_TASK_STACKS
|
||||
CONSTANT:
|
||||
``CONFIGURE_EXTRA_TASK_STACKS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Undefined or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter is set to the number of bytes the applications
|
||||
wishes to add to the task stack requirements calculated by
|
||||
The value of this configuration option defines the number of bytes the
|
||||
applications wishes to add to the task stack requirements calculated by
|
||||
``<rtems/confdefs.h>``.
|
||||
|
||||
NOTES:
|
||||
This parameter is very important. If the application creates tasks with
|
||||
stacks larger then the minimum, then that memory is NOT accounted for by
|
||||
stacks larger then the minimum, then that memory is **not** accounted for by
|
||||
``<rtems/confdefs.h>``.
|
||||
|
||||
.. index:: CONFIGURE_INITIAL_EXTENSIONS
|
||||
@ -76,22 +84,24 @@ CONFIGURE_INITIAL_EXTENSIONS
|
||||
CONSTANT:
|
||||
``CONFIGURE_INITIAL_EXTENSIONS``
|
||||
|
||||
DATA TYPE:
|
||||
List of user extension initializers (``rtems_extensions_table``).
|
||||
|
||||
RANGE:
|
||||
Undefined or a list of one or more user extensions.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default.
|
||||
The default value is the empty list.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a list of initializers for
|
||||
structures of type :c:type:`rtems_extensions_table`.
|
||||
|
||||
DESCRIPTION:
|
||||
If ``CONFIGURE_INITIAL_EXTENSIONS`` is defined by the application, then
|
||||
this application specific set of initial extensions will be placed in the
|
||||
initial extension table.
|
||||
The value of this configuration option is used to initialize the table of
|
||||
initial user extensions.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
The value of this configuration option is placed before the entries of
|
||||
:ref:`BSP_INITIAL_EXTENSION` and after the entries of all other initial
|
||||
user extensions.
|
||||
|
||||
.. index:: CONFIGURE_INTERRUPT_STACK_SIZE
|
||||
.. index:: interrupt stack size
|
||||
@ -104,29 +114,36 @@ CONFIGURE_INTERRUPT_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_INTERRUPT_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer.
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``BSP_INTERRUPT_STACK_SIZE`` in case it is defined,
|
||||
The default value is :ref:`BSP_INTERRUPT_STACK_SIZE` in case it is defined,
|
||||
otherwise the default value is ``CPU_STACK_MINIMUM_SIZE``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to a
|
||||
BSP-specific and application-specific minimum value.
|
||||
|
||||
* It shall be small enough so that the
|
||||
interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``size_t``.
|
||||
|
||||
* It shall be aligned according to
|
||||
``CPU_INTERRUPT_STACK_ALIGNMENT``.
|
||||
|
||||
DESCRIPTION:
|
||||
The ``CONFIGURE_INTERRUPT_STACK_SIZE`` configuration option defines the
|
||||
size of an interrupt stack in bytes.
|
||||
The value of this configuration option defines the size of an interrupt stack
|
||||
in bytes.
|
||||
|
||||
NOTES:
|
||||
The interrupt stack size must be aligned according to
|
||||
``CPU_INTERRUPT_STACK_ALIGNMENT``.
|
||||
|
||||
There is one interrupt stack available for each configured processor
|
||||
(:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`). The
|
||||
interrupt stack areas are statically allocated in a special linker section
|
||||
(``.rtemsstack.interrupt``). The placement of this linker section is
|
||||
BSP-specific.
|
||||
(:ref:`CONFIGURE_MAXIMUM_PROCESSORS`). The interrupt stack areas are
|
||||
statically allocated in a special linker section (``.rtemsstack.interrupt``).
|
||||
The placement of this linker section is BSP-specific.
|
||||
|
||||
Some BSPs use the interrupt stack as the initialization stack which is used
|
||||
to perform the sequential system initialization before the multithreading
|
||||
@ -137,8 +154,7 @@ NOTES:
|
||||
stack size may still result in undefined behaviour.
|
||||
|
||||
In releases before RTEMS 5.1 the default value was
|
||||
:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
<CONFIGURE_MINIMUM_TASK_STACK_SIZE>` instead of ``CPU_STACK_MINIMUM_SIZE``.
|
||||
:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of ``CPU_STACK_MINIMUM_SIZE``.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
|
||||
.. index:: maximum file descriptors
|
||||
@ -151,24 +167,31 @@ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_FILE_DESCRIPTORS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
If ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` is defined, then the
|
||||
default value is 3, otherwise the default value is 0. Three file
|
||||
descriptors allows RTEMS to support standard input, output, and error I/O
|
||||
streams on ``/dev/console``.
|
||||
The default value is 3.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to ``SIZE_MAX``.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter is set to the maximum number of file like
|
||||
objects that can be concurrently open.
|
||||
The value of this configuration option defines the maximum number of file
|
||||
like objects that can be concurrently open.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
The default value of three file descriptors allows RTEMS to support standard
|
||||
input, output, and error I/O streams on ``/dev/console``.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_PRIORITY
|
||||
.. index:: maximum priority
|
||||
@ -182,21 +205,18 @@ CONFIGURE_MAXIMUM_PRIORITY
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_PRIORITY``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint8_t``).
|
||||
|
||||
RANGE:
|
||||
Valid values for this configuration parameter must be one (1) less than
|
||||
than a power of two (2) between 4 and 256 inclusively. In other words,
|
||||
valid values are 3, 7, 31, 63, 127, and 255.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 255, because RTEMS must support 256 priority levels to
|
||||
be compliant with various standards. These priorities range from zero (0)
|
||||
to 255.
|
||||
The default value is 255.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be
|
||||
an element of {3, 7, 31, 63, 127, 255}.
|
||||
|
||||
DESCRIPTION:
|
||||
For the schedulers
|
||||
For the following schedulers
|
||||
|
||||
* :ref:`SchedulerPriority`, which is the default in uniprocessor
|
||||
configurations and can be configured through the
|
||||
@ -217,8 +237,8 @@ NOTES:
|
||||
The numerically greatest priority is the logically lowest priority in the
|
||||
system and will thus be used by the IDLE task.
|
||||
|
||||
Priority zero (0) is reserved for internal use by RTEMS and is not available
|
||||
to applications.
|
||||
Priority zero is reserved for internal use by RTEMS and is not available to
|
||||
applications.
|
||||
|
||||
Reducing the number of priorities through this configuration option reduces
|
||||
the amount of memory allocated by the schedulers listed above. These
|
||||
@ -228,6 +248,9 @@ NOTES:
|
||||
priority levels (default), 48 bytes for 4 priority levels
|
||||
(``CONFIGURE_MAXIMUM_PRIORITY == 3``).
|
||||
|
||||
The default value is 255, because RTEMS shall support 256 priority levels to
|
||||
be compliant with various standards. These priorities range from 0 to 255.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_PROCESSORS
|
||||
|
||||
.. _CONFIGURE_MAXIMUM_PROCESSORS:
|
||||
@ -238,27 +261,27 @@ CONFIGURE_MAXIMUM_PROCESSORS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_PROCESSORS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 1.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``CPU_MAXIMUM_PROCESSORS``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_PROCESSORS`` must be set to the maximum number of
|
||||
The value of this configuration option defines the maximum number of
|
||||
processors an application intends to use. The number of actually available
|
||||
processors depends on the hardware and may be less. It is recommended to
|
||||
use the smallest value suitable for the application in order to save
|
||||
memory. Each processor needs an idle thread and interrupt stack for
|
||||
example.
|
||||
processors depends on the hardware and may be less. It is recommended to use
|
||||
the smallest value suitable for the application in order to save memory.
|
||||
Each processor needs an IDLE task stack and interrupt stack for example.
|
||||
|
||||
NOTES:
|
||||
If there are more processors available than configured, the rest will be
|
||||
ignored. This configuration define is ignored in uniprocessor
|
||||
configurations.
|
||||
ignored. In uniprocessor configuration, this configuration define is
|
||||
ignored.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
|
||||
.. index:: maximum thread name size
|
||||
@ -271,24 +294,36 @@ CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_THREAD_NAME_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
No restrictions.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 16. This value was chosen for Linux compatibility,
|
||||
see
|
||||
`PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_.
|
||||
The default value is 16.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to ``SIZE_MAX``.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter specifies the maximum thread name size
|
||||
including the terminating `NUL` character.
|
||||
The value of this configuration option defines the maximum thread name size
|
||||
including the terminating ``NUL`` character.
|
||||
|
||||
NOTES:
|
||||
The default value was chosen for Linux compatibility, see
|
||||
`PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_.
|
||||
|
||||
The size of the thread control block is increased by the maximum thread name
|
||||
size. This configuration option is available since RTEMS 5.1.
|
||||
size.
|
||||
|
||||
This configuration option is available since RTEMS 5.1.
|
||||
|
||||
.. index:: CONFIGURE_MEMORY_OVERHEAD
|
||||
|
||||
@ -300,24 +335,37 @@ CONFIGURE_MEMORY_OVERHEAD
|
||||
CONSTANT:
|
||||
``CONFIGURE_MEMORY_OVERHEAD``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the
|
||||
RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
This parameter is set to the number of kilobytes the application wishes to
|
||||
add to the requirements calculated by ``<rtems/confdefs.h>``.
|
||||
The value of this configuration option defines the number of kilobytes the
|
||||
application wishes to add to the RTEMS Workspace size calculated by
|
||||
``<rtems/confdefs.h>``.
|
||||
|
||||
NOTES:
|
||||
This configuration parameter should only be used when it is suspected that
|
||||
a bug in ``<rtems/confdefs.h>`` has resulted in an underestimation.
|
||||
Typically the memory allocation will be too low when an application does
|
||||
not account for all message queue buffers or task stacks.
|
||||
This configuration option should only be used when it is suspected that a bug
|
||||
in ``<rtems/confdefs.h>`` has resulted in an underestimation. Typically the
|
||||
memory allocation will be too low when an application does not account for
|
||||
all message queue buffers or task stacks, see
|
||||
:ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
|
||||
|
||||
.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
|
||||
.. index:: configure message queue buffer memory
|
||||
@ -332,18 +380,29 @@ CONFIGURE_MESSAGE_BUFFER_MEMORY
|
||||
CONSTANT:
|
||||
``CONFIGURE_MESSAGE_BUFFER_MEMORY``
|
||||
|
||||
DATA TYPE:
|
||||
integer summation macro
|
||||
|
||||
RANGE:
|
||||
undefined (zero) or calculation resulting in a positive integer
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is zero.
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the
|
||||
RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
The value of this configuration option defines the number of bytes
|
||||
resereved for message queue buffers in the RTEMS Workspace.
|
||||
The value of this configuration option defines the number of bytes reserved
|
||||
for message queue buffers in the RTEMS Workspace.
|
||||
|
||||
NOTES:
|
||||
The configuration options :ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES` and
|
||||
@ -393,6 +452,7 @@ NOTES:
|
||||
)
|
||||
|
||||
.. index:: CONFIGURE_MICROSECONDS_PER_TICK
|
||||
.. index:: clock tick quantum
|
||||
.. index:: tick quantum
|
||||
|
||||
.. _CONFIGURE_MICROSECONDS_PER_TICK:
|
||||
@ -403,18 +463,25 @@ CONFIGURE_MICROSECONDS_PER_TICK
|
||||
CONSTANT:
|
||||
``CONFIGURE_MICROSECONDS_PER_TICK``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default. When not defined, the clock tick quantum is
|
||||
configured to be 10,000 microseconds which is ten (10) milliseconds.
|
||||
The default value is 10000.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to a Clock Driver specific value.
|
||||
|
||||
* It shall be less than or equal to a Clock Driver specific value.
|
||||
|
||||
* The resulting clock ticks per second should be an integer.
|
||||
|
||||
DESCRIPTION:
|
||||
This constant is used to specify the length of time between clock ticks.
|
||||
The value of this configuration option defines the length of time in
|
||||
microseconds between clock ticks (clock tick quantum).
|
||||
|
||||
When the clock tick quantum value is too low, the system will spend so much
|
||||
time processing clock ticks that it does not have processing time available
|
||||
@ -432,11 +499,11 @@ DESCRIPTION:
|
||||
application.
|
||||
|
||||
NOTES:
|
||||
This configuration parameter has no impact if the Clock Tick Device driver
|
||||
is not configured.
|
||||
This configuration option has no impact if the Clock Driver is not
|
||||
configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
|
||||
|
||||
There may be BSP specific limits on the resolution or maximum value of a
|
||||
clock tick quantum.
|
||||
There may be Clock Driver specific limits on the resolution or maximum value
|
||||
of a clock tick quantum.
|
||||
|
||||
.. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
.. index:: minimum task stack size
|
||||
@ -449,27 +516,35 @@ CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_MINIMUM_TASK_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is architecture-specific.
|
||||
The default value is ``CPU_STACK_MINIMUM_SIZE``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
* It shall be greater than or equal to a
|
||||
BSP-specific and application-specific minimum value.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter defines the minimum stack size in bytes for
|
||||
every user task or thread in the system.
|
||||
The value of this configuration option defines the minimum stack size in
|
||||
bytes for every user task or thread in the system.
|
||||
|
||||
NOTES:
|
||||
Adjusting this parameter should be done with caution. Examining the actual
|
||||
stack usage using the stack checker usage reporting facility is recommended
|
||||
(see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED <CONFIGURE_STACK_CHECKER_ENABLED>`).
|
||||
(see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED`).
|
||||
|
||||
This parameter can be used to lower the minimum from that recommended. This
|
||||
can be used in low memory systems to reduce memory consumption for
|
||||
stacks. However, this must be done with caution as it could increase the
|
||||
stacks. However, this shall be done with caution as it could increase the
|
||||
possibility of a blown task stack.
|
||||
|
||||
This parameter can be used to increase the minimum from that
|
||||
@ -478,12 +553,11 @@ NOTES:
|
||||
|
||||
By default, this configuration parameter defines also the minimum stack
|
||||
size of POSIX threads. This can be changed with the
|
||||
:ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE <CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE>`
|
||||
:ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`
|
||||
configuration option.
|
||||
|
||||
In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was
|
||||
used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE
|
||||
<CONFIGURE_INTERRUPT_STACK_SIZE>`.
|
||||
used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
|
||||
|
||||
.. index:: CONFIGURE_STACK_CHECKER_ENABLED
|
||||
|
||||
@ -524,22 +598,23 @@ CONFIGURE_TICKS_PER_TIMESLICE
|
||||
CONSTANT:
|
||||
``CONFIGURE_TICKS_PER_TIMESLICE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 50.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter specifies the length of the timeslice quantum
|
||||
in ticks for each task.
|
||||
The value of this configuration option defines the length of the timeslice
|
||||
quantum in ticks for each task.
|
||||
|
||||
NOTES:
|
||||
This configuration parameter has no impact if the Clock Tick Device driver
|
||||
is not configured.
|
||||
This configuration option has no impact if the Clock Driver is not
|
||||
configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
|
||||
|
||||
.. index:: CONFIGURE_UNIFIED_WORK_AREAS
|
||||
.. index:: unified work areas
|
||||
@ -587,27 +662,28 @@ CONFIGURE_UNLIMITED_ALLOCATION_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_UNLIMITED_ALLOCATION_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
If not defined and ``CONFIGURE_UNLIMITED_OBJECTS`` is defined, the default
|
||||
value is eight (8).
|
||||
The default value is 8.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall meet the constraints of all
|
||||
object classes to which it is applied.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_UNLIMITED_ALLOCATION_SIZE`` provides an allocation size to use
|
||||
for ``rtems_resource_unlimited`` when using
|
||||
``CONFIGURE_UNLIMITED_OBJECTS``.
|
||||
If :ref:`CONFIGURE_UNLIMITED_OBJECTS` is defined, then the value of this
|
||||
configuration option defines the default objects maximum of all object
|
||||
classes supporting :ref:`ConfigUnlimitedObjects` to
|
||||
``rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)``.
|
||||
|
||||
NOTES:
|
||||
By allowing users to declare all resources as being unlimited the user can
|
||||
avoid identifying and limiting the resources
|
||||
used. ``CONFIGURE_UNLIMITED_OBJECTS`` does not support varying the
|
||||
allocation sizes for different objects; users who want that much control
|
||||
can define the ``rtems_resource_unlimited`` macros themselves.
|
||||
avoid identifying and limiting the resources used.
|
||||
|
||||
The object maximum of each class can be configured also individually using
|
||||
the :c:func:`rtems_resource_unlimited` macro.
|
||||
|
||||
.. index:: CONFIGURE_UNLIMITED_OBJECTS
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
Idle Task Configuration
|
||||
@ -17,22 +18,27 @@ CONFIGURE_IDLE_TASK_BODY
|
||||
CONSTANT:
|
||||
``CONFIGURE_IDLE_TASK_BODY``
|
||||
|
||||
DATA TYPE:
|
||||
Function pointer.
|
||||
|
||||
RANGE:
|
||||
Undefined or valid function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default.
|
||||
If :ref:`BSP_IDLE_TASK_BODY` is defined, then this will be the default value,
|
||||
otherwise the default value is ``_CPU_Thread_Idle_body``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void *( *idle_body )( uintptr_t )``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_IDLE_TASK_BODY`` is set to the function name corresponding to
|
||||
the application specific IDLE thread body. If not specified, the BSP or
|
||||
RTEMS default IDLE thread body will be used.
|
||||
The value of this configuration option initializes the IDLE thread body.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
IDLE threads shall not block. A blocking IDLE thread results in undefined
|
||||
system behaviour because the scheduler assume that at least one ready thread
|
||||
exists.
|
||||
|
||||
IDLE threads can be used to initialize the application, see configuration
|
||||
option :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`.
|
||||
|
||||
.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
|
||||
|
||||
@ -53,30 +59,30 @@ DEFAULT CONFIGURATION:
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration option is defined to indicate that the user has configured
|
||||
**no** user initialization tasks or threads and that the user provided idle
|
||||
**no** user initialization tasks or threads and that the user provided IDLE
|
||||
task will perform application initialization and then transform itself into
|
||||
an idle task.
|
||||
an IDLE task.
|
||||
|
||||
NOTES:
|
||||
If you use this option be careful, the user idle task **cannot** block at all
|
||||
If you use this option be careful, the user IDLE task **cannot** block at all
|
||||
during the initialization sequence. Further, once application
|
||||
initialization is complete, it must make itself preemptible and enter an idle
|
||||
initialization is complete, it shall make itself preemptible and enter an idle
|
||||
body loop.
|
||||
|
||||
The idle task must run at the lowest priority of all tasks in the system.
|
||||
The IDLE task shall run at the lowest priority of all tasks in the system.
|
||||
|
||||
If this configuration option is defined, then it is mandatory to configure a
|
||||
user idle task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option,
|
||||
user IDLE task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option,
|
||||
otherwise a compile time error in the configuration file will occur.
|
||||
|
||||
The application must define exactly one of the following configuration
|
||||
The application shall define exactly one of the following configuration
|
||||
options
|
||||
|
||||
* :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
|
||||
|
||||
* :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
|
||||
|
||||
* :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
|
||||
* `CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
|
||||
|
||||
otherwise a compile time error in the configuration file will occur.
|
||||
|
||||
@ -90,18 +96,27 @@ CONFIGURE_IDLE_TASK_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_IDLE_TASK_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Undefined or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is RTEMS_MINIMUM_STACK_SIZE.
|
||||
The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to a
|
||||
BSP-specific and application-specific minimum value.
|
||||
|
||||
* It shall be small enough so that the IDLE
|
||||
task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``size_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_IDLE_TASK_STACK_SIZE`` is set to the desired stack size for the
|
||||
The value of this configuration option defines the task stack size for an
|
||||
IDLE task.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
In SMP configurations, there is one IDLE task per configured processor, see
|
||||
:ref:`CONFIGURE_MAXIMUM_PROCESSORS`.
|
||||
|
@ -48,17 +48,18 @@ CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 32.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` is the maximum number of
|
||||
The value of this configuration option defines the maximum number of
|
||||
concurrently active global objects in a multiprocessor system.
|
||||
|
||||
NOTES:
|
||||
@ -75,18 +76,19 @@ CONFIGURE_MP_MAXIMUM_NODES
|
||||
CONSTANT:
|
||||
``CONFIGURE_MP_MAXIMUM_NODES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 2.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MP_MAXIMUM_NODES`` is the maximum number of nodes in a
|
||||
multiprocessor system.
|
||||
The value of this configuration option defines the maximum number of nodes in
|
||||
a multiprocessor system.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
@ -101,18 +103,20 @@ CONFIGURE_MP_MAXIMUM_PROXIES
|
||||
CONSTANT:
|
||||
``CONFIGURE_MP_MAXIMUM_PROXIES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Undefined or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 32.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MP_MAXIMUM_PROXIES`` is the maximum number of concurrently
|
||||
active thread/task proxies on this node in a multiprocessor system.
|
||||
The value of this configuration option defines the maximum number of
|
||||
concurrently active thread/task proxies on this node in a multiprocessor
|
||||
system.
|
||||
|
||||
NOTES:
|
||||
Since a proxy is used to represent a remote task/thread which is blocking
|
||||
@ -130,18 +134,19 @@ CONFIGURE_MP_MPCI_TABLE_POINTER
|
||||
CONSTANT:
|
||||
``CONFIGURE_MP_MPCI_TABLE_POINTER``
|
||||
|
||||
DATA TYPE:
|
||||
pointer to ``rtems_mpci_table``
|
||||
|
||||
RANGE:
|
||||
undefined or valid pointer
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
This is not defined by default.
|
||||
The default value is ``&MPCI_table``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a pointer to
|
||||
:c:type:`rtems_mpci_table`.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MP_MPCI_TABLE_POINTER`` is the pointer to the MPCI
|
||||
Configuration Table. The default value of this field is``&MPCI_table``.
|
||||
The value of this configuration option initializes the MPCI Configuration
|
||||
Table.
|
||||
|
||||
NOTES:
|
||||
RTEMS provides a Shared Memory MPCI Device Driver which can be used on any
|
||||
@ -158,19 +163,19 @@ CONFIGURE_MP_NODE_NUMBER
|
||||
CONSTANT:
|
||||
``CONFIGURE_MP_NODE_NUMBER``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``NODE_NUMBER``, which is assumed to be set by the
|
||||
compilation environment.
|
||||
The default value is ``NODE_NUMBER``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be greater than or equal to 0
|
||||
and less than or equal to ``UINT32_MAX``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MP_NODE_NUMBER`` is the node number of this node in a
|
||||
multiprocessor system.
|
||||
The value of this configuration option defines the node number of this node
|
||||
in a multiprocessor system.
|
||||
|
||||
NOTES:
|
||||
In the RTEMS Multiprocessing Test Suite, the node number is derived from
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
POSIX API Configuration
|
||||
@ -20,21 +21,36 @@ CONFIGURE_MAXIMUM_POSIX_KEYS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_KEYS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_KEYS`` is the maximum number of POSIX API Keys
|
||||
that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of POSIX
|
||||
API Keys that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
|
||||
|
||||
@ -46,24 +62,39 @@ CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is
|
||||
:ref:`CONFIGURE_MAXIMUM_POSIX_KEYS <CONFIGURE_MAXIMUM_POSIX_KEYS>` *
|
||||
:ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>` +
|
||||
:ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
|
||||
:ref:`CONFIGURE_MAXIMUM_POSIX_KEYS` *
|
||||
:ref:`CONFIGURE_MAXIMUM_TASKS` +
|
||||
:ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS`` is the maximum number of key
|
||||
The value of this configuration option defines the maximum number of key
|
||||
value pairs used by POSIX API Keys that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
A key value pair is created by :c:func:`pthread_setspecific` if the value
|
||||
is not :c:macro:`NULL`, otherwise it is deleted.
|
||||
@ -78,23 +109,42 @@ CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the
|
||||
RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``uintptr_t``.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` is the maximum number of POSIX
|
||||
The value of this configuration option defines the maximum number of POSIX
|
||||
API Message Queues that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode. You have
|
||||
to account for the memory used to store the messages of each message queue,
|
||||
see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`. You have to account for the memory used to
|
||||
store the messages of each message queue, see
|
||||
:ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
|
||||
|
||||
@ -106,17 +156,28 @@ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the
|
||||
RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` is the maximum number of POSIX
|
||||
The value of this configuration option defines the maximum number of POSIX
|
||||
API Queued Signals that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
@ -135,25 +196,44 @@ CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the
|
||||
RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
|
||||
not overflow an integer of type ``uintptr_t``.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` is the maximum number of POSIX API
|
||||
Named Semaphores that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of POSIX
|
||||
API Named Semaphores that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
Named semaphores are created with ``sem_open()``. Semaphores initialized
|
||||
with ``sem_init()`` are not affected by this configuration option since the
|
||||
storage space for these semaphores is user-provided.
|
||||
Named semaphores are created with :c:func:`sem_open()`. Semaphores
|
||||
initialized with :c:func:`sem_init()` are not affected by this configuration
|
||||
option since the storage space for these semaphores is user-provided.
|
||||
|
||||
.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||
|
||||
@ -165,32 +245,46 @@ CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_THREADS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
|
||||
Threads that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of POSIX
|
||||
API Threads that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
This calculations for the required memory in the RTEMS Workspace for
|
||||
threads assume that each thread has a minimum stack size and has floating
|
||||
point support enabled. The configuration parameter
|
||||
``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify thread stack
|
||||
requirements *ABOVE* the minimum size required. See :ref:`Reserve
|
||||
point support enabled. The configuration option
|
||||
:ref:`CONFIGURE_EXTRA_TASK_STACKS` is used to specify thread stack
|
||||
requirements **above** the minimum size required. See :ref:`Reserve
|
||||
Task/Thread Stack Memory Above Minimum` for more information about
|
||||
``CONFIGURE_EXTRA_TASK_STACKS``.
|
||||
|
||||
The maximum number of Classic API Tasks is specified by
|
||||
:ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
|
||||
:ref:`CONFIGURE_MAXIMUM_TASKS`.
|
||||
|
||||
All POSIX threads have floating point enabled.
|
||||
|
||||
@ -204,21 +298,36 @@ CONFIGURE_MAXIMUM_POSIX_TIMERS
|
||||
CONSTANT:
|
||||
``CONFIGURE_MAXIMUM_POSIX_TIMERS``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``uint32_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 0.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to 0.
|
||||
|
||||
* It shall be less than or equal to 65535.
|
||||
|
||||
* It shall be less than or equal to a
|
||||
BSP-specific and application-specific value which depends on the size of the
|
||||
memory available to the application.
|
||||
|
||||
* It may be defined through
|
||||
:c:func:`rtems_resource_unlimited` the enable unlimited objects for this
|
||||
object class, if the value passed to :c:func:`rtems_resource_unlimited`
|
||||
satisfies all other constraints of this configuration option.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_MAXIMUM_POSIX_TIMERS`` is the maximum number of POSIX API
|
||||
Timers that can be concurrently active.
|
||||
The value of this configuration option defines the maximum number of POSIX
|
||||
API Timers that can be concurrently active.
|
||||
|
||||
NOTES:
|
||||
This object class can be configured in unlimited allocation mode.
|
||||
This object class can be configured in unlimited allocation mode, see
|
||||
:ref:`ConfigUnlimitedObjects`.
|
||||
|
||||
Timers are only available if RTEMS was built with the
|
||||
``--enable-posix`` build configuration option.
|
||||
@ -234,19 +343,27 @@ CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is two times the value of
|
||||
:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE <CONFIGURE_MINIMUM_TASK_STACK_SIZE>`.
|
||||
:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
* It shall be greater than or equal to a
|
||||
BSP-specific and application-specific minimum value.
|
||||
|
||||
DESCRIPTION:
|
||||
This configuration parameter defines the minimum stack size in bytes for
|
||||
every POSIX thread in the system.
|
||||
The value of this configuration option defines the minimum stack size in
|
||||
bytes for every POSIX thread in the system.
|
||||
|
||||
NOTES:
|
||||
None.
|
||||
|
@ -1,5 +1,6 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
|
||||
|
||||
POSIX Initialization Thread Configuration
|
||||
@ -18,23 +19,23 @@ CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
|
||||
CONSTANT:
|
||||
``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT``
|
||||
|
||||
DATA TYPE:
|
||||
POSIX thread function pointer (``void *(*entry_point)(void *)``).
|
||||
|
||||
RANGE:
|
||||
Undefined or a valid POSIX thread function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``POSIX_Init``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void *( *entry_point )( void * )``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT`` is the entry point
|
||||
(a.k.a. function name) of the single initialization thread defined by the
|
||||
POSIX API Initialization Threads Table.
|
||||
The value of this configuration option initializes the entry point of the
|
||||
POSIX API initialization thread.
|
||||
|
||||
NOTES:
|
||||
The user must implement the function ``POSIX_Init`` or the function name
|
||||
provided in this configuration parameter.
|
||||
The application shall provide the function referenced by this configuration
|
||||
option.
|
||||
|
||||
.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
|
||||
|
||||
@ -46,25 +47,28 @@ CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
|
||||
CONSTANT:
|
||||
``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE``
|
||||
|
||||
DATA TYPE:
|
||||
Unsigned integer (``size_t``).
|
||||
|
||||
RANGE:
|
||||
Zero or positive.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is 2 \* RTEMS_MINIMUM_STACK_SIZE.
|
||||
The default value is :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall satisfy all of the following
|
||||
constraints:
|
||||
|
||||
* It shall be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
|
||||
|
||||
* It shall be small enough so that the task
|
||||
stack space calculation carried out by ``<rtems/confdefs.h>`` does not
|
||||
overflow an integer of type ``uintptr_t``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE`` is the stack size of the single
|
||||
initialization thread defined by the POSIX API Initialization Threads
|
||||
Table.
|
||||
The value of this configuration option defines the thread stack size of the
|
||||
POSIX API initialization thread.
|
||||
|
||||
NOTES:
|
||||
If the stack size specified is greater than the configured minimum, it must
|
||||
be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``. See :ref:`Reserve
|
||||
Task/Thread Stack Memory Above Minimum` for more information about
|
||||
``CONFIGURE_EXTRA_TASK_STACKS``.
|
||||
None.
|
||||
|
||||
.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
|
||||
|
||||
@ -88,12 +92,12 @@ DESCRIPTION:
|
||||
initialization thread is configured.
|
||||
|
||||
NOTES:
|
||||
The application must define exactly one of the following configuration
|
||||
The application shall define exactly one of the following configuration
|
||||
options
|
||||
|
||||
* :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
|
||||
|
||||
* :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
|
||||
* `CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
|
||||
|
||||
* :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
|
||||
|
||||
|
@ -135,32 +135,44 @@ CONFIGURE_SCHEDULER_NAME
|
||||
CONSTANT:
|
||||
``CONFIGURE_SCHEDULER_NAME``
|
||||
|
||||
DATA TYPE:
|
||||
RTEMS Name (``rtems_name``).
|
||||
|
||||
RANGE:
|
||||
Any value.
|
||||
OPTION TYPE:
|
||||
This configuration option is an integer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default name is
|
||||
The default value is
|
||||
|
||||
- ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
|
||||
- ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
|
||||
- ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
|
||||
- ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
|
||||
- ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
|
||||
- ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
|
||||
- ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
|
||||
- ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
|
||||
* ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
|
||||
|
||||
* ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
|
||||
|
||||
* ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
|
||||
|
||||
* ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
|
||||
|
||||
* ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
|
||||
|
||||
* ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
|
||||
|
||||
* ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
|
||||
|
||||
* ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be a valid integer of type
|
||||
``rtems_name``.
|
||||
|
||||
DESCRIPTION:
|
||||
Schedulers can be identified via ``rtems_scheduler_ident``. The name of
|
||||
the scheduler is determined by the configuration.
|
||||
The value of this configuration option defines the name of the default
|
||||
scheduler.
|
||||
|
||||
NOTES:
|
||||
This scheduler configuration option is an advanced configuration option.
|
||||
Think twice before you use it.
|
||||
|
||||
Schedulers can be identified via c:func:`rtems_scheduler_ident`.
|
||||
|
||||
Use :c:func:`rtems_build_name` to define the scheduler name.
|
||||
|
||||
.. index:: CONFIGURE_SCHEDULER_PRIORITY
|
||||
|
||||
.. _CONFIGURE_SCHEDULER_PRIORITY:
|
||||
@ -352,7 +364,7 @@ DEFAULT CONFIGURATION:
|
||||
enabled.
|
||||
|
||||
DESCRIPTION:
|
||||
In case this configuration option is defined, then the user must provide a
|
||||
In case this configuration option is defined, then the user shall provide a
|
||||
scheduler algorithm to the application.
|
||||
|
||||
NOTES:
|
||||
@ -360,18 +372,18 @@ NOTES:
|
||||
Think twice before you use it.
|
||||
|
||||
RTEMS allows the application to provide its own task/thread scheduling
|
||||
algorithm. In order to do this, one must define
|
||||
algorithm. In order to do this, one shall define
|
||||
``CONFIGURE_SCHEDULER_USER`` to indicate the application provides its own
|
||||
scheduling algorithm. If ``CONFIGURE_SCHEDULER_USER`` is defined then the
|
||||
following additional macros must be defined:
|
||||
following additional macros shall be defined:
|
||||
|
||||
- ``CONFIGURE_SCHEDULER`` must be defined to a static definition of
|
||||
- ``CONFIGURE_SCHEDULER`` shall be defined to a static definition of
|
||||
the scheduler data structures of the user scheduler.
|
||||
|
||||
- ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` must be defined to a scheduler
|
||||
- ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` shall be defined to a scheduler
|
||||
table entry initializer for the user scheduler.
|
||||
|
||||
- ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` must be defined to the type of
|
||||
- ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` shall be defined to the type of
|
||||
the per-thread information of the user scheduler.
|
||||
|
||||
At this time, the mechanics and requirements for writing a new scheduler
|
||||
|
@ -22,28 +22,29 @@ CONFIGURE_TASK_STACK_ALLOCATOR
|
||||
CONSTANT:
|
||||
``CONFIGURE_TASK_STACK_ALLOCATOR``
|
||||
|
||||
DATA TYPE:
|
||||
Function pointer.
|
||||
|
||||
RANGE:
|
||||
Undefined or valid function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``_Workspace_Allocate``, which indicates that task
|
||||
stacks will be allocated from the RTEMS Workspace.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void *( *allocate )( size_t )``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_TASK_STACK_ALLOCATOR`` may point to a user provided routine to
|
||||
allocate task stacks.
|
||||
The value of this configuration option initializes the stack allocator
|
||||
allocate handler.
|
||||
|
||||
NOTES:
|
||||
A correctly configured system must configure the following to be consistent:
|
||||
A correctly configured system shall configure the following to be consistent:
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
|
||||
- :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_ALLOCATOR``
|
||||
- `CONFIGURE_TASK_STACK_ALLOCATOR`
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_DEALLOCATOR``
|
||||
- :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR`
|
||||
|
||||
.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
|
||||
|
||||
@ -55,29 +56,28 @@ CONFIGURE_TASK_STACK_ALLOCATOR_INIT
|
||||
CONSTANT:
|
||||
``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
|
||||
|
||||
DATA TYPE:
|
||||
Function pointer.
|
||||
|
||||
RANGE:
|
||||
Undefined, NULL or valid function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is NULL, which indicates that task stacks will be
|
||||
allocated from the RTEMS Workspace.
|
||||
The default value is ``NULL``.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void ( *initialize )( size_t )`` or to ``NULL``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_TASK_STACK_ALLOCATOR_INIT`` configures the initialization
|
||||
method for an application or BSP specific task stack allocation
|
||||
implementation.
|
||||
The value of this configuration option initializes the stack allocator
|
||||
initialization handler.
|
||||
|
||||
NOTES:
|
||||
A correctly configured system must configure the following to be consistent:
|
||||
A correctly configured system shall configure the following to be consistent:
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
|
||||
- `CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_ALLOCATOR``
|
||||
- :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_DEALLOCATOR``
|
||||
- :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR`
|
||||
|
||||
.. index:: CONFIGURE_TASK_STACK_DEALLOCATOR
|
||||
.. index:: task stack deallocator
|
||||
@ -90,25 +90,26 @@ CONFIGURE_TASK_STACK_DEALLOCATOR
|
||||
CONSTANT:
|
||||
``CONFIGURE_TASK_STACK_DEALLOCATOR``
|
||||
|
||||
DATA TYPE:
|
||||
Function pointer.
|
||||
|
||||
RANGE:
|
||||
Undefined or valid function pointer.
|
||||
OPTION TYPE:
|
||||
This configuration option is an initializer define.
|
||||
|
||||
DEFAULT VALUE:
|
||||
The default value is ``_Workspace_Free``, which indicates that task stacks
|
||||
will be allocated from the RTEMS Workspace.
|
||||
|
||||
VALUE CONSTRAINTS:
|
||||
The value of this configuration option shall be defined to a valid function
|
||||
pointer of the type ``void ( *deallocate )( void * )``.
|
||||
|
||||
DESCRIPTION:
|
||||
``CONFIGURE_TASK_STACK_DEALLOCATOR`` may point to a user provided routine
|
||||
to free task stacks.
|
||||
The value of this configuration option initializes the stack allocator
|
||||
deallocate handler.
|
||||
|
||||
NOTES:
|
||||
A correctly configured system must configure the following to be consistent:
|
||||
A correctly configured system shall configure the following to be consistent:
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
|
||||
- :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_ALLOCATOR``
|
||||
- :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
|
||||
|
||||
- ``CONFIGURE_TASK_STACK_DEALLOCATOR``
|
||||
- `CONFIGURE_TASK_STACK_DEALLOCATOR`
|
||||
|
Loading…
x
Reference in New Issue
Block a user