faba0249c1
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_main.c | ||
composite.h | ||
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.