summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-10-28 17:21:47 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-10-28 17:21:47 +0000
commita487ac3528bfb932b7c0901287e788097c2cac19 (patch)
tree14b3028007c5538b00ab1e6171f264c402e89cca
parentfc5024fb93f5c4454947688625164bb9e7087fac (diff)
downloadnuttx-a487ac3528bfb932b7c0901287e788097c2cac19.tar.gz
nuttx-a487ac3528bfb932b7c0901287e788097c2cac19.tar.bz2
nuttx-a487ac3528bfb932b7c0901287e788097c2cac19.zip
Add finer trace controls
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1096 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/examples/README.txt18
-rw-r--r--nuttx/examples/usbstorage/usbstrg_main.c52
2 files changed, 55 insertions, 15 deletions
diff --git a/nuttx/examples/README.txt b/nuttx/examples/README.txt
index 8625bceb0..5b5dc94ff 100644
--- a/nuttx/examples/README.txt
+++ b/nuttx/examples/README.txt
@@ -161,3 +161,21 @@ examples/usbstorage
CONFIG_EXAMPLES_USBSTRG_DEVMINOR3 and CONFIG_EXAMPLES_USBSTRG_DEVPATH3
Similar parameters that would have to be provided if CONFIG_EXAMPLES_USBSTRG_NLUNS
is 3.
+
+ If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
+ the example code will also manage the USB trace output. The amount of trace output
+ can be controlled using:
+
+ CONFIG_EXAMPLES_USBSTRG_TRACEINIT
+ Show initialization events
+ CONFIG_EXAMPLES_USBSTRG_TRACECLASS
+ Show class driver events
+ CONFIG_EXAMPLES_USBSTRG_TRACETRANSFERS
+ Show data transfer events
+ CONFIG_EXAMPLES_USBSTRG_TRACECONTROLLER
+ Show controller events
+ CONFIG_EXAMPLES_USBSTRG_TRACEINTERRUPTS
+ Show interrupt-related events.
+
+ Error results are always shown in the trace output
+
diff --git a/nuttx/examples/usbstorage/usbstrg_main.c b/nuttx/examples/usbstorage/usbstrg_main.c
index 7e85f991b..6057a73e3 100644
--- a/nuttx/examples/usbstorage/usbstrg_main.c
+++ b/nuttx/examples/usbstorage/usbstrg_main.c
@@ -53,6 +53,42 @@
* Definitions
****************************************************************************/
+#ifdef CONFIG_EXAMPLES_USBSTRG_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_USBSTRG_TRACECLASS
+# define TRACE_CLASS_BITS (TRACE_CLASS_BIT|TRACE_CLASSAPI_BIT|TRACE_CLASSSTATE_BIT)
+#else
+# define TRACE_CLASS_BITS (0)
+#endif
+
+#ifdef CONFIG_EXAMPLES_USBSTRG_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_USBSTRG_TRACECONTROLLER
+# define TRACE_CONTROLLER_BITS (TRACE_EP_BIT|TRACE_DEV_BIT)
+#else
+# define TRACE_CONTROLLER_BITS (0)
+#endif
+
+#ifdef CONFIG_EXAMPLES_USBSTRG_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)
+
/****************************************************************************
* Private Data
****************************************************************************/
@@ -271,21 +307,7 @@ int user_start(int argc, char *argv[])
/* Initialize USB trace output IDs */
- usbtrace_enable(
- TRACE_INIT_BIT| /* Initialization events */
- TRACE_EP_BIT| /* Endpoint API calls */
- TRACE_DEV_BIT| /* USB device API calls */
- TRACE_CLASS_BIT| /* USB class driver API calls */
- TRACE_CLASSAPI_BIT| /* Other class driver system API calls */
- TRACE_CLASSSTATE_BIT| /* Track class driver state changes */
- TRACE_OUTREQQUEUED_BIT| /* Request queued for OUT endpoint */
- TRACE_INREQQUEUED_BIT| /* Request queued for IN endpoint */
- TRACE_READ_BIT| /* Read (OUT) action */
- TRACE_WRITE_BIT| /* Write (IN) action */
- TRACE_COMPLETE_BIT| /* Request completed */
- TRACE_DEVERROR_BIT| /* USB controller driver error event */
- TRACE_CLSERROR_BIT /* USB class driver error event */
- );
+ usbtrace_enable(TRACE_BITSET);
/* Register block drivers (architecture-specific) */