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/usbserial
target 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/ttyUSB0
or/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.