nuttx-apps/system/composite
2020-06-15 21:21:58 +01:00
..
composite_main.c Include malloc.h instead of stdlib.h for mallinfo() 2020-06-15 07:21:52 -06:00
composite.h composite: nxstyle fixes 2020-06-15 21:21:58 +01:00
Kconfig Kconfig: Change !BUILD_PROTECTED && !BUILD_KERNEL to BUILD_FLAT 2020-04-29 07:23:51 -06:00
Make.defs Remove extra whitespace from files (#43) 2020-01-31 08:29:24 -06:00
Makefile build: Remove the workaround for the inexistence of .config/Make.defs 2020-05-21 17:43:42 +01:00
README.txt apps/system/composite: Remove usb serial loopback test code we can achieve the same effect by cat or dd command. 2019-10-07 02:45:02 -06:00

system/composite
^^^^^^^^^^^^^^^^^^

  This logic adds a NSH command to control a USB composite device.  The only
  supported devices in the composite are CDC/ACM serial and a USB mass storage
  device.  Which devices are enclosed in a composite device is configured with
  an array of configuration-structs, handed over to the function
  composite_initialize().

  Required overall configuration:

  Enable the USB Support of your Hardware / Processor e.g. SAMV7_USBDEVHS=y

    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

  The interface-, string-descriptor- and endpoint-numbers are configured via the
  configuration-structs as noted above.  The CDC/ACM serial device needs three
  endpoints; one interrupt-driven and two bulk endpoints.

    CONFIG_USBMSC=y           - USB mass storage device support
    CONFIG_USBMSC_COMPOSITE=y - USB mass storage composite device support

  Like the configuration for the CDC/ACM, the descriptor- and endpoint-numbers
  are configured via the configuration struct.

  Depending on the configuration struct you need to configure different vendor-
  and product-IDs.  Each VID/PID is unique to a device and thus to a dedicated
  configuration.

  Linux tries to detect the device types and installs default drivers if the
  VID/PID pair is unknown.

  Windows insists on a known and installed configuration. With an Atmel
  hardware and Atmel-Studio or the Atmel-USB-drivers installed, you can test
  your configuration with Atmel Example Vendor- and Product-IDs.

  If you have a USBMSC and a CDC/ACM configured in your combo, then you can try
  to use

    - VID = 0x03EB (ATMEL)
    - PID = 0x2424 (ASF Example with MSC and CDC)

  If for example you try to test a configuration with up to seven CDCs, then

    - VID = 0x03EB (ATMEL)
    - PID = 0x2426 (ASF Example with up to seven CDCs)

  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; 'disconn'
    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.

  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.