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