===================== 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 :ref:pseudo file system <file_system_overview>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, IfTTY_LAUNCH_ENTRYyou can set program entry byTTY_LAUNCH_ENTRYPOINT. IfTTY_LAUNCH_FILEyou can set file path byTTY_LAUNCH_FILEPATH.Also, you can customize:
TTY_LAUNCH_ARGSTTY_LAUNCH_PRIORITYTTY_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.