Skip to content
Snippets Groups Projects
Commit 66bdf0d5 authored by patacongo's avatar patacongo
Browse files

Add finer trace controls

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1096 42af7a65-404d-4744-a932-0658087f49c3
parent 08c89cdd
No related branches found
No related tags found
No related merge requests found
......@@ -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
......@@ -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) */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment