Move apps/examples/cdcacm to apps/system/cdcacm
This commit is contained in:
parent
edde864e45
commit
4bfd7f7f5e
@ -196,7 +196,7 @@
|
|||||||
backspace or a DEL character as a backspace (i.e., deleting the character
|
backspace or a DEL character as a backspace (i.e., deleting the character
|
||||||
to the left of the cursor). This makes NSH less dependent on particular
|
to the left of the cursor). This makes NSH less dependent on particular
|
||||||
keyboard mappings of the Backspace key. Submitted by Mike Smith.
|
keyboard mappings of the Backspace key. Submitted by Mike Smith.
|
||||||
* apps/examples/cdcacm: An example that illustrates how the CDC/ACM driver
|
* apps/system/cdcacm: An example that illustrates how the CDC/ACM driver
|
||||||
may to connected and disconnected through software control.
|
may to connected and disconnected through software control.
|
||||||
* apps/examples/nsh/nsh_main.c: If available, call up_cxxinitialize() to
|
* apps/examples/nsh/nsh_main.c: If available, call up_cxxinitialize() to
|
||||||
initialize all statically defined C++ classes.
|
initialize all statically defined C++ classes.
|
||||||
@ -664,3 +664,4 @@
|
|||||||
* apps/system/stackmonitor: Add a daemon that can be used to
|
* apps/system/stackmonitor: Add a daemon that can be used to
|
||||||
monitor stack usage by all threads (2013-9-24).
|
monitor stack usage by all threads (2013-9-24).
|
||||||
* system/usbmsc: Move examples/usbmsc to system/usbmsc (2013-9-25).
|
* system/usbmsc: Move examples/usbmsc to system/usbmsc (2013-9-25).
|
||||||
|
* system/cdcacm: Move examples/cdcacm to system/cdcacm (2013-9-25).
|
||||||
|
@ -7,7 +7,6 @@ source "$APPSDIR/examples/adc/Kconfig"
|
|||||||
source "$APPSDIR/examples/buttons/Kconfig"
|
source "$APPSDIR/examples/buttons/Kconfig"
|
||||||
source "$APPSDIR/examples/can/Kconfig"
|
source "$APPSDIR/examples/can/Kconfig"
|
||||||
source "$APPSDIR/examples/cc3000/Kconfig"
|
source "$APPSDIR/examples/cc3000/Kconfig"
|
||||||
source "$APPSDIR/examples/cdcacm/Kconfig"
|
|
||||||
source "$APPSDIR/examples/composite/Kconfig"
|
source "$APPSDIR/examples/composite/Kconfig"
|
||||||
source "$APPSDIR/examples/cxxtest/Kconfig"
|
source "$APPSDIR/examples/cxxtest/Kconfig"
|
||||||
source "$APPSDIR/examples/dhcpd/Kconfig"
|
source "$APPSDIR/examples/dhcpd/Kconfig"
|
||||||
|
@ -50,10 +50,6 @@ ifeq ($(CONFIG_EXAMPLES_CC3000BASIC),y)
|
|||||||
CONFIGURED_APPS += examples/cc3000
|
CONFIGURED_APPS += examples/cc3000
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_EXAMPLES_CDCACM),y)
|
|
||||||
CONFIGURED_APPS += examples/cdcacm
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_EXAMPLES_COMPOSITE),y)
|
ifeq ($(CONFIG_EXAMPLES_COMPOSITE),y)
|
||||||
CONFIGURED_APPS += examples/composite
|
CONFIGURED_APPS += examples/composite
|
||||||
endif
|
endif
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
# Sub-directories
|
# Sub-directories
|
||||||
|
|
||||||
SUBDIRS = adc buttons can cc3000 cdcacm composite cxxtest dhcpd discover elf
|
SUBDIRS = adc buttons can cc3000 composite cxxtest dhcpd discover elf
|
||||||
SUBDIRS += flash_test ftpc ftpd hello helloxx hidkbd igmp json keypadtest
|
SUBDIRS += flash_test ftpc ftpd hello helloxx hidkbd igmp json keypadtest
|
||||||
SUBDIRS += lcdrw mm modbus mount mtdpart nettest nrf24l01_term nsh null
|
SUBDIRS += lcdrw mm modbus mount mtdpart nettest nrf24l01_term nsh null
|
||||||
SUBDIRS += nx nxconsole nxffs nxflat nxhello nximage nxlines nxtext ostest
|
SUBDIRS += nx nxconsole nxffs nxflat nxhello nximage nxlines nxtext ostest
|
||||||
@ -53,7 +53,7 @@ SUBDIRS += xmlrpc
|
|||||||
CNTXTDIRS = pwm
|
CNTXTDIRS = pwm
|
||||||
|
|
||||||
ifeq ($(CONFIG_NSH_BUILTIN_APPS),y)
|
ifeq ($(CONFIG_NSH_BUILTIN_APPS),y)
|
||||||
CNTXTDIRS += adc can cc3000 cdcacm composite cxxtest dhcpd discover flash_test
|
CNTXTDIRS += adc can cc3000 composite cxxtest dhcpd discover flash_test
|
||||||
CNTXTDIRS += ftpd hello helloxx json keypadtestmodbus lcdrw mtdpart nettest
|
CNTXTDIRS += ftpd hello helloxx json keypadtestmodbus lcdrw mtdpart nettest
|
||||||
CNTXTDIRS += nx nxhello nximage nxlines nxtext nrf24l01_term ostest relays
|
CNTXTDIRS += nx nxhello nximage nxlines nxtext nrf24l01_term ostest relays
|
||||||
CNTXTDIRS += qencoder slcd smart_test tcpecho telnetd tiff touchscreen
|
CNTXTDIRS += qencoder slcd smart_test tcpecho telnetd tiff touchscreen
|
||||||
|
@ -131,50 +131,6 @@ examples/cc3000
|
|||||||
|
|
||||||
This is a test for the TI CC3000 wireless networking module.
|
This is a test for the TI CC3000 wireless networking module.
|
||||||
|
|
||||||
examples/cdcacm
|
|
||||||
^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
This very simple example shows how a USB CDC/ACM serial can be dynamically
|
|
||||||
connected and disconnected from a host. This example can only be used as
|
|
||||||
an NSH built-int command. If built-in, then two new NSH commands will be
|
|
||||||
supported:
|
|
||||||
|
|
||||||
1. sercon - Connect the CDC/ACM serial device
|
|
||||||
2. serdis - Disconnect the CDC/ACM serial device
|
|
||||||
|
|
||||||
Configuration prequisites (not complete):
|
|
||||||
|
|
||||||
CONFIG_USBDEV=y : USB device support must be enabled
|
|
||||||
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
|
||||||
CONFIG_NSH_BUILTIN_APPS : NSH built-in application support must be enabled
|
|
||||||
|
|
||||||
Configuration options specific to this example:
|
|
||||||
|
|
||||||
CONFIG_EXAMPLES_CDCACM_DEVMINOR : The minor number of the CDC/ACM device.
|
|
||||||
: i.e., the 'x' in /dev/ttyACMx
|
|
||||||
|
|
||||||
If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB, or
|
|
||||||
CONFIG_USBDEV_TRACE), then the example code will also initialize the USB trace
|
|
||||||
output. The amount of trace output can be controlled using:
|
|
||||||
|
|
||||||
CONFIG_EXAMPLES_CDCACM_TRACEINIT
|
|
||||||
Show initialization events
|
|
||||||
CONFIG_EXAMPLES_CDCACM_TRACECLASS
|
|
||||||
Show class driver events
|
|
||||||
CONFIG_EXAMPLES_CDCACM_TRACETRANSFERS
|
|
||||||
Show data transfer events
|
|
||||||
CONFIG_EXAMPLES_CDCACM_TRACECONTROLLER
|
|
||||||
Show controller events
|
|
||||||
CONFIG_EXAMPLES_CDCACM_TRACEINTERRUPTS
|
|
||||||
Show interrupt-related events.
|
|
||||||
|
|
||||||
Note: This example is only enables or disable USB CDC/ACM via the NSH
|
|
||||||
'sercon' and 'serdis' command. It will enable and disable tracing per
|
|
||||||
the settings before enabling and after disabling the CDC/ACM device. It
|
|
||||||
will not, however, monitor buffered trace data in the interim. If
|
|
||||||
CONFIG_USBDEV_TRACE is defined (and the debug options are not), other
|
|
||||||
application logic will need to monitor the buffered trace data.
|
|
||||||
|
|
||||||
examples/composite
|
examples/composite
|
||||||
^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
# see misc/tools/kconfig-language.txt.
|
# see misc/tools/kconfig-language.txt.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
menu "USB CDC/ACM Class Commands"
|
||||||
|
source "$APPSDIR/system/cdcacm/Kconfig"
|
||||||
|
endmenu
|
||||||
|
|
||||||
menu "Custom Free Memory Command"
|
menu "Custom Free Memory Command"
|
||||||
source "$APPSDIR/system/free/Kconfig"
|
source "$APPSDIR/system/free/Kconfig"
|
||||||
endmenu
|
endmenu
|
||||||
@ -51,7 +55,7 @@ menu "Stack Monitor"
|
|||||||
source "$APPSDIR/system/stackmonitor/Kconfig"
|
source "$APPSDIR/system/stackmonitor/Kconfig"
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "USB Mass Storage Class"
|
menu "USB Mass Storage Class Commands"
|
||||||
source "$APPSDIR/system/usbmsc/Kconfig"
|
source "$APPSDIR/system/usbmsc/Kconfig"
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
@ -34,6 +34,10 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_SYSTEM_CDCACM),y)
|
||||||
|
CONFIGURED_APPS += system/cdcacm
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_SYSTEM_FREE),y)
|
ifeq ($(CONFIG_SYSTEM_FREE),y)
|
||||||
CONFIGURED_APPS += system/free
|
CONFIGURED_APPS += system/free
|
||||||
endif
|
endif
|
||||||
|
@ -37,8 +37,8 @@
|
|||||||
|
|
||||||
# Sub-directories containing system task
|
# Sub-directories containing system task
|
||||||
|
|
||||||
SUBDIRS = flash_eraseall free i2c install poweroff ramtest ramtron readline
|
SUBDIRS = cdcacm flash_eraseall free i2c install poweroff ramtest ramtron
|
||||||
SUBDIRS += sdcard stackmonitor sysinfo usbmonitor usbmsc zmodem
|
SUBDIRS += readline sdcard stackmonitor sysinfo usbmonitor usbmsc zmodem
|
||||||
|
|
||||||
# Create the list of installed runtime modules (INSTALLED_DIRS)
|
# Create the list of installed runtime modules (INSTALLED_DIRS)
|
||||||
|
|
||||||
|
@ -3,16 +3,19 @@
|
|||||||
# see misc/tools/kconfig-language.txt.
|
# see misc/tools/kconfig-language.txt.
|
||||||
#
|
#
|
||||||
|
|
||||||
config EXAMPLES_CDCACM
|
config SYSTEM_CDCACM
|
||||||
bool "CDC/ACM example"
|
bool "CDC/ACM class controls"
|
||||||
default n
|
default n
|
||||||
depends on CDCACM
|
depends on CDCACM && !KERNEL_BUILD
|
||||||
---help---
|
---help---
|
||||||
Enable the USB CDC/ACM class driver example
|
Enable the USB CDC/ACM class controls. These controls include:
|
||||||
|
|
||||||
if EXAMPLES_CDCACM
|
sercon: Connect the mass storage device to the host
|
||||||
|
serdis: Disconnect the mass storage device to the host
|
||||||
|
|
||||||
config EXAMPLES_CDCACM_DEVMINOR
|
if SYSTEM_CDCACM
|
||||||
|
|
||||||
|
config SYSTEM_CDCACM_DEVMINOR
|
||||||
int "CDC/ACM Minor Device Number"
|
int "CDC/ACM Minor Device Number"
|
||||||
default 0
|
default 0
|
||||||
---help---
|
---help---
|
||||||
@ -20,53 +23,53 @@ config EXAMPLES_CDCACM_DEVMINOR
|
|||||||
For example, N in /dev/ttyACMN. Used for registering the serial
|
For example, N in /dev/ttyACMN. Used for registering the serial
|
||||||
driver. Default is zero.
|
driver. Default is zero.
|
||||||
|
|
||||||
config EXAMPLES_CDCACM_TRACEINIT
|
config SYSTEM_CDCACM_TRACEINIT
|
||||||
bool "USB Trace Initialization"
|
bool "USB Trace Initialization"
|
||||||
default n
|
default n
|
||||||
depends on USBDEV_TRACE || DEBUG_USB
|
depends on USBDEV_TRACE || DEBUG_USB
|
||||||
---help---
|
---help---
|
||||||
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
||||||
then the example code will also manage the USB trace output. The
|
then the add-on code will also manage the USB trace output. The
|
||||||
amount of trace output can be controlled this configuration value:
|
amount of trace output can be controlled this configuration value:
|
||||||
This setting will show USB initialization events
|
This setting will show USB initialization events
|
||||||
|
|
||||||
config EXAMPLES_CDCACM_TRACECLASS
|
config SYSTEM_CDCACM_TRACECLASS
|
||||||
bool "USB Trace Class"
|
bool "USB Trace Class"
|
||||||
default n
|
default n
|
||||||
depends on USBDEV_TRACE || DEBUG_USB
|
depends on USBDEV_TRACE || DEBUG_USB
|
||||||
---help---
|
---help---
|
||||||
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
||||||
then the example code will also manage the USB trace output. The
|
then the add-on code will also manage the USB trace output. The
|
||||||
amount of trace output can be controlled this configuration value:
|
amount of trace output can be controlled this configuration value:
|
||||||
This setting will show USB class driver events
|
This setting will show USB class driver events
|
||||||
|
|
||||||
config EXAMPLES_CDCACM_TRACETRANSFERS
|
config SYSTEM_CDCACM_TRACETRANSFERS
|
||||||
bool "USB Trace Transfers"
|
bool "USB Trace Transfers"
|
||||||
default n
|
default n
|
||||||
depends on USBDEV_TRACE || DEBUG_USB
|
depends on USBDEV_TRACE || DEBUG_USB
|
||||||
---help---
|
---help---
|
||||||
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
||||||
then the example code will also manage the USB trace output. The
|
then the add-on code will also manage the USB trace output. The
|
||||||
amount of trace output can be controlled this configuration value:
|
amount of trace output can be controlled this configuration value:
|
||||||
This setting will show USB data transfer events
|
This setting will show USB data transfer events
|
||||||
|
|
||||||
config EXAMPLES_CDCACM_TRACECONTROLLER
|
config SYSTEM_CDCACM_TRACECONTROLLER
|
||||||
bool "USB Trace Device Controller Events"
|
bool "USB Trace Device Controller Events"
|
||||||
default n
|
default n
|
||||||
depends on USBDEV_TRACE || DEBUG_USB
|
depends on USBDEV_TRACE || DEBUG_USB
|
||||||
---help---
|
---help---
|
||||||
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
||||||
then the example code will also manage the USB trace output. The
|
then the add-on code will also manage the USB trace output. The
|
||||||
amount of trace output can be controlled this configuration value:
|
amount of trace output can be controlled this configuration value:
|
||||||
This setting will show USB device controller events
|
This setting will show USB device controller events
|
||||||
|
|
||||||
config EXAMPLES_CDCACM_TRACEINTERRUPTS
|
config SYSTEM_CDCACM_TRACEINTERRUPTS
|
||||||
bool "USB Trace Device Controller Interrupt Events"
|
bool "USB Trace Device Controller Interrupt Events"
|
||||||
default n
|
default n
|
||||||
depends on USBDEV_TRACE || DEBUG_USB
|
depends on USBDEV_TRACE || DEBUG_USB
|
||||||
---help---
|
---help---
|
||||||
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
If USBDEV_TRACE is enabled (or DEBUG and DEBUG_USB),
|
||||||
then the example code will also manage the USB trace output. The
|
then the add-on code will also manage the USB trace output. The
|
||||||
amount of trace output can be controlled this configuration value:
|
amount of trace output can be controlled this configuration value:
|
||||||
This setting will show USB device controller interrupt-related events.
|
This setting will show USB device controller interrupt-related events.
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
############################################################################
|
############################################################################
|
||||||
# apps/examples/cdcacm/Makefile
|
# apps/system/cdcacm/Makefile
|
||||||
#
|
#
|
||||||
# Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
# Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
@ -37,7 +37,7 @@
|
|||||||
-include $(TOPDIR)/Make.defs
|
-include $(TOPDIR)/Make.defs
|
||||||
include $(APPDIR)/Make.defs
|
include $(APPDIR)/Make.defs
|
||||||
|
|
||||||
# USB CDC/ACM serial mass storage example
|
# USB CDC/ACM serial mass storage add-on
|
||||||
|
|
||||||
ASRCS =
|
ASRCS =
|
||||||
CSRCS = cdcacm_main.c
|
CSRCS = cdcacm_main.c
|
43
system/cdcacm/README.txt
Executable file
43
system/cdcacm/README.txt
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
system/cdcacm
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This very simple add-on allows the USB CDC/ACM serial device can be dynamically
|
||||||
|
connected and disconnected from a host. This add-on can only be used as
|
||||||
|
an NSH built-in command. If built-in, then two new NSH commands will be
|
||||||
|
supported:
|
||||||
|
|
||||||
|
1. sercon - Connect the CDC/ACM serial device
|
||||||
|
2. serdis - Disconnect the CDC/ACM serial device
|
||||||
|
|
||||||
|
Configuration prequisites (not complete):
|
||||||
|
|
||||||
|
CONFIG_USBDEV=y : USB device support must be enabled
|
||||||
|
CONFIG_CDCACM=y : The CDC/ACM driver must be built
|
||||||
|
CONFIG_NSH_BUILTIN_APPS : NSH built-in application support must be enabled
|
||||||
|
|
||||||
|
Configuration options specific to this add-on:
|
||||||
|
|
||||||
|
CONFIG_SYSTEM_CDCACM_DEVMINOR : The minor number of the CDC/ACM device.
|
||||||
|
: i.e., the 'x' in /dev/ttyACMx
|
||||||
|
|
||||||
|
If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB, or
|
||||||
|
CONFIG_USBDEV_TRACE), then the add-on code will also initialize the USB trace
|
||||||
|
output. The amount of trace output can be controlled using:
|
||||||
|
|
||||||
|
CONFIG_SYSTEM_CDCACM_TRACEINIT
|
||||||
|
Show initialization events
|
||||||
|
CONFIG_SYSTEM_CDCACM_TRACECLASS
|
||||||
|
Show class driver events
|
||||||
|
CONFIG_SYSTEM_CDCACM_TRACETRANSFERS
|
||||||
|
Show data transfer events
|
||||||
|
CONFIG_SYSTEM_CDCACM_TRACECONTROLLER
|
||||||
|
Show controller events
|
||||||
|
CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS
|
||||||
|
Show interrupt-related events.
|
||||||
|
|
||||||
|
Note: This add-on is only enables or disable USB CDC/ACM via the NSH
|
||||||
|
'sercon' and 'serdis' command. It will enable and disable tracing per
|
||||||
|
the settings before enabling and after disabling the CDC/ACM device. It
|
||||||
|
will not, however, monitor buffered trace data in the interim. If
|
||||||
|
CONFIG_USBDEV_TRACE is defined (and the debug options are not), other
|
||||||
|
application logic will need to monitor the buffered trace data.
|
@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* examples/cdcacm/cdcacm.h
|
* system/cdcacm/cdcacm.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __EXAMPLES_CDCACM_CDCACM_H
|
#ifndef __SYSTEM_CDCACM_CDCACM_H
|
||||||
#define __EXAMPLES_CDCACM_CDCACM_H
|
#define __SYSTEM_CDCACM_CDCACM_H
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@ -61,18 +61,18 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_NSH_BUILTIN_APPS
|
#ifndef CONFIG_NSH_BUILTIN_APPS
|
||||||
# error "This example can only be built as an NSH built-in application"
|
# error "This add-on can only be built as an NSH built-in application"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Default configuration values */
|
/* Default configuration values */
|
||||||
|
|
||||||
#ifndef CONFIG_EXAMPLES_CDCACM_DEVMINOR
|
#ifndef CONFIG_SYSTEM_CDCACM_DEVMINOR
|
||||||
# define CONFIG_EXAMPLES_CDCACM_DEVMINOR 0
|
# define CONFIG_SYSTEM_CDCACM_DEVMINOR 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Trace Configuration ******************************************************/
|
/* Trace Configuration ******************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_EXAMPLES_CDCACM_TRACEINIT
|
#ifdef CONFIG_SYSTEM_CDCACM_TRACEINIT
|
||||||
# define TRACE_INIT_BITS (TRACE_INIT_BIT)
|
# define TRACE_INIT_BITS (TRACE_INIT_BIT)
|
||||||
#else
|
#else
|
||||||
# define TRACE_INIT_BITS (0)
|
# define TRACE_INIT_BITS (0)
|
||||||
@ -80,26 +80,26 @@
|
|||||||
|
|
||||||
#define TRACE_ERROR_BITS (TRACE_DEVERROR_BIT|TRACE_CLSERROR_BIT)
|
#define TRACE_ERROR_BITS (TRACE_DEVERROR_BIT|TRACE_CLSERROR_BIT)
|
||||||
|
|
||||||
#ifdef CONFIG_EXAMPLES_CDCACM_TRACECLASS
|
#ifdef CONFIG_SYSTEM_CDCACM_TRACECLASS
|
||||||
# define TRACE_CLASS_BITS (TRACE_CLASS_BIT|TRACE_CLASSAPI_BIT|TRACE_CLASSSTATE_BIT)
|
# define TRACE_CLASS_BITS (TRACE_CLASS_BIT|TRACE_CLASSAPI_BIT|TRACE_CLASSSTATE_BIT)
|
||||||
#else
|
#else
|
||||||
# define TRACE_CLASS_BITS (0)
|
# define TRACE_CLASS_BITS (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_EXAMPLES_CDCACM_TRACETRANSFERS
|
#ifdef CONFIG_SYSTEM_CDCACM_TRACETRANSFERS
|
||||||
# define TRACE_TRANSFER_BITS (TRACE_OUTREQQUEUED_BIT|TRACE_INREQQUEUED_BIT|TRACE_READ_BIT|\
|
# define TRACE_TRANSFER_BITS (TRACE_OUTREQQUEUED_BIT|TRACE_INREQQUEUED_BIT|TRACE_READ_BIT|\
|
||||||
TRACE_WRITE_BIT|TRACE_COMPLETE_BIT)
|
TRACE_WRITE_BIT|TRACE_COMPLETE_BIT)
|
||||||
#else
|
#else
|
||||||
# define TRACE_TRANSFER_BITS (0)
|
# define TRACE_TRANSFER_BITS (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_EXAMPLES_CDCACM_TRACECONTROLLER
|
#ifdef CONFIG_SYSTEM_CDCACM_TRACECONTROLLER
|
||||||
# define TRACE_CONTROLLER_BITS (TRACE_EP_BIT|TRACE_DEV_BIT)
|
# define TRACE_CONTROLLER_BITS (TRACE_EP_BIT|TRACE_DEV_BIT)
|
||||||
#else
|
#else
|
||||||
# define TRACE_CONTROLLER_BITS (0)
|
# define TRACE_CONTROLLER_BITS (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_EXAMPLES_CDCACM_TRACEINTERRUPTS
|
#ifdef CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS
|
||||||
# define TRACE_INTERRUPT_BITS (TRACE_INTENTRY_BIT|TRACE_INTDECODE_BIT|TRACE_INTEXIT_BIT)
|
# define TRACE_INTERRUPT_BITS (TRACE_INTENTRY_BIT|TRACE_INTDECODE_BIT|TRACE_INTEXIT_BIT)
|
||||||
#else
|
#else
|
||||||
# define TRACE_INTERRUPT_BITS (0)
|
# define TRACE_INTERRUPT_BITS (0)
|
||||||
@ -132,14 +132,14 @@
|
|||||||
* Public Types
|
* Public Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* All global variables used by this example are packed into a structure in
|
/* All global variables used by this add-on are packed into a structure in
|
||||||
* order to avoid name collisions.
|
* order to avoid name collisions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct cdcacm_state_s
|
struct cdcacm_state_s
|
||||||
{
|
{
|
||||||
/* This is the handle that references to this particular USB storage driver
|
/* This is the handle that references to this particular USB CDC/ACM driver
|
||||||
* instance. It is only needed if the USB mass storage device example is
|
* instance. It is only needed if the USB CDC/ACM device add-on is
|
||||||
* built using CONFIG_NSH_BUILTIN_APPS. In this case, the value
|
* built using CONFIG_NSH_BUILTIN_APPS. In this case, the value
|
||||||
* of the driver handle must be remembered between the 'sercon' and 'msdis'
|
* of the driver handle must be remembered between the 'sercon' and 'msdis'
|
||||||
* commands.
|
* commands.
|
||||||
@ -152,7 +152,7 @@ struct cdcacm_state_s
|
|||||||
* Public Data
|
* Public Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* All global variables used by this example are packed into a structure in
|
/* All global variables used by this add-on are packed into a structure in
|
||||||
* order to avoid name collisions.
|
* order to avoid name collisions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -162,4 +162,4 @@ extern struct cdcacm_state_s g_cdcacm;
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#endif /* __EXAMPLES_CDCACM_CDCACM_H */
|
#endif /* __SYSTEM_CDCACM_CDCACM_H */
|
@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* examples/cdcacm/cdcacm_main.c
|
* system/cdcacm/cdcacm_main.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
@ -57,7 +57,7 @@
|
|||||||
* Private Data
|
* Private Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* All global variables used by this example are packed into a structure in
|
/* All global variables used by this add-on are packed into a structure in
|
||||||
* order to avoid name collisions.
|
* order to avoid name collisions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ int sercon_main(int argc, char *argv[])
|
|||||||
/* Initialize the USB CDC/ACM serial driver */
|
/* Initialize the USB CDC/ACM serial driver */
|
||||||
|
|
||||||
message("sercon: Registering CDC/ACM serial driver\n");
|
message("sercon: Registering CDC/ACM serial driver\n");
|
||||||
ret = cdcacm_initialize(CONFIG_EXAMPLES_CDCACM_DEVMINOR, &g_cdcacm.handle);
|
ret = cdcacm_initialize(CONFIG_SYSTEM_CDCACM_DEVMINOR, &g_cdcacm.handle);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
message("sercon: ERROR: Failed to create the CDC/ACM serial device: %d\n", -ret);
|
message("sercon: ERROR: Failed to create the CDC/ACM serial device: %d\n", -ret);
|
@ -6,7 +6,7 @@
|
|||||||
config SYSTEM_USBMSC
|
config SYSTEM_USBMSC
|
||||||
bool "USB mass storage class controls"
|
bool "USB mass storage class controls"
|
||||||
default n
|
default n
|
||||||
depends on USBMSC
|
depends on USBMSC && !KERNEL_BUILD
|
||||||
---help---
|
---help---
|
||||||
Enable the USB mass storage class controls. These controls include:
|
Enable the USB mass storage class controls. These controls include:
|
||||||
|
|
||||||
|
76
system/usbmsc/README.txt
Executable file
76
system/usbmsc/README.txt
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
system/usbmsc
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This add-on registers a block device driver, then exports the block
|
||||||
|
the device using the USB storage class driver. In order to use this
|
||||||
|
add-on, your board-specific logic must provide the function:
|
||||||
|
|
||||||
|
void usbmsc_archinitialize(void);
|
||||||
|
|
||||||
|
This function will be called by the system/usbmsc in order to
|
||||||
|
do the actual registration of the block device drivers. For examples
|
||||||
|
of the implementation of usbmsc_archinitialize() see
|
||||||
|
configs/mcu123-lpc124x/src/up_usbmsc.c or
|
||||||
|
configs/stm3210e-eval/src/usbmsc.c
|
||||||
|
|
||||||
|
Configuration options:
|
||||||
|
|
||||||
|
CONFIG_NSH_BUILTIN_APPS
|
||||||
|
This add-on can be built as two NSH "built-in" commands if this option
|
||||||
|
is selected: 'msconn' will connect the USB mass storage device; 'msdis'
|
||||||
|
will disconnect the USB storage device.
|
||||||
|
CONFIG_SYSTEM_USBMSC_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_USBMSC_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_USBMSC_DEVPATH1
|
||||||
|
The full path to the registered block driver. Default is "/dev/mmcsd0"
|
||||||
|
CONFIG_SYSTEM_USBMSC_DEVMINOR2 and CONFIG_SYSTEM_USBMSC_DEVPATH2
|
||||||
|
Similar parameters that would have to be provided if CONFIG_SYSTEM_USBMSC_NLUNS
|
||||||
|
is 2 or 3. No defaults.
|
||||||
|
CONFIG_SYSTEM_USBMSC_DEVMINOR3 and CONFIG_SYSTEM_USBMSC_DEVPATH3
|
||||||
|
Similar parameters that would have to be provided if CONFIG_SYSTEM_USBMSC_NLUNS
|
||||||
|
is 3. No defaults.
|
||||||
|
CONFIG_SYSTEM_USBMSC_DEBUGMM
|
||||||
|
Enables some debug tests to check for memory usage and memory leaks.
|
||||||
|
|
||||||
|
If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
|
||||||
|
the code will also manage the USB trace output. The amount of trace output
|
||||||
|
can be controlled using:
|
||||||
|
|
||||||
|
CONFIG_SYSTEM_USBMSC_TRACEINIT
|
||||||
|
Show initialization events
|
||||||
|
CONFIG_SYSTEM_USBMSC_TRACECLASS
|
||||||
|
Show class driver events
|
||||||
|
CONFIG_SYSTEM_USBMSC_TRACETRANSFERS
|
||||||
|
Show data transfer events
|
||||||
|
CONFIG_SYSTEM_USBMSC_TRACECONTROLLER
|
||||||
|
Show controller events
|
||||||
|
CONFIG_SYSTEM_USBMSC_TRACEINTERRUPTS
|
||||||
|
Show interrupt-related events.
|
||||||
|
|
||||||
|
Error results are always shown in the trace output
|
||||||
|
|
||||||
|
NOTE 1: When built as an NSH add-on command (CONFIG_NSH_BUILTIN_APPS=y),
|
||||||
|
Caution should be used to assure that the SD drive (or other storage device) is
|
||||||
|
not in use when the USB storage device is configured. Specifically, the SD
|
||||||
|
driver should be unmounted like:
|
||||||
|
|
||||||
|
nsh> mount -t vfat /dev/mmcsd0 /mnt/sdcard # Card is mounted in NSH
|
||||||
|
...
|
||||||
|
nsh> umount /mnd/sdcard # Unmount before connecting USB!!!
|
||||||
|
nsh> msconn # Connect the USB storage device
|
||||||
|
...
|
||||||
|
nsh> msdis # Disconnect USB storate device
|
||||||
|
nsh> mount -t vfat /dev/mmcsd0 /mnt/sdcard # Restore the mount
|
||||||
|
|
||||||
|
Failure to do this could result in corruption of the SD card format.
|
||||||
|
|
||||||
|
NOTE 2: This add-on used internal USB device driver interfaces. As such,
|
||||||
|
it relies on internal OS interfaces that are not normally available to a
|
||||||
|
user-space program. As a result, this add-on cannot be used if a
|
||||||
|
NuttX is built as a protected, supervisor kernel (CONFIG_NUTTX_KERNEL).
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* system/usbmsc/usbmsc.h
|
* system/usbmsc/usbmsc.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2008-2009, 2012-2013 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -33,8 +33,8 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __EXAMPLES_USBSTORAGE_USBMSC_H
|
#ifndef __SYSTEM_USBMSC_USBMSC_H
|
||||||
#define __EXAMPLES_USBSTORAGE_USBMSC_H
|
#define __SYSTEM_USBMSC_USBMSC_H
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Included Files
|
* Included Files
|
||||||
@ -177,4 +177,4 @@ extern struct usbmsc_state_s g_usbmsc;
|
|||||||
|
|
||||||
extern int usbmsc_archinitialize(void);
|
extern int usbmsc_archinitialize(void);
|
||||||
|
|
||||||
#endif /* __EXAMPLES_USBSTORAGE_USBMSC_H */
|
#endif /* __SYSTEM_USBMSC_USBMSC_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user