diff options
Diffstat (limited to 'c-user/config/device-driver.rst')
-rw-r--r-- | c-user/config/device-driver.rst | 921 |
1 files changed, 654 insertions, 267 deletions
diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst index b727a8f..1e31575 100644 --- a/c-user/config/device-driver.rst +++ b/c-user/config/device-driver.rst @@ -1,6 +1,24 @@ .. SPDX-License-Identifier: CC-BY-SA-4.0 -.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +.. Copyright (C) 2020, 2021 embedded brains GmbH & Co. KG +.. Copyright (C) 1988, 2021 On-Line Applications Research Corporation (OAR) + +.. This file is part of the RTEMS quality process and was automatically +.. generated. If you find something that needs to be fixed or +.. worded better please post a report or patch to an RTEMS mailing list +.. or raise a bug report: +.. +.. https://www.rtems.org/bugs.html +.. +.. For information on updating and regenerating please refer to the How-To +.. section in the Software Requirements Engineering chapter of the +.. RTEMS Software Engineering manual. The manual is provided as a part of +.. a release. For development sources please refer to the online +.. documentation at: +.. +.. https://docs.rtems.org + +.. Generated from spec:/acfg/if/group-devdrv Device Driver Configuration =========================== @@ -8,6 +26,12 @@ Device Driver Configuration This section describes configuration options related to the device drivers. Note that network device drivers are not covered by the following options. +.. Generated from spec:/acfg/if/appl-does-not-need-clock-driver + +.. raw:: latex + + \clearpage + .. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER .. _CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER: @@ -15,34 +39,45 @@ Note that network device drivers are not covered by the following options. CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER ------------------------------------------------ -CONSTANT: - ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: -OPTION TYPE: - This configuration option is a boolean feature define. +If this configuration option is undefined, then a Clock Driver may be +initialized during system initialization. -DEFAULT CONFIGURATION: - If this configuration option is undefined, then a Clock Driver may be - initialized during system initialization. +.. rubric:: DESCRIPTION: -DESCRIPTION: - In case this configuration option is defined, then **no** Clock Driver is - initialized during system initialization. +In case this configuration option is defined, then **no** Clock Driver is +initialized during system initialization. -NOTES: - This configuration parameter is intended to prevent the common user error - of using the Hello World example as the baseline for an application and - leaving out a clock tick source. +.. rubric:: NOTES: - The application must define exactly one of the following configuration options +This configuration parameter is intended to prevent the common user error +of using the Hello World example as the baseline for an application and +leaving out a clock tick source. - * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, +The application shall define exactly one of the following configuration options - * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or +* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, - * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, +* ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``, or - otherwise a compile time error in the configuration file will occur. +* :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, + +otherwise a compile time error in the configuration file will occur. + +.. Generated from spec:/acfg/if/appl-extra-drivers + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS @@ -51,26 +86,79 @@ NOTES: CONFIGURE_APPLICATION_EXTRA_DRIVERS ----------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` + +.. rubric:: OPTION TYPE: + +This configuration option is an initializer define. + +.. rubric:: DEFAULT VALUE: + +The default value is the empty list. + +.. rubric:: DESCRIPTION: + +The value of this configuration option is used to initialize the Device +Driver Table. + +.. rubric:: NOTES: + +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. + +.. rubric:: CONSTRAINTS: + +The value of the configuration option shall be a list of initializers for +structures of type :ref:`InterfaceRtemsDriverAddressTable`. + +.. Generated from spec:/acfg/if/appl-needs-ata-driver + +.. raw:: latex + + \clearpage + +.. index:: CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER -DATA TYPE: - device driver entry structures +.. _CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER: -RANGE: - Undefined or set of device driver entry structures +CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER +-------------------------------------- + +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. -DEFAULT VALUE: - This is not defined by default. +.. rubric:: DESCRIPTION: -DESCRIPTION: - ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` is defined if the application has - device 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 - table at the *END* of the Device Driver Table. +In case this configuration option is defined, then the ATA Driver is +initialized during system initialization. -NOTES: - None. +.. rubric:: NOTES: + +Most BSPs do not include support for an ATA Driver. + +If this option is defined and the BSP does not have this device driver, then +the user will get a link time error for an undefined symbol. + +.. Generated from spec:/acfg/if/appl-needs-clock-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER @@ -79,33 +167,44 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER ---------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`` + +.. rubric:: OPTION TYPE: -OPTION TYPE: - This configuration option is a boolean feature define. +This configuration option is a boolean feature define. -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +.. rubric:: DEFAULT CONFIGURATION: -DESCRIPTION: - In case this configuration option is defined, then the Clock Driver is - initialized during system initialization. +If this configuration option is undefined, then the described feature is not +enabled. -NOTES: - The Clock Driver is responsible for providing a regular interrupt - which invokes a clock tick directive. +.. rubric:: DESCRIPTION: - The application must define exactly one of the following configuration options +In case this configuration option is defined, then the Clock Driver is +initialized during system initialization. - * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, +.. rubric:: NOTES: - * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or +The Clock Driver is responsible for providing a regular interrupt +which invokes a clock tick directive. - * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, +The application shall define exactly one of the following configuration options - otherwise a compile time error in the configuration file will occur. +* ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``, + +* :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or + +* :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, + +otherwise a compile time error in the configuration file will occur. + +.. Generated from spec:/acfg/if/appl-needs-console-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER @@ -114,37 +213,48 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER ------------------------------------------ -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: + +In case this configuration option is defined, then the Console Driver is +initialized during system initialization. -OPTION TYPE: - This configuration option is a boolean feature define. +.. rubric:: NOTES: -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +The Console Driver is responsible for providing the :file:`/dev/console` +device file. This device is used to initialize the standard input, output, +and error file descriptors. -DESCRIPTION: - In case this configuration option is defined, then the Console Driver is - initialized during system initialization. +BSPs should be constructed in a manner that allows :ref:`InterfacePrintk` to work +properly without the need for the Console Driver to be configured. -NOTES: - The Console Driver is responsible for providing the :file:`/dev/console` - device file. This device is used to initialize the standard input, output, - and error file descriptors. +The - BSPs should be constructed in a manner that allows :c:func:`printk` to work - properly without the need for the Console Driver to be configured. +* ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``, - The +* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and - * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, +* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` - * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and +configuration options are mutually exclusive. - * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` +.. Generated from spec:/acfg/if/appl-needs-framebuffer-driver - configuration options are mutually exclusive. +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER @@ -153,26 +263,75 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER ----------------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: + +In case this configuration option is defined, then the Frame Buffer Driver is +initialized during system initialization. + +.. rubric:: NOTES: + +Most BSPs do not include support for a Frame Buffer Driver. This is +because many boards do not include the required hardware. + +If this option is defined and the BSP does not have this device driver, then +the user will get a link time error for an undefined symbol. + +.. Generated from spec:/acfg/if/appl-needs-ide-driver + +.. raw:: latex + + \clearpage + +.. index:: CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER + +.. _CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER: + +CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER +-------------------------------------- + +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: + +In case this configuration option is defined, then the IDE Driver is +initialized during system initialization. + +.. rubric:: NOTES: -OPTION TYPE: - This configuration option is a boolean feature define. +Most BSPs do not include support for an IDE Driver. -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +If this option is defined and the BSP does not have this device driver, then +the user will get a link time error for an undefined symbol. -DESCRIPTION: - In case this configuration option is defined, then the Frame Buffer Driver is - initialized during system initialization. +.. Generated from spec:/acfg/if/appl-needs-null-driver -NOTES: - Most BSPs do not include support for a Frame Buffer Driver. This is - because many boards do not include the required hardware. +.. raw:: latex - If this option is defined and the BSP does not have this device driver, then - the user will get a link time error for an undefined symbol. + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER .. index:: /dev/null @@ -182,22 +341,33 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER --------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER`` +.. rubric:: CONSTANT: -OPTION TYPE: - This configuration option is a boolean feature define. +``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER`` -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +.. rubric:: OPTION TYPE: -DESCRIPTION: - In case this configuration option is defined, then the :file:`/dev/null` - Driver is initialized during system initialization. +This configuration option is a boolean feature define. -NOTES: - This device driver is supported by all BSPs. +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: + +In case this configuration option is defined, then the :file:`/dev/null` +Driver is initialized during system initialization. + +.. rubric:: NOTES: + +This device driver is supported by all BSPs. + +.. Generated from spec:/acfg/if/appl-needs-rtc-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER @@ -206,26 +376,37 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER -------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: -OPTION TYPE: - This configuration option is a boolean feature define. +In case this configuration option is defined, then the Real-Time Clock Driver +is initialized during system initialization. -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +.. rubric:: NOTES: -DESCRIPTION: - In case this configuration option is defined, then the Real-Time Clock Driver - is initialized during system initialization. +Most BSPs do not include support for a real-time clock (RTC). This is because +many boards do not include the required hardware. -NOTES: - Most BSPs do not include support for a real-time clock (RTC). This is because - many boards do not include the required hardware. +If this is defined and the BSP does not have this device driver, then the +user will get a link time error for an undefined symbol. - If this is defined and the BSP does not have this device driver, then the - user will get a link time error for an undefined symbol. +.. Generated from spec:/acfg/if/appl-needs-simple-console-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER @@ -234,41 +415,52 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER ------------------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. -OPTION TYPE: - This configuration option is a boolean feature define. +.. rubric:: DESCRIPTION: -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +In case this configuration option is defined, then the Simple Console Driver +is initialized during system initialization. -DESCRIPTION: - In case this configuration option is defined, then the Simple Console Driver - is initialized during system initialization. +.. rubric:: NOTES: -NOTES: - This device driver is responsible for providing the :file:`/dev/console` - device file. This device is used to initialize the standard input, output, - and error file descriptors. +This device driver is responsible for providing the :file:`/dev/console` +device file. This device is used to initialize the standard input, output, +and error file descriptors. - This device driver reads via :c:func:`getchark`. +This device driver reads via :ref:`InterfaceGetchark`. - This device driver writes via :c:func:`rtems_putc`. +This device driver writes via :ref:`InterfaceRtemsPutc`. - The Termios framework is not used. There is no support to change device - settings, e.g. baud, stop bits, parity, etc. +The Termios framework is not used. There is no support to change device +settings, e.g. baud, stop bits, parity, etc. - The +The - * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, +* :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, - * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and +* ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and - * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` +* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` - configuration options are mutually exclusive. +configuration options are mutually exclusive. + +.. Generated from spec:/acfg/if/appl-needs-simple-task-console-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER @@ -277,50 +469,61 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER ------------------------------------------------------ -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. -OPTION TYPE: - This configuration option is a boolean feature define. +.. rubric:: DEFAULT CONFIGURATION: -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +If this configuration option is undefined, then the described feature is not +enabled. -DESCRIPTION: - In case this configuration option is defined, then the Simple Task Console - Driver is initialized during system initialization. +.. rubric:: DESCRIPTION: -NOTES: - This device driver is responsible for providing the :file:`/dev/console` - device file. This device is used to initialize the standard input, output, - and error file descriptors. +In case this configuration option is defined, then the Simple Task Console +Driver is initialized during system initialization. - This device driver reads via :c:func:`getchark`. +.. rubric:: NOTES: - This device driver writes into a write buffer. The count of characters - written into the write buffer is returned. It might be less than the - requested count, in case the write buffer is full. The write is - non-blocking and may be called from interrupt context. A dedicated task - reads from the write buffer and outputs the characters via - :c:func:`rtems_putc`. This task runs with the least important priority. - The write buffer size is 2047 characters and it is not configurable. +This device driver is responsible for providing the :file:`/dev/console` +device file. This device is used to initialize the standard input, output, +and error file descriptors. - Use ``fsync(STDOUT_FILENO)`` or ``fdatasync(STDOUT_FILENO)`` to drain the - write buffer. +This device driver reads via :ref:`InterfaceGetchark`. - The Termios framework is not used. There is no support to change device - settings, e.g. baud, stop bits, parity, etc. +This device driver writes into a write buffer. The count of characters +written into the write buffer is returned. It might be less than the +requested count, in case the write buffer is full. The write is +non-blocking and may be called from interrupt context. A dedicated task +reads from the write buffer and outputs the characters via +:ref:`InterfaceRtemsPutc`. This task runs with the least important priority. +The write buffer size is 2047 characters and it is not configurable. - The +Use ``fsync( STDOUT_FILENO )`` or ``fdatasync( STDOUT_FILENO )`` to drain the +write buffer. - * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, +The Termios framework is not used. There is no support to change device +settings, e.g. baud, stop bits, parity, etc. - * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and +The - * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` +* :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`, - configuration options are mutually exclusive. +* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and + +* ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`` + +configuration options are mutually exclusive. + +.. Generated from spec:/acfg/if/appl-needs-stub-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER @@ -329,23 +532,34 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER --------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER`` + +.. rubric:: OPTION TYPE: -OPTION TYPE: - This configuration option is a boolean feature define. +This configuration option is a boolean feature define. -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +.. rubric:: DEFAULT CONFIGURATION: -DESCRIPTION: - In case this configuration option is defined, then the Stub Driver is - initialized during system initialization. +If this configuration option is undefined, then the described feature is not +enabled. -NOTES: - This device driver simply provides entry points that return successful and - is primarily a test fixture. It is supported by all BSPs. +.. rubric:: DESCRIPTION: + +In case this configuration option is defined, then the Stub Driver is +initialized during system initialization. + +.. rubric:: NOTES: + +This device driver simply provides entry points that return successful and +is primarily a test fixture. It is supported by all BSPs. + +.. Generated from spec:/acfg/if/appl-needs-timer-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER @@ -354,33 +568,44 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER ---------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`` -OPTION TYPE: - This configuration option is a boolean feature define. +.. rubric:: OPTION TYPE: -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +This configuration option is a boolean feature define. -DESCRIPTION: - In case this configuration option is defined, then the Benchmark Timer Driver is - initialized during system initialization. +.. rubric:: DEFAULT CONFIGURATION: -NOTES: - The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS - Testsuite. Applications should not use this driver. +If this configuration option is undefined, then the described feature is not +enabled. - The application must define exactly one of the following configuration options +.. rubric:: DESCRIPTION: - * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, +In case this configuration option is defined, then the Benchmark Timer Driver is +initialized during system initialization. - * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or +.. rubric:: NOTES: - * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`, +The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS +Testsuite. Applications should not use this driver. - otherwise a compile time error will occur. +The application shall define exactly one of the following configuration options + +* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`, + +* :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or + +* ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``, + +otherwise a compile time error will occur. + +.. Generated from spec:/acfg/if/appl-needs-watchdog-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER @@ -389,26 +614,37 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER ------------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: -OPTION TYPE: - This configuration option is a boolean feature define. +In case this configuration option is defined, then the Watchdog Driver is +initialized during system initialization. -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +.. rubric:: NOTES: -DESCRIPTION: - In case this configuration option is defined, then the Watchdog Driver is - initialized during system initialization. +Most BSPs do not include support for a watchdog device driver. This is +because many boards do not include the required hardware. -NOTES: - Most BSPs do not include support for a watchdog device driver. This is - because many boards do not include the required hardware. +If this is defined and the BSP does not have this device driver, then the +user will get a link time error for an undefined symbol. - If this is defined and the BSP does not have this device driver, then the - user will get a link time error for an undefined symbol. +.. Generated from spec:/acfg/if/appl-needs-zero-driver + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER .. index:: /dev/zero @@ -418,22 +654,33 @@ NOTES: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER --------------------------------------- -CONSTANT: - ``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. -OPTION TYPE: - This configuration option is a boolean feature define. +.. rubric:: DESCRIPTION: -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the described feature is not - enabled. +In case this configuration option is defined, then the :file:`/dev/zero` +Driver is initialized during system initialization. -DESCRIPTION: - In case this configuration option is defined, then the :file:`/dev/zero` - Driver is initialized during system initialization. +.. rubric:: NOTES: -NOTES: - This device driver is supported by all BSPs. +This device driver is supported by all BSPs. + +.. Generated from spec:/acfg/if/appl-prerequisite-drivers + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS @@ -442,31 +689,121 @@ NOTES: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS ------------------------------------------ -CONSTANT: - ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` +.. rubric:: CONSTANT: + +``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` + +.. rubric:: OPTION TYPE: + +This configuration option is an initializer define. + +.. rubric:: DEFAULT VALUE: + +The default value is the empty list. + +.. rubric:: DESCRIPTION: + +The value of this configuration option is used to initialize the Device +Driver Table. + +.. rubric:: NOTES: + +The value of this configuration option is placed after the entries defined by +:c:macro:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver +configuration options. + +See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement +of application device driver initializers. + +.. rubric:: CONSTRAINTS: + +The value of the configuration option shall be a list of initializers for +structures of type :ref:`InterfaceRtemsDriverAddressTable`. + +.. Generated from spec:/acfg/if/ata-driver-task-priority + +.. raw:: latex + + \clearpage + +.. index:: CONFIGURE_ATA_DRIVER_TASK_PRIORITY + +.. _CONFIGURE_ATA_DRIVER_TASK_PRIORITY: -DATA TYPE: - device driver entry structures +CONFIGURE_ATA_DRIVER_TASK_PRIORITY +---------------------------------- -RANGE: - Undefined or set of device driver entry structures +.. rubric:: CONSTANT: -DEFAULT VALUE: - This is not defined by default. +``CONFIGURE_ATA_DRIVER_TASK_PRIORITY`` -DESCRIPTION: - ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` is defined if the - application has device 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 table at the *FRONT* of the Device Driver Table and - initialized before any other drivers *EXCEPT* any BSP prerequisite drivers. +.. rubric:: OPTION TYPE: -NOTES: - In some cases, it is used by System On Chip BSPs to support peripheral - buses beyond those normally found on the System On Chip. For example, this - is used by one RTEMS system which has implemented a SPARC/ERC32 based board - with VMEBus. The VMEBus Controller initialization is performed by a device - driver configured via this configuration parameter. +This configuration option is an integer define. + +.. rubric:: DEFAULT VALUE: + +The default value is 140. + +.. rubric:: DESCRIPTION: + +The value of this configuration option defines the ATA task priority. + +.. rubric:: NOTES: + +This configuration option is only evaluated if the configuration option +:ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` is defined. + +.. rubric:: CONSTRAINTS: + +The value of the configuration option shall be a valid Classic API task +priority. The set of valid task priorities depends on the scheduler +configuration. + +.. Generated from spec:/acfg/if/exception-to-signal-mapping + +.. raw:: latex + + \clearpage + +.. index:: CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING + +.. _CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING: + +CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING +------------------------------------- + +.. rubric:: CONSTANT: + +``CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the described feature is not +enabled. + +.. rubric:: DESCRIPTION: + +In case this configuration option is defined, then the machine exception to +POSIX signal mapping is configured during system initialization. + +.. rubric:: NOTES: + +This device driver is responsible for setting up a mapping from machine +exceptions to POSIX signals so that applications may consume them and alter +task execution as necessary. + +This is especially useful for applications written in Ada or C++. + +.. Generated from spec:/acfg/if/max-drivers + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_MAXIMUM_DRIVERS @@ -475,27 +812,77 @@ NOTES: CONFIGURE_MAXIMUM_DRIVERS ------------------------- -CONSTANT: - ``CONFIGURE_MAXIMUM_DRIVERS`` +.. rubric:: CONSTANT: + +``CONFIGURE_MAXIMUM_DRIVERS`` + +.. rubric:: OPTION TYPE: + +This configuration option is an integer define. + +.. rubric:: DEFAULT VALUE: + +This is computed by default, and is set to the number of statically +configured device drivers configured using the following configuration +options: + +* :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER` + +* :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` + +If the :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option is not defined and +the :term:`BSP` provides +:c:macro:`CONFIGURE_BSP_PREREQUISITE_DRIVERS`, then the BSP-provided +prerequisite device drivers are also taken into account. + +.. rubric:: DESCRIPTION: + +The value of this configuration option defines the number of device drivers. + +.. rubric:: NOTES: + +If the application will dynamically install device drivers, then the +configuration option value shall be larger than the number of statically +configured device drivers. -DATA TYPE: - Unsigned integer (``uint32_t``). +.. rubric:: CONSTRAINTS: -RANGE: - Zero or positive. +The following constraints apply to this configuration option: -DEFAULT VALUE: - This is computed by default, and is set to the number of device drivers - configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` - configuration parameters. +* The value of the configuration option shall be less than or equal to + `SIZE_MAX <https://en.cppreference.com/w/c/types/limits>`_. -DESCRIPTION: - ``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers - per node. +* The value of the configuration option shall be greater than or equal than the + number of statically configured device drivers. -NOTES: - If the application will dynamically install device drivers, then this - configuration parameter must be larger than the number of statically - configured device drivers. Drivers configured using the - ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are - statically installed. +* The value of the configuration option 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. |