nuttx-apps/system/composite/README.txt

77 lines
3.0 KiB
Plaintext
Raw Normal View History

system/composite
^^^^^^^^^^^^^^^^^^
Squashed commit of the following: commit 99b41a291b78da39d530381db1aab688ef2469e0 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 11:04:13 2017 -0600 apps/system/composite: Remove configuration settings that are no longer used. commit 668179495f0e5204ba51108ccbe7aad71a960367 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 09:26:49 2017 -0600 apps/system/composite: Restore USB tracing; remove unused field in a structure. commit 23f1dd5e48b2e4eb6629f6e99a7de014627cdf89 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 08:58:14 2017 -0600 system/composite: Remove CDC/ACM and MSC configuration logic. This belongs in the OS composite initialization. Add and argument so that you can select the USB composite configuration to be attached. commit f8711488f1eaeca777407fe09fb2967331f7f211 Merge: 00896040 234afcd8 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 14 16:25:48 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 00896040441da1b187d0b39cb2a9e3c393b28865 Merge: f913ea01 ae1eeada Author: Gregory Nutt <gnutt@nuttx.org> Date: Thu Jul 13 13:59:25 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit f913ea0179da7a387414145b27d77524c6cbee88 Merge: bcbdd798 915b42f8 Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jul 10 11:08:46 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit bcbdd798c60bb24fe03b884e32b892ce805cb093 Merge: 2219c02d 1657d1ff Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 7 20:28:30 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 2219c02ddb89c65e5257f681b73da5d6acc1513b Merge: fe1e52a8 d81d9c41 Author: Gregory Nutt <gnutt@nuttx.org> Date: Wed Jul 5 11:12:09 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit fe1e52a83a4a419671b388ada7ed2c79d20604d4 Merge: 94f82d47 75f29d9d Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 30 16:14:36 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 94f82d473dc78157a38490edcc7ede010e106394 Merge: a11806ee ffe0640d Author: Gregory Nutt <gnutt@nuttx.org> Date: Thu Jun 29 10:19:55 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit a11806ee5f45dd0534d00c85950ef2812098ead7 Merge: f29dc985 5f5f8878 Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 26 11:57:00 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit f29dc98512c8945d839aaebacbf4a27205b988e4 Merge: 70faf0d1 d8759ffe Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 19 17:26:00 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 70faf0d17066f91dc53200bafcdf3ece41737db2 Merge: 7d3b1581 a7770590 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 16 17:33:46 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 7d3b1581427fae75d84348ccfc116f7669fc76af Merge: b2c392d4 c8ae5f16 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 16 17:30:39 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit b2c392d4fe1d9f630e018d750319d1d9707c3b8a Merge: 95eb2034 f3dc5bea Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 5 17:41:02 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 95eb20343b8ee856cf174157322797123cfeb573 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 2 07:09:44 2017 -0600 apps/system/composite: Add a configuration option to the boardctl() calls to support multiple composite device configurations dynamically. commit 7652b678824a2edc6924c333ae4f2ed54ceae640 Author: Frank Benkert <Frank.Benkert@avat.de> Date: Thu Jun 1 15:19:40 2017 -0600 Update to apps/system/compsite assocated with big changes to the composite device logic
2017-07-16 16:45:26 +02:00
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:
Squashed commit of the following: commit 99b41a291b78da39d530381db1aab688ef2469e0 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 11:04:13 2017 -0600 apps/system/composite: Remove configuration settings that are no longer used. commit 668179495f0e5204ba51108ccbe7aad71a960367 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 09:26:49 2017 -0600 apps/system/composite: Restore USB tracing; remove unused field in a structure. commit 23f1dd5e48b2e4eb6629f6e99a7de014627cdf89 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 08:58:14 2017 -0600 system/composite: Remove CDC/ACM and MSC configuration logic. This belongs in the OS composite initialization. Add and argument so that you can select the USB composite configuration to be attached. commit f8711488f1eaeca777407fe09fb2967331f7f211 Merge: 00896040 234afcd8 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 14 16:25:48 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 00896040441da1b187d0b39cb2a9e3c393b28865 Merge: f913ea01 ae1eeada Author: Gregory Nutt <gnutt@nuttx.org> Date: Thu Jul 13 13:59:25 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit f913ea0179da7a387414145b27d77524c6cbee88 Merge: bcbdd798 915b42f8 Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jul 10 11:08:46 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit bcbdd798c60bb24fe03b884e32b892ce805cb093 Merge: 2219c02d 1657d1ff Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 7 20:28:30 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 2219c02ddb89c65e5257f681b73da5d6acc1513b Merge: fe1e52a8 d81d9c41 Author: Gregory Nutt <gnutt@nuttx.org> Date: Wed Jul 5 11:12:09 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit fe1e52a83a4a419671b388ada7ed2c79d20604d4 Merge: 94f82d47 75f29d9d Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 30 16:14:36 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 94f82d473dc78157a38490edcc7ede010e106394 Merge: a11806ee ffe0640d Author: Gregory Nutt <gnutt@nuttx.org> Date: Thu Jun 29 10:19:55 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit a11806ee5f45dd0534d00c85950ef2812098ead7 Merge: f29dc985 5f5f8878 Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 26 11:57:00 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit f29dc98512c8945d839aaebacbf4a27205b988e4 Merge: 70faf0d1 d8759ffe Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 19 17:26:00 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 70faf0d17066f91dc53200bafcdf3ece41737db2 Merge: 7d3b1581 a7770590 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 16 17:33:46 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 7d3b1581427fae75d84348ccfc116f7669fc76af Merge: b2c392d4 c8ae5f16 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 16 17:30:39 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit b2c392d4fe1d9f630e018d750319d1d9707c3b8a Merge: 95eb2034 f3dc5bea Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 5 17:41:02 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 95eb20343b8ee856cf174157322797123cfeb573 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 2 07:09:44 2017 -0600 apps/system/composite: Add a configuration option to the boardctl() calls to support multiple composite device configurations dynamically. commit 7652b678824a2edc6924c333ae4f2ed54ceae640 Author: Frank Benkert <Frank.Benkert@avat.de> Date: Thu Jun 1 15:19:40 2017 -0600 Update to apps/system/compsite assocated with big changes to the composite device logic
2017-07-16 16:45:26 +02:00
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
Squashed commit of the following: commit 99b41a291b78da39d530381db1aab688ef2469e0 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 11:04:13 2017 -0600 apps/system/composite: Remove configuration settings that are no longer used. commit 668179495f0e5204ba51108ccbe7aad71a960367 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 09:26:49 2017 -0600 apps/system/composite: Restore USB tracing; remove unused field in a structure. commit 23f1dd5e48b2e4eb6629f6e99a7de014627cdf89 Author: Gregory Nutt <gnutt@nuttx.org> Date: Sat Jul 15 08:58:14 2017 -0600 system/composite: Remove CDC/ACM and MSC configuration logic. This belongs in the OS composite initialization. Add and argument so that you can select the USB composite configuration to be attached. commit f8711488f1eaeca777407fe09fb2967331f7f211 Merge: 00896040 234afcd8 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 14 16:25:48 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 00896040441da1b187d0b39cb2a9e3c393b28865 Merge: f913ea01 ae1eeada Author: Gregory Nutt <gnutt@nuttx.org> Date: Thu Jul 13 13:59:25 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit f913ea0179da7a387414145b27d77524c6cbee88 Merge: bcbdd798 915b42f8 Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jul 10 11:08:46 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit bcbdd798c60bb24fe03b884e32b892ce805cb093 Merge: 2219c02d 1657d1ff Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jul 7 20:28:30 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 2219c02ddb89c65e5257f681b73da5d6acc1513b Merge: fe1e52a8 d81d9c41 Author: Gregory Nutt <gnutt@nuttx.org> Date: Wed Jul 5 11:12:09 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit fe1e52a83a4a419671b388ada7ed2c79d20604d4 Merge: 94f82d47 75f29d9d Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 30 16:14:36 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 94f82d473dc78157a38490edcc7ede010e106394 Merge: a11806ee ffe0640d Author: Gregory Nutt <gnutt@nuttx.org> Date: Thu Jun 29 10:19:55 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit a11806ee5f45dd0534d00c85950ef2812098ead7 Merge: f29dc985 5f5f8878 Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 26 11:57:00 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit f29dc98512c8945d839aaebacbf4a27205b988e4 Merge: 70faf0d1 d8759ffe Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 19 17:26:00 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 70faf0d17066f91dc53200bafcdf3ece41737db2 Merge: 7d3b1581 a7770590 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 16 17:33:46 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 7d3b1581427fae75d84348ccfc116f7669fc76af Merge: b2c392d4 c8ae5f16 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 16 17:30:39 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit b2c392d4fe1d9f630e018d750319d1d9707c3b8a Merge: 95eb2034 f3dc5bea Author: Gregory Nutt <gnutt@nuttx.org> Date: Mon Jun 5 17:41:02 2017 -0600 Merge remote-tracking branch 'origin/master' into composite commit 95eb20343b8ee856cf174157322797123cfeb573 Author: Gregory Nutt <gnutt@nuttx.org> Date: Fri Jun 2 07:09:44 2017 -0600 apps/system/composite: Add a configuration option to the boardctl() calls to support multiple composite device configurations dynamically. commit 7652b678824a2edc6924c333ae4f2ed54ceae640 Author: Frank Benkert <Frank.Benkert@avat.de> Date: Thu Jun 1 15:19:40 2017 -0600 Update to apps/system/compsite assocated with big changes to the composite device logic
2017-07-16 16:45:26 +02:00
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.