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
.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.