[RTEMS Project] #3320: Add a simple task console driver

RTEMS trac trac at rtems.org
Tue Mar 6 07:07:36 UTC 2018


#3320: Add a simple task console driver
------------------------------+--------------------
  Reporter:  Sebastian Huber  |      Owner:  (none)
      Type:  enhancement      |     Status:  new
  Priority:  normal           |  Milestone:  5.1
 Component:  dev/serial       |    Version:  5
  Severity:  normal           |   Keywords:
Blocked By:                   |   Blocking:
------------------------------+--------------------
 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.
 }}}

--
Ticket URL: <http://devel.rtems.org/ticket/3320>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list