Serial Device Drivers
include/nuttx/serial/serial.h
. All structures and APIs needed to work with serial drivers are provided in this header file.struct uart_ops_s
. Each serial device driver must implement an instance ofstruct uart_ops_s
. That structure defines a call table with the following methods:int uart_register(FAR const char *path, FAR uart_dev_t *dev);
. A serial driver may register itself by callinguart_register()
, passing it thepath
where it will appear in the pseudo file system and it’s initialized instance ofstruct uart_ops_s
. By convention, serial device drivers are registered at paths like/dev/ttyS0
,/dev/ttyS1
, etc. See theuart_register()
implementation indrivers/serial.c
.TTY_LAUNCH this depends on
CONFIG_TTY_LAUNCH
, this feature allow user launch a new program with a special char input.e.g. use ctrl+R to start a nuttx shell. e.g. use ctrl+E to start user entry.
You can use
TTY_LAUNCH_CHAR
to customize which special char.You can choose launch method:
TTY_LAUNCH_ENTRY
orTTY_LAUNCH_FILE
, If``TTY_LAUNCH_ENTRY`` you can set program entry byTTY_LAUNCH_ENTRYPOINT
. If``TTY_LAUNCH_FILE`` you can set file path byTTY_LAUNCH_FILEPATH
.Also, you can customize:
TTY_LAUNCH_ARGS
TTY_LAUNCH_PRIORITY
TTY_LAUNCH_STACKSIZE
User Access. Serial drivers are, ultimately, normal character drivers and are accessed as other character drivers.
Examples:
arch/arm/src/stm32/stm32_serial.c
,arch/arm/src/lpc214x/lpc214x_serial.c
,arch/z16/src/z16f/z16f_serial.c
, etc.