source: rtems-docs/c-user/config/idle-task.rst @ 1c8ce33

Last change on this file since 1c8ce33 was 1c8ce33, checked in by Sebastian Huber <sebastian.huber@…>, on 11/16/21 at 07:17:31

c-user: Use rubric for configuration options

Clear the page for each configuration options similar to the directives.

Use a rubric instead of a definition list for the application
configuration options similar to the directive documentation pages. For
direcives and application configuration options use the same rubric
order.

Generalize value constraints to constraints.

This patch does not change hand written content.

  • Property mode set to 100644
File size: 4.8 KB
Line 
1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
4.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
5
6.. This file is part of the RTEMS quality process and was automatically
7.. generated.  If you find something that needs to be fixed or
8.. worded better please post a report or patch to an RTEMS mailing list
9.. or raise a bug report:
10..
11.. https://www.rtems.org/bugs.html
12..
13.. For information on updating and regenerating please refer to the How-To
14.. section in the Software Requirements Engineering chapter of the
15.. RTEMS Software Engineering manual.  The manual is provided as a part of
16.. a release.  For development sources please refer to the online
17.. documentation at:
18..
19.. https://docs.rtems.org
20
21.. Generated from spec:/acfg/if/group-idle
22
23Idle Task Configuration
24=======================
25
26This section describes configuration options related to the idle tasks.
27
28.. Generated from spec:/acfg/if/idle-task-body
29
30.. raw:: latex
31
32    \clearpage
33
34.. index:: CONFIGURE_IDLE_TASK_BODY
35
36.. _CONFIGURE_IDLE_TASK_BODY:
37
38CONFIGURE_IDLE_TASK_BODY
39------------------------
40
41.. rubric:: CONSTANT:
42
43``CONFIGURE_IDLE_TASK_BODY``
44
45.. rubric:: OPTION TYPE:
46
47This configuration option is an initializer define.
48
49.. rubric:: DEFAULT VALUE:
50
51If :ref:`BSP_IDLE_TASK_BODY` is defined, then this will be the default value,
52otherwise the default value is ``_CPU_Thread_Idle_body``.
53
54.. rubric:: DESCRIPTION:
55
56The value of this configuration option initializes the IDLE thread body.
57
58.. rubric:: NOTES:
59
60IDLE threads shall not block.  A blocking IDLE thread results in undefined
61system behaviour because the scheduler assume that at least one ready thread
62exists.
63
64IDLE threads can be used to initialize the application, see configuration
65option :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`.
66
67.. rubric:: CONSTRAINTS:
68
69The value of the configuration option shall be defined to a valid function
70pointer of the type ``void *( *idle_body )( uintptr_t )``.
71
72.. Generated from spec:/acfg/if/idle-task-init-appl
73
74.. raw:: latex
75
76    \clearpage
77
78.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
79
80.. _CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION:
81
82CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
83-------------------------------------------
84
85.. rubric:: CONSTANT:
86
87``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION``
88
89.. rubric:: OPTION TYPE:
90
91This configuration option is a boolean feature define.
92
93.. rubric:: DEFAULT CONFIGURATION:
94
95If this configuration option is undefined, then the user is assumed to
96provide one or more initialization tasks.
97
98.. rubric:: DESCRIPTION:
99
100This configuration option is defined to indicate that the user has configured
101**no** user initialization tasks or threads and that the user provided IDLE
102task will perform application initialization and then transform itself into
103an IDLE task.
104
105.. rubric:: NOTES:
106
107If you use this option be careful, the user IDLE task **cannot** block at all
108during the initialization sequence.  Further, once application
109initialization is complete, it shall make itself preemptible and enter an idle
110body loop.
111
112The IDLE task shall run at the lowest priority of all tasks in the system.
113
114If this configuration option is defined, then it is mandatory to configure a
115user IDLE task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option,
116otherwise a compile time error in the configuration file will occur.
117
118The application shall define exactly one of the following configuration
119options
120
121* :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
122
123* :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
124
125* ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION``
126
127otherwise a compile time error in the configuration file will occur.
128
129.. Generated from spec:/acfg/if/idle-task-stack-size
130
131.. raw:: latex
132
133    \clearpage
134
135.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE
136
137.. _CONFIGURE_IDLE_TASK_STACK_SIZE:
138
139CONFIGURE_IDLE_TASK_STACK_SIZE
140------------------------------
141
142.. rubric:: CONSTANT:
143
144``CONFIGURE_IDLE_TASK_STACK_SIZE``
145
146.. rubric:: OPTION TYPE:
147
148This configuration option is an integer define.
149
150.. rubric:: DEFAULT VALUE:
151
152The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
153
154.. rubric:: DESCRIPTION:
155
156The value of this configuration option defines the task stack size for an
157IDLE task.
158
159.. rubric:: NOTES:
160
161In SMP configurations, there is one IDLE task per configured processor, see
162:ref:`CONFIGURE_MAXIMUM_PROCESSORS`.
163
164.. rubric:: CONSTRAINTS:
165
166The following constraints apply to this configuration option:
167
168* The value of the configuration option shall be greater than or equal to a
169  BSP-specific and application-specific minimum value.
170
171* The value of the configuration option shall be small enough so that the IDLE
172  task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
173  overflow an integer of type `size_t
174  <https://en.cppreference.com/w/c/types/size_t>`_.
Note: See TracBrowser for help on using the repository browser.