71 lines
2.6 KiB
ReStructuredText
71 lines
2.6 KiB
ReStructuredText
====================================
|
||
``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:
|
||
|
||
1. Build the ``examples/usbserial`` target program and start the target.
|
||
|
||
2. 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).
|
||
|
||
3. 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.
|