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 thepathwhere 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_CHARto customize which special char.You can choose launch method:
TTY_LAUNCH_ENTRYorTTY_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_ARGSTTY_LAUNCH_PRIORITYTTY_LAUNCH_STACKSIZEUser 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.