1 | .. SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
2 | |
---|
3 | .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) |
---|
4 | |
---|
5 | General System Configuration |
---|
6 | ============================ |
---|
7 | |
---|
8 | This section defines the general system configuration options supported by |
---|
9 | ``<rtems/confdefs.h>``. |
---|
10 | |
---|
11 | .. index:: CONFIGURE_DIRTY_MEMORY |
---|
12 | |
---|
13 | .. _CONFIGURE_DIRTY_MEMORY: |
---|
14 | |
---|
15 | CONFIGURE_DIRTY_MEMORY |
---|
16 | ---------------------- |
---|
17 | |
---|
18 | CONSTANT: |
---|
19 | ``CONFIGURE_DIRTY_MEMORY`` |
---|
20 | |
---|
21 | DATA TYPE: |
---|
22 | Boolean feature macro. |
---|
23 | |
---|
24 | RANGE: |
---|
25 | Defined or undefined. |
---|
26 | |
---|
27 | DEFAULT VALUE: |
---|
28 | By default, the memory used by the RTEMS Workspace and the C Program Heap |
---|
29 | is uninitialized memory. |
---|
30 | |
---|
31 | DESCRIPTION: |
---|
32 | This macro indicates whether RTEMS should dirty the memory used by the |
---|
33 | RTEMS Workspace and the C Program Heap as part of its initialization. If |
---|
34 | defined, the memory areas are dirtied with a ``0xCF`` byte pattern. |
---|
35 | Otherwise, they are not. |
---|
36 | |
---|
37 | NOTES: |
---|
38 | Dirtying memory can add significantly to system boot time. It may assist in |
---|
39 | finding code that incorrectly assumes the contents of free memory areas is |
---|
40 | cleared to zero during system initialization. In case |
---|
41 | :ref:`CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY` is also defined, then the |
---|
42 | memory is first dirtied and then zeroed. |
---|
43 | |
---|
44 | .. index:: CONFIGURE_EXTRA_TASK_STACKS |
---|
45 | .. index:: memory for task tasks |
---|
46 | |
---|
47 | .. _CONFIGURE_EXTRA_TASK_STACKS: |
---|
48 | |
---|
49 | CONFIGURE_EXTRA_TASK_STACKS |
---|
50 | --------------------------- |
---|
51 | |
---|
52 | CONSTANT: |
---|
53 | ``CONFIGURE_EXTRA_TASK_STACKS`` |
---|
54 | |
---|
55 | DATA TYPE: |
---|
56 | Unsigned integer (``size_t``). |
---|
57 | |
---|
58 | RANGE: |
---|
59 | Undefined or positive. |
---|
60 | |
---|
61 | DEFAULT VALUE: |
---|
62 | The default value is 0. |
---|
63 | |
---|
64 | DESCRIPTION: |
---|
65 | This configuration parameter is set to the number of bytes the applications |
---|
66 | wishes to add to the task stack requirements calculated by |
---|
67 | ``<rtems/confdefs.h>``. |
---|
68 | |
---|
69 | NOTES: |
---|
70 | This parameter is very important. If the application creates tasks with |
---|
71 | stacks larger then the minimum, then that memory is NOT accounted for by |
---|
72 | ``<rtems/confdefs.h>``. |
---|
73 | |
---|
74 | .. index:: CONFIGURE_INITIAL_EXTENSIONS |
---|
75 | |
---|
76 | .. _CONFIGURE_INITIAL_EXTENSIONS: |
---|
77 | |
---|
78 | CONFIGURE_INITIAL_EXTENSIONS |
---|
79 | ---------------------------- |
---|
80 | |
---|
81 | CONSTANT: |
---|
82 | ``CONFIGURE_INITIAL_EXTENSIONS`` |
---|
83 | |
---|
84 | DATA TYPE: |
---|
85 | List of user extension initializers (``rtems_extensions_table``). |
---|
86 | |
---|
87 | RANGE: |
---|
88 | Undefined or a list of one or more user extensions. |
---|
89 | |
---|
90 | DEFAULT VALUE: |
---|
91 | This is not defined by default. |
---|
92 | |
---|
93 | DESCRIPTION: |
---|
94 | If ``CONFIGURE_INITIAL_EXTENSIONS`` is defined by the application, then |
---|
95 | this application specific set of initial extensions will be placed in the |
---|
96 | initial extension table. |
---|
97 | |
---|
98 | NOTES: |
---|
99 | None. |
---|
100 | |
---|
101 | .. index:: CONFIGURE_INTERRUPT_STACK_SIZE |
---|
102 | .. index:: interrupt stack size |
---|
103 | |
---|
104 | .. _CONFIGURE_INTERRUPT_STACK_SIZE: |
---|
105 | |
---|
106 | CONFIGURE_INTERRUPT_STACK_SIZE |
---|
107 | ------------------------------ |
---|
108 | |
---|
109 | CONSTANT: |
---|
110 | ``CONFIGURE_INTERRUPT_STACK_SIZE`` |
---|
111 | |
---|
112 | DATA TYPE: |
---|
113 | Unsigned integer. |
---|
114 | |
---|
115 | RANGE: |
---|
116 | Positive. |
---|
117 | |
---|
118 | DEFAULT VALUE: |
---|
119 | The default value is ``BSP_INTERRUPT_STACK_SIZE`` in case it is defined, |
---|
120 | otherwise the default value is ``CPU_STACK_MINIMUM_SIZE``. |
---|
121 | |
---|
122 | DESCRIPTION: |
---|
123 | The ``CONFIGURE_INTERRUPT_STACK_SIZE`` configuration option defines the |
---|
124 | size of an interrupt stack in bytes. |
---|
125 | |
---|
126 | NOTES: |
---|
127 | The interrupt stack size must be aligned according to |
---|
128 | ``CPU_INTERRUPT_STACK_ALIGNMENT``. |
---|
129 | |
---|
130 | There is one interrupt stack available for each configured processor |
---|
131 | (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`). The |
---|
132 | interrupt stack areas are statically allocated in a special linker section |
---|
133 | (``.rtemsstack.interrupt``). The placement of this linker section is |
---|
134 | BSP-specific. |
---|
135 | |
---|
136 | Some BSPs use the interrupt stack as the initialization stack which is used |
---|
137 | to perform the sequential system initialization before the multithreading |
---|
138 | is started. |
---|
139 | |
---|
140 | The interrupt stacks are covered by the :ref:`stack checker |
---|
141 | <CONFIGURE_STACK_CHECKER_ENABLED>`. However, using a too small interrupt |
---|
142 | stack size may still result in undefined behaviour. |
---|
143 | |
---|
144 | In releases before RTEMS 5.1 the default value was |
---|
145 | :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE |
---|
146 | <CONFIGURE_MINIMUM_TASK_STACK_SIZE>` instead of ``CPU_STACK_MINIMUM_SIZE``. |
---|
147 | |
---|
148 | .. index:: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS |
---|
149 | .. index:: maximum file descriptors |
---|
150 | |
---|
151 | .. _CONFIGURE_MAXIMUM_FILE_DESCRIPTORS: |
---|
152 | |
---|
153 | CONFIGURE_MAXIMUM_FILE_DESCRIPTORS |
---|
154 | ---------------------------------- |
---|
155 | |
---|
156 | CONSTANT: |
---|
157 | ``CONFIGURE_MAXIMUM_FILE_DESCRIPTORS`` |
---|
158 | |
---|
159 | DATA TYPE: |
---|
160 | Unsigned integer (``uint32_t``). |
---|
161 | |
---|
162 | RANGE: |
---|
163 | Zero or positive. |
---|
164 | |
---|
165 | DEFAULT VALUE: |
---|
166 | If ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` is defined, then the |
---|
167 | default value is 3, otherwise the default value is 0. Three file |
---|
168 | descriptors allows RTEMS to support standard input, output, and error I/O |
---|
169 | streams on ``/dev/console``. |
---|
170 | |
---|
171 | DESCRIPTION: |
---|
172 | This configuration parameter is set to the maximum number of file like |
---|
173 | objects that can be concurrently open. |
---|
174 | |
---|
175 | NOTES: |
---|
176 | None. |
---|
177 | |
---|
178 | .. index:: CONFIGURE_MAXIMUM_PRIORITY |
---|
179 | .. index:: maximum priority |
---|
180 | .. index:: number of priority levels |
---|
181 | |
---|
182 | .. _CONFIGURE_MAXIMUM_PRIORITY: |
---|
183 | |
---|
184 | CONFIGURE_MAXIMUM_PRIORITY |
---|
185 | -------------------------- |
---|
186 | |
---|
187 | CONSTANT: |
---|
188 | ``CONFIGURE_MAXIMUM_PRIORITY`` |
---|
189 | |
---|
190 | DATA TYPE: |
---|
191 | Unsigned integer (``uint8_t``). |
---|
192 | |
---|
193 | RANGE: |
---|
194 | Valid values for this configuration parameter must be one (1) less than |
---|
195 | than a power of two (2) between 4 and 256 inclusively. In other words, |
---|
196 | valid values are 3, 7, 31, 63, 127, and 255. |
---|
197 | |
---|
198 | DEFAULT VALUE: |
---|
199 | The default value is 255, because RTEMS must support 256 priority levels to |
---|
200 | be compliant with various standards. These priorities range from zero (0) |
---|
201 | to 255. |
---|
202 | |
---|
203 | DESCRIPTION: |
---|
204 | For the schedulers |
---|
205 | |
---|
206 | * :ref:`SchedulerPriority`, which is the default in uniprocessor |
---|
207 | configurations and can be configured through the |
---|
208 | :ref:`CONFIGURE_SCHEDULER_PRIORITY` configuration option, |
---|
209 | |
---|
210 | * :ref:`SchedulerSMPPriority` which can be configured through the |
---|
211 | :ref:`CONFIGURE_SCHEDULER_PRIORITY_SMP` configuration option, and |
---|
212 | |
---|
213 | * :ref:`SchedulerSMPPriorityAffinity` which can be configured through the |
---|
214 | :ref:`CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP` configuration option |
---|
215 | |
---|
216 | this configuration option specifies the maximum numeric priority of any task |
---|
217 | for these schedulers and one less that the number of priority levels for |
---|
218 | these schedulers. For all other schedulers provided by RTEMS, this |
---|
219 | configuration option has no effect. |
---|
220 | |
---|
221 | NOTES: |
---|
222 | The numerically greatest priority is the logically lowest priority in the |
---|
223 | system and will thus be used by the IDLE task. |
---|
224 | |
---|
225 | Priority zero (0) is reserved for internal use by RTEMS and is not available |
---|
226 | to applications. |
---|
227 | |
---|
228 | Reducing the number of priorities through this configuration option reduces |
---|
229 | the amount of memory allocated by the schedulers listed above. These |
---|
230 | schedulers use a chain control structure per priority and this structure |
---|
231 | consists of three pointers. On a 32-bit architecture, the allocated memory |
---|
232 | is 12 bytes * (``CONFIGURE_MAXIMUM_PRIORITY`` + 1), e.g. 3072 bytes for 256 |
---|
233 | priority levels (default), 48 bytes for 4 priority levels |
---|
234 | (``CONFIGURE_MAXIMUM_PRIORITY == 3``). |
---|
235 | |
---|
236 | .. index:: CONFIGURE_MAXIMUM_PROCESSORS |
---|
237 | |
---|
238 | .. _CONFIGURE_MAXIMUM_PROCESSORS: |
---|
239 | |
---|
240 | CONFIGURE_MAXIMUM_PROCESSORS |
---|
241 | ---------------------------- |
---|
242 | |
---|
243 | CONSTANT: |
---|
244 | ``CONFIGURE_MAXIMUM_PROCESSORS`` |
---|
245 | |
---|
246 | DATA TYPE: |
---|
247 | Unsigned integer (``uint32_t``). |
---|
248 | |
---|
249 | RANGE: |
---|
250 | Positive. |
---|
251 | |
---|
252 | DEFAULT VALUE: |
---|
253 | The default value is 1. |
---|
254 | |
---|
255 | DESCRIPTION: |
---|
256 | ``CONFIGURE_MAXIMUM_PROCESSORS`` must be set to the maximum number of |
---|
257 | processors an application intends to use. The number of actually available |
---|
258 | processors depends on the hardware and may be less. It is recommended to |
---|
259 | use the smallest value suitable for the application in order to save |
---|
260 | memory. Each processor needs an idle thread and interrupt stack for |
---|
261 | example. |
---|
262 | |
---|
263 | NOTES: |
---|
264 | If there are more processors available than configured, the rest will be |
---|
265 | ignored. This configuration define is ignored in uniprocessor |
---|
266 | configurations. |
---|
267 | |
---|
268 | .. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE |
---|
269 | .. index:: maximum thread name size |
---|
270 | |
---|
271 | .. _CONFIGURE_MAXIMUM_THREAD_NAME_SIZE: |
---|
272 | |
---|
273 | CONFIGURE_MAXIMUM_THREAD_NAME_SIZE |
---|
274 | ---------------------------------- |
---|
275 | |
---|
276 | CONSTANT: |
---|
277 | ``CONFIGURE_MAXIMUM_THREAD_NAME_SIZE`` |
---|
278 | |
---|
279 | DATA TYPE: |
---|
280 | Unsigned integer (``size_t``). |
---|
281 | |
---|
282 | RANGE: |
---|
283 | No restrictions. |
---|
284 | |
---|
285 | DEFAULT VALUE: |
---|
286 | The default value is 16. This value was chosen for Linux compatibility, |
---|
287 | see |
---|
288 | `PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_. |
---|
289 | |
---|
290 | DESCRIPTION: |
---|
291 | This configuration parameter specifies the maximum thread name size |
---|
292 | including the terminating `NUL` character. |
---|
293 | |
---|
294 | NOTE: |
---|
295 | The size of the thread control block is increased by the maximum thread name |
---|
296 | size. This configuration option is available since RTEMS 5.1. |
---|
297 | |
---|
298 | .. index:: CONFIGURE_MEMORY_OVERHEAD |
---|
299 | |
---|
300 | .. _CONFIGURE_MEMORY_OVERHEAD: |
---|
301 | |
---|
302 | CONFIGURE_MEMORY_OVERHEAD |
---|
303 | ------------------------- |
---|
304 | |
---|
305 | CONSTANT: |
---|
306 | ``CONFIGURE_MEMORY_OVERHEAD`` |
---|
307 | |
---|
308 | DATA TYPE: |
---|
309 | Unsigned integer (``size_t``). |
---|
310 | |
---|
311 | RANGE: |
---|
312 | Zero or positive. |
---|
313 | |
---|
314 | DEFAULT VALUE: |
---|
315 | The default value is 0. |
---|
316 | |
---|
317 | DESCRIPTION: |
---|
318 | This parameter is set to the number of kilobytes the application wishes to |
---|
319 | add to the requirements calculated by ``<rtems/confdefs.h>``. |
---|
320 | |
---|
321 | NOTES: |
---|
322 | This configuration parameter should only be used when it is suspected that |
---|
323 | a bug in ``<rtems/confdefs.h>`` has resulted in an underestimation. |
---|
324 | Typically the memory allocation will be too low when an application does |
---|
325 | not account for all message queue buffers or task stacks. |
---|
326 | |
---|
327 | .. index:: CONFIGURE_MICROSECONDS_PER_TICK |
---|
328 | .. index:: tick quantum |
---|
329 | |
---|
330 | .. _CONFIGURE_MICROSECONDS_PER_TICK: |
---|
331 | |
---|
332 | CONFIGURE_MICROSECONDS_PER_TICK |
---|
333 | ------------------------------- |
---|
334 | |
---|
335 | CONSTANT: |
---|
336 | ``CONFIGURE_MICROSECONDS_PER_TICK`` |
---|
337 | |
---|
338 | DATA TYPE: |
---|
339 | Unsigned integer (``uint32_t``). |
---|
340 | |
---|
341 | RANGE: |
---|
342 | Positive. |
---|
343 | |
---|
344 | DEFAULT VALUE: |
---|
345 | This is not defined by default. When not defined, the clock tick quantum is |
---|
346 | configured to be 10,000 microseconds which is ten (10) milliseconds. |
---|
347 | |
---|
348 | DESCRIPTION: |
---|
349 | This constant is used to specify the length of time between clock ticks. |
---|
350 | |
---|
351 | When the clock tick quantum value is too low, the system will spend so much |
---|
352 | time processing clock ticks that it does not have processing time available |
---|
353 | to perform application work. In this case, the system will become |
---|
354 | unresponsive. |
---|
355 | |
---|
356 | The lowest practical time quantum varies widely based upon the speed of the |
---|
357 | target hardware and the architectural overhead associated with |
---|
358 | interrupts. In general terms, you do not want to configure it lower than is |
---|
359 | needed for the application. |
---|
360 | |
---|
361 | The clock tick quantum should be selected such that it all blocking and |
---|
362 | delay times in the application are evenly divisible by it. Otherwise, |
---|
363 | rounding errors will be introduced which may negatively impact the |
---|
364 | application. |
---|
365 | |
---|
366 | NOTES: |
---|
367 | This configuration parameter has no impact if the Clock Tick Device driver |
---|
368 | is not configured. |
---|
369 | |
---|
370 | There may be BSP specific limits on the resolution or maximum value of a |
---|
371 | clock tick quantum. |
---|
372 | |
---|
373 | .. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE |
---|
374 | .. index:: minimum task stack size |
---|
375 | |
---|
376 | .. _CONFIGURE_MINIMUM_TASK_STACK_SIZE: |
---|
377 | |
---|
378 | CONFIGURE_MINIMUM_TASK_STACK_SIZE |
---|
379 | --------------------------------- |
---|
380 | |
---|
381 | CONSTANT: |
---|
382 | ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` |
---|
383 | |
---|
384 | DATA TYPE: |
---|
385 | Unsigned integer (``uint32_t``). |
---|
386 | |
---|
387 | RANGE: |
---|
388 | Positive. |
---|
389 | |
---|
390 | DEFAULT VALUE: |
---|
391 | The default value is architecture-specific. |
---|
392 | |
---|
393 | DESCRIPTION: |
---|
394 | This configuration parameter defines the minimum stack size in bytes for |
---|
395 | every user task or thread in the system. |
---|
396 | |
---|
397 | NOTES: |
---|
398 | Adjusting this parameter should be done with caution. Examining the actual |
---|
399 | stack usage using the stack checker usage reporting facility is recommended |
---|
400 | (see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED <CONFIGURE_STACK_CHECKER_ENABLED>`). |
---|
401 | |
---|
402 | This parameter can be used to lower the minimum from that recommended. This |
---|
403 | can be used in low memory systems to reduce memory consumption for |
---|
404 | stacks. However, this must be done with caution as it could increase the |
---|
405 | possibility of a blown task stack. |
---|
406 | |
---|
407 | This parameter can be used to increase the minimum from that |
---|
408 | recommended. This can be used in higher memory systems to reduce the risk |
---|
409 | of stack overflow without performing analysis on actual consumption. |
---|
410 | |
---|
411 | By default, this configuration parameter defines also the minimum stack |
---|
412 | size of POSIX threads. This can be changed with the |
---|
413 | :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE <CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE>` |
---|
414 | configuration option. |
---|
415 | |
---|
416 | In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was |
---|
417 | used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE |
---|
418 | <CONFIGURE_INTERRUPT_STACK_SIZE>`. |
---|
419 | |
---|
420 | .. index:: CONFIGURE_STACK_CHECKER_ENABLED |
---|
421 | |
---|
422 | .. _CONFIGURE_STACK_CHECKER_ENABLED: |
---|
423 | |
---|
424 | CONFIGURE_STACK_CHECKER_ENABLED |
---|
425 | ------------------------------- |
---|
426 | |
---|
427 | CONSTANT: |
---|
428 | ``CONFIGURE_STACK_CHECKER_ENABLED`` |
---|
429 | |
---|
430 | DATA TYPE: |
---|
431 | Boolean feature macro. |
---|
432 | |
---|
433 | RANGE: |
---|
434 | Defined or undefined. |
---|
435 | |
---|
436 | DEFAULT VALUE: |
---|
437 | This is not defined by default, and thus stack checking is disabled. |
---|
438 | |
---|
439 | DESCRIPTION: |
---|
440 | This configuration parameter is defined when the application wishes to |
---|
441 | enable run-time stack bounds checking. |
---|
442 | |
---|
443 | NOTES: |
---|
444 | In 4.9 and older, this configuration parameter was named ``STACK_CHECKER_ON``. |
---|
445 | |
---|
446 | This increases the time required to create tasks as well as adding overhead |
---|
447 | to each context switch. |
---|
448 | |
---|
449 | .. index:: CONFIGURE_TICKS_PER_TIMESLICE |
---|
450 | .. index:: ticks per timeslice |
---|
451 | |
---|
452 | .. _CONFIGURE_TICKS_PER_TIMESLICE: |
---|
453 | |
---|
454 | CONFIGURE_TICKS_PER_TIMESLICE |
---|
455 | ----------------------------- |
---|
456 | |
---|
457 | CONSTANT: |
---|
458 | ``CONFIGURE_TICKS_PER_TIMESLICE`` |
---|
459 | |
---|
460 | DATA TYPE: |
---|
461 | Unsigned integer (``uint32_t``). |
---|
462 | |
---|
463 | RANGE: |
---|
464 | Positive. |
---|
465 | |
---|
466 | DEFAULT VALUE: |
---|
467 | The default value is 50. |
---|
468 | |
---|
469 | DESCRIPTION: |
---|
470 | This configuration parameter specifies the length of the timeslice quantum |
---|
471 | in ticks for each task. |
---|
472 | |
---|
473 | NOTES: |
---|
474 | This configuration parameter has no impact if the Clock Tick Device driver |
---|
475 | is not configured. |
---|
476 | |
---|
477 | .. index:: CONFIGURE_UNIFIED_WORK_AREAS |
---|
478 | .. index:: unified work areas |
---|
479 | .. index:: separate work areas |
---|
480 | .. index:: RTEMS Workspace |
---|
481 | .. index:: C Program Heap |
---|
482 | |
---|
483 | .. _CONFIGURE_UNIFIED_WORK_AREAS: |
---|
484 | |
---|
485 | CONFIGURE_UNIFIED_WORK_AREAS |
---|
486 | ---------------------------- |
---|
487 | |
---|
488 | CONSTANT: |
---|
489 | ``CONFIGURE_UNIFIED_WORK_AREAS`` |
---|
490 | |
---|
491 | DATA TYPE: |
---|
492 | Boolean feature macro. |
---|
493 | |
---|
494 | RANGE: |
---|
495 | Defined or undefined. |
---|
496 | |
---|
497 | DEFAULT VALUE: |
---|
498 | This is not defined by default, which specifies that the C Program Heap and |
---|
499 | the RTEMS Workspace will be separate. |
---|
500 | |
---|
501 | DESCRIPTION: |
---|
502 | When defined, the C Program Heap and the RTEMS Workspace will be one pool |
---|
503 | of memory. |
---|
504 | |
---|
505 | When not defined, there will be separate memory pools for the RTEMS |
---|
506 | Workspace and C Program Heap. |
---|
507 | |
---|
508 | NOTES: |
---|
509 | Having separate pools does have some advantages in the event a task blows a |
---|
510 | stack or writes outside its memory area. However, in low memory systems the |
---|
511 | overhead of the two pools plus the potential for unused memory in either |
---|
512 | pool is very undesirable. |
---|
513 | |
---|
514 | In high memory environments, this is desirable when you want to use the |
---|
515 | RTEMS "unlimited" objects option. You will be able to create objects until |
---|
516 | you run out of all available memory rather then just until you run out of |
---|
517 | RTEMS Workspace. |
---|
518 | |
---|
519 | .. _CONFIGURE_UNLIMITED_ALLOCATION_SIZE: |
---|
520 | |
---|
521 | CONFIGURE_UNLIMITED_ALLOCATION_SIZE |
---|
522 | ----------------------------------- |
---|
523 | |
---|
524 | CONSTANT: |
---|
525 | ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE`` |
---|
526 | |
---|
527 | DATA TYPE: |
---|
528 | Unsigned integer (``uint32_t``). |
---|
529 | |
---|
530 | RANGE: |
---|
531 | Positive. |
---|
532 | |
---|
533 | DEFAULT VALUE: |
---|
534 | If not defined and ``CONFIGURE_UNLIMITED_OBJECTS`` is defined, the default |
---|
535 | value is eight (8). |
---|
536 | |
---|
537 | DESCRIPTION: |
---|
538 | ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE`` provides an allocation size to use |
---|
539 | for ``rtems_resource_unlimited`` when using |
---|
540 | ``CONFIGURE_UNLIMITED_OBJECTS``. |
---|
541 | |
---|
542 | NOTES: |
---|
543 | By allowing users to declare all resources as being unlimited the user can |
---|
544 | avoid identifying and limiting the resources |
---|
545 | used. ``CONFIGURE_UNLIMITED_OBJECTS`` does not support varying the |
---|
546 | allocation sizes for different objects; users who want that much control |
---|
547 | can define the ``rtems_resource_unlimited`` macros themselves. |
---|
548 | |
---|
549 | .. index:: CONFIGURE_UNLIMITED_OBJECTS |
---|
550 | |
---|
551 | .. _CONFIGURE_UNLIMITED_OBJECTS: |
---|
552 | |
---|
553 | CONFIGURE_UNLIMITED_OBJECTS |
---|
554 | --------------------------- |
---|
555 | |
---|
556 | CONSTANT: |
---|
557 | ``CONFIGURE_UNLIMITED_OBJECTS`` |
---|
558 | |
---|
559 | DATA TYPE: |
---|
560 | Boolean feature macro. |
---|
561 | |
---|
562 | RANGE: |
---|
563 | Defined or undefined. |
---|
564 | |
---|
565 | DEFAULT VALUE: |
---|
566 | This is not defined by default. |
---|
567 | |
---|
568 | DESCRIPTION: |
---|
569 | ``CONFIGURE_UNLIMITED_OBJECTS`` enables ``rtems_resource_unlimited`` mode |
---|
570 | for Classic API and POSIX API objects that do not already have a specific |
---|
571 | maximum limit defined. |
---|
572 | |
---|
573 | NOTES: |
---|
574 | When using unlimited objects, it is common practice to also specify |
---|
575 | ``CONFIGURE_UNIFIED_WORK_AREAS`` so the system operates with a single pool |
---|
576 | of memory for both RTEMS and application memory allocations. |
---|
577 | |
---|
578 | .. index:: CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION |
---|
579 | |
---|
580 | .. _CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION: |
---|
581 | |
---|
582 | CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION |
---|
583 | --------------------------------------- |
---|
584 | |
---|
585 | CONSTANT: |
---|
586 | ``CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION`` |
---|
587 | |
---|
588 | DATA TYPE: |
---|
589 | Boolean feature macro. |
---|
590 | |
---|
591 | RANGE: |
---|
592 | Defined or undefined. |
---|
593 | |
---|
594 | DEFAULT VALUE: |
---|
595 | This is not defined by default, and thus the system initialization is |
---|
596 | quiet. |
---|
597 | |
---|
598 | DESCRIPTION: |
---|
599 | This configuration option enables to print some information during system |
---|
600 | initialization. |
---|
601 | |
---|
602 | NOTES: |
---|
603 | You may use this feature to debug system initialization issues. The |
---|
604 | printk() function is used to print the information. |
---|
605 | |
---|
606 | .. index:: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY |
---|
607 | .. index:: clear C Program Heap |
---|
608 | .. index:: clear RTEMS Workspace |
---|
609 | .. index:: zero C Program Heap |
---|
610 | .. index:: zero RTEMS Workspace |
---|
611 | |
---|
612 | .. _CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY: |
---|
613 | |
---|
614 | CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY |
---|
615 | -------------------------------------- |
---|
616 | |
---|
617 | CONSTANT: |
---|
618 | ``CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY`` |
---|
619 | |
---|
620 | DATA TYPE: |
---|
621 | Boolean feature macro. |
---|
622 | |
---|
623 | RANGE: |
---|
624 | Defined or undefined. |
---|
625 | |
---|
626 | DEFAULT VALUE: |
---|
627 | This is not defined by default. The default is *NOT* to zero out the RTEMS |
---|
628 | Workspace or C Program Heap. |
---|
629 | |
---|
630 | DESCRIPTION: |
---|
631 | This macro indicates whether RTEMS should zero the RTEMS Workspace and C |
---|
632 | Program Heap as part of its initialization. If defined, the memory regions |
---|
633 | are zeroed. Otherwise, they are not. |
---|
634 | |
---|
635 | NOTES: |
---|
636 | Zeroing memory can add significantly to system boot time. It is not |
---|
637 | necessary for RTEMS but is often assumed by support libraries. In case |
---|
638 | :ref:`CONFIGURE_DIRTY_MEMORY` is also defined, then the memory is first |
---|
639 | dirtied and then zeroed. |
---|