.. SPDX-License-Identifier: CC-BY-SA-4.0 .. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) BSP Related Configuration Options ================================= This section describes configuration options related to the BSP. Some configuration options may have a BSP-specific setting which is defined by ````. The BSP-specific settings can be disabled by the :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option. .. index:: BSP_IDLE_TASK_BODY .. _BSP_IDLE_TASK_BODY: BSP_IDLE_TASK_BODY ------------------ CONSTANT: ``BSP_IDLE_TASK_BODY`` OPTION TYPE: This configuration option is an initializer define. DEFAULT VALUE: The default value is BSP-specific. VALUE CONSTRAINTS: The value of this configuration option shall be defined to a valid function pointer of the type ``void *( *idle_body )( uintptr_t )``. DESCRIPTION: If * this configuration option is defined by the BSP * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, then the value of this configuration option defines the default value of :ref:`CONFIGURE_IDLE_TASK_BODY`. NOTES: As it has knowledge of the specific CPU model, system controller logic, and peripheral buses, a BSP-specific IDLE task may be capable of turning components off to save power during extended periods of no task activity. .. index:: BSP_IDLE_TASK_STACK_SIZE .. _BSP_IDLE_TASK_STACK_SIZE: BSP_IDLE_TASK_STACK_SIZE ------------------------ CONSTANT: ``BSP_IDLE_TASK_STACK_SIZE`` OPTION TYPE: This configuration option is an integer define. DEFAULT VALUE: 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 ```` does not overflow an integer of type ``size_t``. DESCRIPTION: If * this configuration option is defined by the BSP * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, then the value of this configuration option defines the default value of :ref:`CONFIGURE_IDLE_TASK_SIZE`. NOTES: None. .. index:: BSP_INITIAL_EXTENSION .. _BSP_INITIAL_EXTENSION: BSP_INITIAL_EXTENSION --------------------- CONSTANT: ``BSP_INITIAL_EXTENSION`` OPTION TYPE: This configuration option is an initializer define. DEFAULT VALUE: The default value is BSP-specific. VALUE CONSTRAINTS: The value of this configuration option shall be a list of initializers for structures of type :c:type:`rtems_extensions_table`. DESCRIPTION: If * 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: The value of this configuration option is placed after the entries of all other initial user extensions. .. index:: BSP_INTERRUPT_STACK_SIZE .. _BSP_INTERRUPT_STACK_SIZE: BSP_INTERRUPT_STACK_SIZE ------------------------ CONSTANT: ``BSP_INTERRUPT_STACK_SIZE`` OPTION TYPE: This configuration option is an integer define. DEFAULT VALUE: 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 ```` does not overflow an integer of type ``size_t``. * It shall be aligned according to ``CPU_INTERRUPT_STACK_ALIGNMENT``. DESCRIPTION: If * this configuration option is defined by the BSP * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, then the value of this configuration option defines the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`. NOTES: None. .. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS .. _CONFIGURE_BSP_PREREQUISITE_DRIVERS: CONFIGURE_BSP_PREREQUISITE_DRIVERS ---------------------------------- CONSTANT: ``CONFIGURE_BSP_PREREQUISITE_DRIVERS`` OPTION TYPE: This configuration option is an initializer define. DEFAULT VALUE: The default value is BSP-specific. VALUE CONSTRAINTS: The value of this configuration option shall be a list of initializers for structures of type :c:type:`rtems_extensions_table`. DESCRIPTION: If * 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: The value of this configuration option is placed before the entries of all other initial user extensions (including :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`). .. index:: CONFIGURE_DISABLE_BSP_SETTINGS .. _CONFIGURE_DISABLE_BSP_SETTINGS: CONFIGURE_DISABLE_BSP_SETTINGS ------------------------------ CONSTANT: ``CONFIGURE_DISABLE_BSP_SETTINGS`` OPTION TYPE: This configuration option is a boolean feature define. DEFAULT CONFIGURATION: If this configuration option is undefined, then the described feature is not enabled. DESCRIPTION: In case this configuration option is defined, then the following BSP related configuration options are undefined: - :ref:`BSP_IDLE_TASK_BODY` - :ref:`BSP_IDLE_TASK_STACK_SIZE` - :ref:`BSP_INITIAL_EXTENSION` - :ref:`BSP_INTERRUPT_STACK_SIZE` - :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` - :ref:`CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK` NOTES: None. .. index:: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK .. _CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK ---------------------------------- CONSTANT: ``CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK`` OPTION TYPE: This configuration option is a boolean feature define. DEFAULT CONFIGURATION: If this configuration option is undefined, then the described feature is not enabled. DESCRIPTION: If * this configuration option is defined by the BSP * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined, then not all memory is made available to the C Program Heap immediately at system initialization time. When :c:func:`malloc()` or other standard memory allocation functions are unable to allocate memory, they will call the BSP supplied :c:func:`sbrk()` function to obtain more memory. NOTES: This option should not be defined by the application. Only the BSP knows how it allocates memory to the C Program Heap.