usbserial USB Serial Hello World
Target configuration
This is another implementation of “Hello, World” but this one uses a USB serial driver. Configuration options can be used to simply the test. These options include:
- CONFIG_EXAMPLES_USBSERIAL_INONLY– Only verify IN (device-to-host) data transfers. Default: both.
- CONFIG_EXAMPLES_USBSERIAL_OUTONLY– Only verify OUT (host-to-device) data transfers. Default: both.
- CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL– Send only small, single packet messages. Default: Send large and small.
- CONFIG_EXAMPLES_USBSERIAL_ONLYBIG– Send only large, multi-packet messages. Default: Send large and small.
If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG_FEATURES and
CONFIG_DEBUG_USB), then the example code will also manage the USB trace
output. The amount of trace output can be controlled using:
- CONFIG_EXAMPLES_USBSERIAL_TRACEINIT– Show initialization events.
- CONFIG_EXAMPLES_USBSERIAL_TRACECLASS– Show class driver events.
- CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS– Show data transfer events.
- CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER– Show controller events.
- CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS– Show interrupt-related events.
Error results are always shown in the trace output.
Host-side test program
In additional to the target device-side example, there is also a host-side
application in this directory. This host side application must be executed on a
Linux host in order to perform the USBSERIAL test. The host application can be
compiled under Linux (or Cygwin?) as follows:
cd examples/usbserial
make -f Makefile.host TOPDIR=<nuttx-directory>
Running the test
This will generate a small program called host. Usage:
- Build the - examples/usbserialtarget program and start the target.
- Wait a bit, then do enter: - dmesg - At the end of the dmesg output, you should see the serial device was successfully idenfied and assigned to a tty device, probably - /dev/ttyUSB0or- /dev/ttyACM0(depending on the configured USB serial driver).
- Then start the host application: - ./host [<tty-dev>] - Where: - <tty-dev>is the USB TTY device to use. The default is- /dev/ttyUSB0(for the PL2303 emulation) or- /dev/ttyACM0(for the CDC/ACM serial device).
 
The host and target will exchange are variety of very small and very large serial messages.