summaryrefslogtreecommitdiff
path: root/apps/examples/cdcacm
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-29 21:53:28 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-29 21:53:28 +0000
commit5faa1bd9cefb4e7a2319faaa5b36da9140aba16a (patch)
tree358673f55511cec814532fbf08a11847936c38cf /apps/examples/cdcacm
parent286b14b0c9d2dbad599e80cac9c269c9cd96b408 (diff)
downloadnuttx-5faa1bd9cefb4e7a2319faaa5b36da9140aba16a.tar.gz
nuttx-5faa1bd9cefb4e7a2319faaa5b36da9140aba16a.tar.bz2
nuttx-5faa1bd9cefb4e7a2319faaa5b36da9140aba16a.zip
A little more work (but not much progress) on the PIC32 USB device driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4440 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/examples/cdcacm')
-rw-r--r--apps/examples/cdcacm/cdcacm.h42
-rw-r--r--apps/examples/cdcacm/cdcacm_main.c15
2 files changed, 54 insertions, 3 deletions
diff --git a/apps/examples/cdcacm/cdcacm.h b/apps/examples/cdcacm/cdcacm.h
index 60eada896..ce40e1a93 100644
--- a/apps/examples/cdcacm/cdcacm.h
+++ b/apps/examples/cdcacm/cdcacm.h
@@ -41,12 +41,14 @@
****************************************************************************/
#include <nuttx/config.h>
+
#include <stdlib.h>
+#include <nuttx/usb/usbdev_trace.h>
+
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
-
/* Configuration ************************************************************/
/* Prerequisites */
@@ -68,6 +70,44 @@
# define CONFIG_EXAMPLES_CDCACM_DEVMINOR 0
#endif
+/* Trace Configuration ******************************************************/
+
+#ifdef CONFIG_EXAMPLES_CDCACM_TRACEINIT
+# define TRACE_INIT_BITS (TRACE_INIT_BIT)
+#else
+# define TRACE_INIT_BITS (0)
+#endif
+
+#define TRACE_ERROR_BITS (TRACE_DEVERROR_BIT|TRACE_CLSERROR_BIT)
+
+#ifdef CONFIG_EXAMPLES_CDCACM_TRACECLASS
+# define TRACE_CLASS_BITS (TRACE_CLASS_BIT|TRACE_CLASSAPI_BIT|TRACE_CLASSSTATE_BIT)
+#else
+# define TRACE_CLASS_BITS (0)
+#endif
+
+#ifdef CONFIG_EXAMPLES_CDCACM_TRACETRANSFERS
+# define TRACE_TRANSFER_BITS (TRACE_OUTREQQUEUED_BIT|TRACE_INREQQUEUED_BIT|TRACE_READ_BIT|\
+ TRACE_WRITE_BIT|TRACE_COMPLETE_BIT)
+#else
+# define TRACE_TRANSFER_BITS (0)
+#endif
+
+#ifdef CONFIG_EXAMPLES_CDCACM_TRACECONTROLLER
+# define TRACE_CONTROLLER_BITS (TRACE_EP_BIT|TRACE_DEV_BIT)
+#else
+# define TRACE_CONTROLLER_BITS (0)
+#endif
+
+#ifdef CONFIG_EXAMPLES_CDCACM_TRACEINTERRUPTS
+# define TRACE_INTERRUPT_BITS (TRACE_INTENTRY_BIT|TRACE_INTDECODE_BIT|TRACE_INTEXIT_BIT)
+#else
+# define TRACE_INTERRUPT_BITS (0)
+#endif
+
+#define TRACE_BITSET (TRACE_INIT_BITS|TRACE_ERROR_BITS|TRACE_CLASS_BITS|\
+ TRACE_TRANSFER_BITS|TRACE_CONTROLLER_BITS|TRACE_INTERRUPT_BITS)
+
/* Debug ********************************************************************/
#ifdef CONFIG_CPP_HAVE_VARARGS
diff --git a/apps/examples/cdcacm/cdcacm_main.c b/apps/examples/cdcacm/cdcacm_main.c
index 94afe3a58..aeb7a9e74 100644
--- a/apps/examples/cdcacm/cdcacm_main.c
+++ b/apps/examples/cdcacm/cdcacm_main.c
@@ -81,7 +81,6 @@ struct cdcacm_state_s g_cdcacm;
int sercon_main(int argc, char *argv[])
{
- FAR void *handle;
int ret;
/* Check if there is a non-NULL USB mass storage device handle (meaning that the
@@ -94,7 +93,13 @@ int sercon_main(int argc, char *argv[])
return EXIT_FAILURE;
}
- /* Initialize the USB serial driver */
+ /* Then, in any event, enable trace data collection as configured BEFORE
+ * enabling the CDC/ACM device.
+ */
+
+ usbtrace_enable(TRACE_BITSET);
+
+ /* Initialize the USB CDC/ACM serial driver */
message("sercon: Registering CDC/ACM serial driver\n");
ret = cdcacm_initialize(CONFIG_EXAMPLES_CDCACM_DEVMINOR, &g_cdcacm.handle);
@@ -127,6 +132,12 @@ int serdis_main(int argc, char *argv[])
return EXIT_FAILURE;
}
+ /* Then, in any event, disable trace data collection as configured BEFORE
+ * enabling the CDC/ACM device.
+ */
+
+ usbtrace_enable(0);
+
/* Then disconnect the device and uninitialize the USB mass storage driver */
cdcacm_uninitialize(g_cdcacm.handle);