summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-09-26 16:52:20 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-09-26 16:52:20 +0000
commitbb7b0e66a4df58e61acfe29635c871c443780524 (patch)
tree141b488a10d76ec9548156712b855e49a88b5dea /nuttx
parent467bf8d64e185e5deea72c4a137f84074fa44938 (diff)
downloadpx4-nuttx-bb7b0e66a4df58e61acfe29635c871c443780524.tar.gz
px4-nuttx-bb7b0e66a4df58e61acfe29635c871c443780524.tar.bz2
px4-nuttx-bb7b0e66a4df58e61acfe29635c871c443780524.zip
Add examples/usbterm
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3976 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx')
-rwxr-xr-xnuttx/configs/stm3210e-eval/README.txt10
-rwxr-xr-xnuttx/configs/stm3210e-eval/usbserial/defconfig28
-rw-r--r--nuttx/drivers/usbdev/cdc_serial.c15
3 files changed, 52 insertions, 1 deletions
diff --git a/nuttx/configs/stm3210e-eval/README.txt b/nuttx/configs/stm3210e-eval/README.txt
index 017af14e5..3f260e9a8 100755
--- a/nuttx/configs/stm3210e-eval/README.txt
+++ b/nuttx/configs/stm3210e-eval/README.txt
@@ -631,6 +631,16 @@ Where <subdir> is one of the following:
-CONFIG_CDCSER=n
+CONFIG_CDCSER=y
+ The example can also be converted to use the alternative
+ USB serial example at apps/examples/usbterm by changing the
+ following:
+
+ -CONFIGURED_APPS += examples/usbserial
+ +CONFIGURED_APPS += examples/usbterm
+
+ In either the original appconfig file (before configuring)
+ or in the final apps/.config file (after configuring).
+
usbstorage:
----------
This configuration directory exercises the USB mass storage
diff --git a/nuttx/configs/stm3210e-eval/usbserial/defconfig b/nuttx/configs/stm3210e-eval/usbserial/defconfig
index ec48e44c9..a23ef58f7 100755
--- a/nuttx/configs/stm3210e-eval/usbserial/defconfig
+++ b/nuttx/configs/stm3210e-eval/usbserial/defconfig
@@ -885,6 +885,34 @@ CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER=n
CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS=n
#
+# Settings for examples/usbterm
+#
+# CONFIG_EXAMPLES_UBSTERM_BUILTIN - Build the usbterm example as an NSH
+# built-in command. NOTE: This is not fully functional as of this
+# writing.. It should work, but there is no mechanism in place yet
+# to exit the USB terminal program and return to NSH.
+# CONFIG_EXAMPLES_USBTERM_BUFLEN - The size of the input and output
+# buffers used for receiving data. Default 256 bytes.
+#
+# If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB, or
+# CONFIG_USBDEV_TRACE), then the example code will also manage the USB trace
+# output. The amount of trace output can be controlled using:
+#
+# CONFIG_EXAMPLES_USBTERM_TRACEINIT - Show initialization events
+# CONFIG_EXAMPLES_USBTERM_TRACECLASS - Show class driver events
+# CONFIG_EXAMPLES_USBTERM_TRACETRANSFERS - Show data transfer events
+# CONFIG_EXAMPLES_USBTERM_TRACECONTROLLER - Show controller events
+# CONFIG_EXAMPLES_USBTERM_TRACEINTERRUPTS - Show interrupt-related events
+#
+CONFIG_EXAMPLES_UBSTERM_BUILTIN=n
+CONFIG_EXAMPLES_USBTERM_BUFLEN=256
+CONFIG_EXAMPLES_USBTERM_TRACEINIT=n
+CONFIG_EXAMPLES_USBTERM_TRACECLASS=n
+CONFIG_EXAMPLES_USBTERM_TRACETRANSFERS=n
+CONFIG_EXAMPLES_USBTERM_TRACECONTROLLER=n
+CONFIG_EXAMPLES_USBTERM_TRACEINTERRUPTS=n
+
+#
# Stack and heap information
#
# CONFIG_BOOT_RUNFROMFLASH - Some configurations support XIP
diff --git a/nuttx/drivers/usbdev/cdc_serial.c b/nuttx/drivers/usbdev/cdc_serial.c
index d5d5739b2..bab4e3951 100644
--- a/nuttx/drivers/usbdev/cdc_serial.c
+++ b/nuttx/drivers/usbdev/cdc_serial.c
@@ -2170,7 +2170,20 @@ static int usbser_ioctl(FAR struct file *filep,int cmd,unsigned long arg)
case CAIOC_NOTIFY:
{
/* Not yet implemented. I probably won't bother to implement until
- * I com up with a usage model that needs it.
+ * I comr up with a usage model that needs it.
+ *
+ * Here is what the needs to be done:
+ *
+ * 1. Format and send a request header with:
+ *
+ * bmRequestType:
+ * USB_REQ_DIR_IN|USB_REQ_TYPE_CLASS|USB_REQ_RECIPIENT_INTERFACE
+ * bRequest: ACM_SERIAL_STATE
+ * wValue: 0
+ * wIndex: 0
+ * wLength: Length of data
+ *
+ * 2. Followed by the notification data (in a separate packet)
*/
ret = -ENOSYS;