source: rtems-docs/c-user/config/bsp-related.rst @ 7bad894

5
Last change on this file since 7bad894 was 7bad894, checked in by Sebastian Huber <sebastian.huber@…>, on 03/27/20 at 11:53:09

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.

  • Property mode set to 100644
File size: 6.8 KB
Line 
1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
4.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
5
6BSP Related Configuration Options
7=================================
8
9This section describes configuration options related to the BSP.  Some
10configuration options may have a BSP-specific setting which is defined by
11``<bsp.h>``.  The BSP-specific settings can be disabled by the
12:ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option.
13
14.. index:: BSP_IDLE_TASK_BODY
15
16.. _BSP_IDLE_TASK_BODY:
17
18BSP_IDLE_TASK_BODY
19------------------
20
21CONSTANT:
22    ``BSP_IDLE_TASK_BODY``
23
24OPTION TYPE:
25    This configuration option is an initializer define.
26
27DEFAULT VALUE:
28    The default value is BSP-specific.
29
30VALUE CONSTRAINTS:
31    The value of this configuration option shall be defined to a valid function
32    pointer of the type ``void *( *idle_body )( uintptr_t )``.
33
34DESCRIPTION:
35    If
36
37    * this configuration option is defined by the BSP
38
39    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
40
41    then the value of this configuration option defines the default value of
42    :ref:`CONFIGURE_IDLE_TASK_BODY`.
43
44NOTES:
45    As it has knowledge of the specific CPU model, system controller logic, and
46    peripheral buses, a BSP-specific IDLE task may be capable of turning
47    components off to save power during extended periods of no task activity.
48
49.. index:: BSP_IDLE_TASK_STACK_SIZE
50
51.. _BSP_IDLE_TASK_STACK_SIZE:
52
53BSP_IDLE_TASK_STACK_SIZE
54------------------------
55
56CONSTANT:
57    ``BSP_IDLE_TASK_STACK_SIZE``
58
59OPTION TYPE:
60    This configuration option is an integer define.
61
62DEFAULT VALUE:
63    The default value is BSP-specific.
64
65VALUE CONSTRAINTS:
66    The value of this configuration option shall satisfy all of the following
67    constraints:
68
69    * It shall be greater than or equal to a
70      BSP-specific and application-specific minimum value.
71
72    * It shall be small enough so that the IDLE
73      task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
74      overflow an integer of type ``size_t``.
75
76DESCRIPTION:
77    If
78
79    * this configuration option is defined by the BSP
80
81    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
82
83    then the value of this configuration option defines the default value of
84    :ref:`CONFIGURE_IDLE_TASK_SIZE`.
85
86NOTES:
87    None.
88
89.. index:: BSP_INITIAL_EXTENSION
90
91.. _BSP_INITIAL_EXTENSION:
92
93BSP_INITIAL_EXTENSION
94---------------------
95
96CONSTANT:
97    ``BSP_INITIAL_EXTENSION``
98
99OPTION TYPE:
100    This configuration option is an initializer define.
101
102DEFAULT VALUE:
103    The default value is BSP-specific.
104
105VALUE CONSTRAINTS:
106    The value of this configuration option shall be a list of initializers for
107    structures of type :c:type:`rtems_extensions_table`.
108
109DESCRIPTION:
110    If
111
112    * this configuration option is defined by the BSP
113
114    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
115
116    then the value of this configuration option is used to initialize the table
117    of initial user extensions.
118
119NOTES:
120    The value of this configuration option is placed after the entries of all
121    other initial user extensions.
122
123.. index:: BSP_INTERRUPT_STACK_SIZE
124
125.. _BSP_INTERRUPT_STACK_SIZE:
126
127BSP_INTERRUPT_STACK_SIZE
128------------------------
129
130CONSTANT:
131    ``BSP_INTERRUPT_STACK_SIZE``
132
133OPTION TYPE:
134    This configuration option is an integer define.
135
136DEFAULT VALUE:
137    The default value is BSP-specific.
138
139VALUE CONSTRAINTS:
140    The value of this configuration option shall satisfy all of the following
141    constraints:
142
143    * It shall be greater than or equal to a
144      BSP-specific and application-specific minimum value.
145
146    * It shall be small enough so that the
147      interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` does
148      not overflow an integer of type ``size_t``.
149
150    * It shall be aligned according to
151      ``CPU_INTERRUPT_STACK_ALIGNMENT``.
152
153DESCRIPTION:
154    If
155
156    * this configuration option is defined by the BSP
157
158    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
159
160    then the value of this configuration option defines the default value of
161    :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
162
163NOTES:
164    None.
165
166.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS
167
168.. _CONFIGURE_BSP_PREREQUISITE_DRIVERS:
169
170CONFIGURE_BSP_PREREQUISITE_DRIVERS
171----------------------------------
172
173CONSTANT:
174    ``CONFIGURE_BSP_PREREQUISITE_DRIVERS``
175
176OPTION TYPE:
177    This configuration option is an initializer define.
178
179DEFAULT VALUE:
180    The default value is BSP-specific.
181
182VALUE CONSTRAINTS:
183    The value of this configuration option shall be a list of initializers for
184    structures of type :c:type:`rtems_extensions_table`.
185
186DESCRIPTION:
187    If
188
189    * this configuration option is defined by the BSP
190
191    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
192
193    then the value of this configuration option is used to initialize the table
194    of initial user extensions.
195
196NOTES:
197    The value of this configuration option is placed before the entries of all
198    other initial user extensions (including
199    :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`).
200
201.. index:: CONFIGURE_DISABLE_BSP_SETTINGS
202
203.. _CONFIGURE_DISABLE_BSP_SETTINGS:
204
205CONFIGURE_DISABLE_BSP_SETTINGS
206------------------------------
207
208CONSTANT:
209    ``CONFIGURE_DISABLE_BSP_SETTINGS``
210
211OPTION TYPE:
212    This configuration option is a boolean feature define.
213
214DEFAULT CONFIGURATION:
215    If this configuration option is undefined, then the described feature is not
216    enabled.
217
218DESCRIPTION:
219    In case this configuration option is defined, then the following BSP related
220    configuration options are undefined:
221
222    - :ref:`BSP_IDLE_TASK_BODY`
223
224    - :ref:`BSP_IDLE_TASK_STACK_SIZE`
225
226    - :ref:`BSP_INITIAL_EXTENSION`
227
228    - :ref:`BSP_INTERRUPT_STACK_SIZE`
229
230    - :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS`
231
232    - :ref:`CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK`
233
234NOTES:
235    None.
236
237.. index:: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
238
239.. _CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK:
240
241CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
242----------------------------------
243
244CONSTANT:
245    ``CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK``
246
247OPTION TYPE:
248    This configuration option is a boolean feature define.
249
250DEFAULT CONFIGURATION:
251    If this configuration option is undefined, then the described feature is not
252    enabled.
253
254DESCRIPTION:
255    If
256
257    * this configuration option is defined by the BSP
258
259    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
260
261    then not all memory is made available to the C Program Heap immediately at
262    system initialization time.  When :c:func:`malloc()` or other standard memory
263    allocation functions are unable to allocate memory, they will call the BSP
264    supplied :c:func:`sbrk()` function to obtain more memory.
265
266NOTES:
267    This option should not be defined by the application. Only the BSP knows how
268    it allocates memory to the C Program Heap.
Note: See TracBrowser for help on using the repository browser.