#3320 closed enhancement (fixed)

Add a simple task console driver

Reported by: Sebastian Huber Owned by: Sebastian Huber <sebastian.huber@…>
Priority: normal Milestone: 5.1
Component: dev/serial Version: 5
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

The default console driver for tests is the simple console driver. It uses a polled output via rtems_putc() done directly in the context of the executing thread. This is a problem for timing sensitive tests. Add a simple task console driver.

.. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER

.. _CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER:

CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
------------------------------------------------------

CONSTANT:
    ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``

DATA TYPE:
    Boolean feature macro.

RANGE:
    Defined or undefined.

DEFAULT VALUE:
    This is not defined by default.

DESCRIPTION:
    ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`` is defined if
    the application wishes to include the Simple Task Console Device Driver.

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 reads via ``getchark()``.

    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
    ``rtems_putc()``.  This task runs with the least important priority.  The
    write buffer size is 2047 characters and it is not configurable.

    Use ``fsync(STDOUT_FILENO)`` or ``fdatasync(STDOUT_FILENO)`` to drain the
    write buffer.

    The Termios framework is not used.  There is no support to change device
    settings, e.g.  baud, stop bits, parity, etc.

    The

    * ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``,

    * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and

    * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``

    configuration options are mutually exclusive.

Change History (3)

comment:1 Changed on 03/06/18 at 10:46:54 by Sebastian Huber <sebastian.huber@…>

In f6c6c8b/rtems-docs:

CONFIGURE_*_SIMPLE_TASK_CONSOLE_DRIVER

Update #3320.

comment:2 Changed on 03/06/18 at 11:32:27 by Sebastian Huber <sebastian.huber@…>

Owner: set to Sebastian Huber <sebastian.huber@…>
Resolution: fixed
Status: newclosed

In 337a186/rtems:

Add a simple task console driver

Close #3320.

comment:3 Changed on 06/29/18 at 09:53:37 by Sebastian Huber <sebastian.huber@…>

In 196ce18/rtems:

console: Add missing return status

Update #3320.

Note: See TracTickets for help on using tickets.