mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-09 14:35:12 +00:00
Adapt to the change in the main repo. mallinfo is meant to be API compatible with Linux, where it's provided by malloc.h. (I think the API actually originated with System V. I don't remember how it was there though. Anyway, I guess the compatibility with Linux is more important than System V these days.) |
||
|---|---|---|
| .. | ||
| composite.h | ||
| composite_main.c | ||
| Kconfig | ||
| Make.defs | ||
| Makefile | ||
| README.txt | ||
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.