2016-06-11 22:13:39 +02:00
|
|
|
system/composite
|
|
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
This logic adds a NXH command to control a USB composite device. The only
|
|
|
|
supported composite is CDC/ACM serial with a USB mass storage device.
|
|
|
|
|
|
|
|
Required overall configuration:
|
|
|
|
|
|
|
|
CONFIG_USBDEV=y - USB device support
|
|
|
|
CONFIG_USBDEV_COMPOSITE=y - USB composite device support
|
|
|
|
CONFIG_COMPOSITE_IAD=y - Interface associate descriptor needed
|
|
|
|
|
|
|
|
CONFIG_CDCACM=y - USB CDC/ACM serial device support
|
|
|
|
CONFIG_CDCACM_COMPOSITE=y - USB CDC/ACM serial composite device support
|
|
|
|
CONFIG_CDCACM_IFNOBASE=0 - CDC/ACM interfaces start with number 0
|
|
|
|
CONFIG_CDCACM_STRBASE=4 - Base of string numbers (not really needed)
|
|
|
|
CONFIG_CDCACM_EPINTIN=1 - Endpoint numbers must be unique
|
|
|
|
CONFIG_CDCACM_EPBULKIN=2
|
|
|
|
CONFIG_CDCACM_EPBULKOUT=3
|
|
|
|
|
|
|
|
CONFIG_USBMSC - USB mass storage device support
|
|
|
|
CONFIG_USBMSC_COMPOSITE=y - USB mass storage composite device support
|
|
|
|
CONFIG_USBMSC_IFNOBASE=2 - USB mass storage interfaces start with number 2
|
|
|
|
CONFIG_USBMSC_STRBASE=4 - Base of string numbers (needed)
|
|
|
|
CONFIG_USBMSC_EPBULKOUT=4 - Endpoint numbers must be unique
|
|
|
|
CONFIG_USBMSC_EPBULKIN=5
|
|
|
|
|
|
|
|
CONFIG_NSH_BUILTIN_APPS
|
|
|
|
This add-on can be built as two NSH "built-in" commands if this option
|
|
|
|
is selected: 'conn' will connect the USB composite device; 'msdis'
|
|
|
|
will disconnect the USB composite device.
|
|
|
|
|
|
|
|
Configuration options unique to this add-on:
|
|
|
|
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_DEBUGMM
|
|
|
|
Enables some debug tests to check for memory usage and memory leaks.
|
|
|
|
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_NLUNS
|
|
|
|
Defines the number of logical units (LUNs) exported by the USB storage
|
|
|
|
driver. Each LUN corresponds to one exported block driver (or partition
|
|
|
|
of a block driver). May be 1, 2, or 3. Default is 1.
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_DEVMINOR1
|
|
|
|
The minor device number of the block driver for the first LUN. For
|
|
|
|
example, N in /dev/mmcsdN. Used for registering the block driver. Default
|
|
|
|
is zero.
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_DEVPATH1
|
|
|
|
The full path to the registered block driver. Default is "/dev/mmcsd0"
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_DEVMINOR2 and CONFIG_SYSTEM_COMPOSITE_DEVPATH2
|
|
|
|
Similar parameters that would have to be provided if CONFIG_SYSTEM_COMPOSITE_NLUNS
|
|
|
|
is 2 or 3. No defaults.
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_DEVMINOR3 and CONFIG_SYSTEM_COMPOSITE_DEVPATH2
|
|
|
|
Similar parameters that would have to be provided if CONFIG_SYSTEM_COMPOSITE_NLUNS
|
|
|
|
is 3. No defaults.
|
|
|
|
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TTYUSB - The minor number of the USB serial device.
|
|
|
|
Default is zero (corresponding to /dev/ttyUSB0 or /dev/ttyACM0). Default is zero.
|
|
|
|
CCONFIG_SYSTEM_COMPOSITE_SERDEV - The string corresponding to
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TTYUSB. The default is "/dev/ttyUSB0" (for the PL2303
|
|
|
|
emulation) or "/dev/ttyACM0" (for the CDC/ACM serial device).
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_BUFSIZE - The size of the serial I/O buffer in
|
|
|
|
bytes. Default 256 bytes.
|
|
|
|
|
|
|
|
If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG_FEATURES and CONFIG_DEBUG_USB), then
|
|
|
|
the add-on code will also manage the USB trace output. The amount of trace output
|
|
|
|
can be controlled using:
|
|
|
|
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TRACEINIT
|
|
|
|
Show initialization events
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TRACECLASS
|
|
|
|
Show class driver events
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TRACETRANSFERS
|
|
|
|
Show data transfer events
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TRACECONTROLLER
|
|
|
|
Show controller events
|
|
|
|
CONFIG_SYSTEM_COMPOSITE_TRACEINTERRUPTS
|
|
|
|
Show interrupt-related events.
|