diff options
-rw-r--r-- | nuttx/examples/README.txt | 18 | ||||
-rw-r--r-- | nuttx/examples/usbstorage/usbstrg_main.c | 52 |
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) */ |