summaryrefslogtreecommitdiff
path: root/nuttx/drivers/usbdev
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-09-06 17:24:02 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-09-06 17:24:02 -0600
commita166b6f07328bbbfba1ce5811a2d57543cd4b849 (patch)
tree3b133a73076715a949ba9484ba5ef259ff767525 /nuttx/drivers/usbdev
parent1a0b7737074845c124b36abc5260e10f6bf416ae (diff)
downloadpx4-nuttx-a166b6f07328bbbfba1ce5811a2d57543cd4b849.tar.gz
px4-nuttx-a166b6f07328bbbfba1ce5811a2d57543cd4b849.tar.bz2
px4-nuttx-a166b6f07328bbbfba1ce5811a2d57543cd4b849.zip
Extend USB trace logic. When we are configured to decode and stringify trace data, de-stringification support is not included for class driver trace output
Diffstat (limited to 'nuttx/drivers/usbdev')
-rw-r--r--nuttx/drivers/usbdev/Make.defs6
-rw-r--r--nuttx/drivers/usbdev/composite.c10
-rw-r--r--nuttx/drivers/usbdev/usbdev_strings.c281
-rw-r--r--nuttx/drivers/usbdev/usbdev_trprintf.c340
-rw-r--r--nuttx/drivers/usbdev/usbmsc.c2
5 files changed, 584 insertions, 55 deletions
diff --git a/nuttx/drivers/usbdev/Make.defs b/nuttx/drivers/usbdev/Make.defs
index e43693b29..4c91207b4 100644
--- a/nuttx/drivers/usbdev/Make.defs
+++ b/nuttx/drivers/usbdev/Make.defs
@@ -1,7 +1,7 @@
############################################################################
# drivers/usbdev/Make.defs
#
-# Copyright (C) 2008, 2010-2012 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008, 2010-2013 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@@ -53,6 +53,10 @@ ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
CSRCS += composite.c composite_desc.c
endif
+ifeq ($(CONFIG_USBDEV_TRACE_STRINGS),y)
+ CSRCS += usbdev_strings.c
+endif
+
CSRCS += usbdev_trace.c usbdev_trprintf.c
# Include USB device build support
diff --git a/nuttx/drivers/usbdev/composite.c b/nuttx/drivers/usbdev/composite.c
index 118f70e28..8a5a983b5 100644
--- a/nuttx/drivers/usbdev/composite.c
+++ b/nuttx/drivers/usbdev/composite.c
@@ -409,7 +409,7 @@ static int composite_setup(FAR struct usbdevclass_driver_s *driver,
#ifdef CONFIG_DEBUG
if (!driver || !dev || !dev->ep0 || !ctrl)
{
- usbtrace(TRACE_CLSERROR(COMPOSITE_TRACEERR_SETUPINVALIDARGS), 0);
+ usbtrace(TRACE_CLSERROR(USBCOMPOSITE_TRACEERR_SETUPINVALIDARGS), 0);
return -EIO;
}
#endif
@@ -422,7 +422,7 @@ static int composite_setup(FAR struct usbdevclass_driver_s *driver,
#ifdef CONFIG_DEBUG
if (!priv)
{
- usbtrace(TRACE_CLSERROR(COMPOSITE_TRACEERR_EP0NOTBOUND2), 0);
+ usbtrace(TRACE_CLSERROR(USBCOMPOSITE_TRACEERR_EP0NOTBOUND2), 0);
return -ENODEV;
}
#endif
@@ -510,7 +510,7 @@ static int composite_setup(FAR struct usbdevclass_driver_s *driver,
default:
{
- usbtrace(TRACE_CLSERROR(COMPOSITE_TRACEERR_GETUNKNOWNDESC), value);
+ usbtrace(TRACE_CLSERROR(USBCOMPOSITE_TRACEERR_GETUNKNOWNDESC), value);
}
break;
}
@@ -571,7 +571,7 @@ static int composite_setup(FAR struct usbdevclass_driver_s *driver,
break;
default:
- usbtrace(TRACE_CLSERROR(COMPOSITE_TRACEERR_UNSUPPORTEDSTDREQ), ctrl->req);
+ usbtrace(TRACE_CLSERROR(USBCOMPOSITE_TRACEERR_UNSUPPORTEDSTDREQ), ctrl->req);
break;
}
}
@@ -613,7 +613,7 @@ static int composite_setup(FAR struct usbdevclass_driver_s *driver,
ret = EP_SUBMIT(dev->ep0, ctrlreq);
if (ret < 0)
{
- usbtrace(TRACE_CLSERROR(COMPOSITE_TRACEERR_EPRESPQ), (uint16_t)-ret);
+ usbtrace(TRACE_CLSERROR(USBCOMPOSITE_TRACEERR_EPRESPQ), (uint16_t)-ret);
ctrlreq->result = OK;
composite_ep0incomplete(dev->ep0, ctrlreq);
}
diff --git a/nuttx/drivers/usbdev/usbdev_strings.c b/nuttx/drivers/usbdev/usbdev_strings.c
new file mode 100644
index 000000000..94771369b
--- /dev/null
+++ b/nuttx/drivers/usbdev/usbdev_strings.c
@@ -0,0 +1,281 @@
+/****************************************************************************
+ * drivers/usbdev/usbdev_strings.c
+ *
+ * Copyright (C) 2013 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <sys/types.h>
+
+#include <nuttx/usb/usbdev_trace.h>
+
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+/* Class API call strings that may be enabled for more desciptive USB trace
+ * output.
+ */
+
+const struct trace_msg_t g_usb_trace_strings_clsapi[] =
+{
+#if defined(CONFIG_CDCACM) || defined(CONFIG_PL2303)
+ TRACE_STR(USBSER_TRACECLASSAPI_SETUP),
+ TRACE_STR(USBSER_TRACECLASSAPI_SHUTDOWN),
+ TRACE_STR(USBSER_TRACECLASSAPI_ATTACH),
+ TRACE_STR(USBSER_TRACECLASSAPI_DETACH),
+ TRACE_STR(USBSER_TRACECLASSAPI_IOCTL),
+ TRACE_STR(USBSER_TRACECLASSAPI_RECEIVE),
+ TRACE_STR(USBSER_TRACECLASSAPI_RXINT),
+ TRACE_STR(USBSER_TRACECLASSAPI_RXAVAILABLE),
+ TRACE_STR(USBSER_TRACECLASSAPI_SEND),
+ TRACE_STR(USBSER_TRACECLASSAPI_TXINT),
+ TRACE_STR(USBSER_TRACECLASSAPI_TXREADY),
+ TRACE_STR(USBSER_TRACECLASSAPI_TXEMPTY),
+#endif
+ TRACE_STR_END
+};
+
+/* Class state strings that may be enabled for more desciptive USB trace
+ * output.
+ */
+
+const struct trace_msg_t g_usb_trace_strings_clsstate[] =
+{
+#if defined(CONFIG_USBMSC)
+ TRACE_STR(USBMSC_CLASSSTATE_IDLECMDPARSE),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDFINISH),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDREAD6),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDREAD10),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDREAD12),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDWRITE6),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDWRITE10),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDPARSECMDWRITE12),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDREAD),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDREADCMDFINISH),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDWRITE),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDWRITECMDFINISH),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDFINISHCMDSTATUS),
+ TRACE_STR(USBMSC_CLASSSTATE_CMDSTATUSIDLE),
+#endif
+ TRACE_STR_END
+};
+
+/* Class error strings that may be enabled for more desciptive USB trace
+ * output.
+ */
+
+const struct trace_msg_t g_usb_trace_strings_clserror[] =
+{
+#if defined(CONFIG_CDCACM) || defined(CONFIG_PL2303)
+ TRACE_STR(USBSER_TRACEERR_ALLOCCTRLREQ),
+ TRACE_STR(USBSER_TRACEERR_ALLOCDEVSTRUCT),
+ TRACE_STR(USBSER_TRACEERR_ALREADYCLOSED),
+ TRACE_STR(USBSER_TRACEERR_ALREADYCONFIGURED),
+ TRACE_STR(USBSER_TRACEERR_CONFIGIDBAD),
+ TRACE_STR(USBSER_TRACEERR_CONFIGNONE),
+ TRACE_STR(USBSER_TRACEERR_CONSOLEREGISTER),
+ TRACE_STR(USBSER_TRACEERR_DEVREGISTER),
+ TRACE_STR(USBSER_TRACEERR_EPRESPQ),
+ TRACE_STR(USBSER_TRACEERR_GETUNKNOWNDESC),
+ TRACE_STR(USBSER_TRACEERR_INVALIDARG),
+ TRACE_STR(USBSER_TRACEERR_EP0NOTBOUND),
+ TRACE_STR(USBSER_TRACEERR_EPBULKINALLOCFAIL),
+ TRACE_STR(USBSER_TRACEERR_EPBULKINCONFIGFAIL),
+ TRACE_STR(USBSER_TRACEERR_EPBULKOUTALLOCFAIL),
+ TRACE_STR(USBSER_TRACEERR_EPINTINALLOCFAIL),
+ TRACE_STR(USBSER_TRACEERR_EPINTINCONFIGFAIL),
+ TRACE_STR(USBSER_TRACEERR_EPBULKOUTCONFIGFAIL),
+ TRACE_STR(USBSER_TRACEERR_RDALLOCREQ),
+ TRACE_STR(USBSER_TRACEERR_RDSHUTDOWN),
+ TRACE_STR(USBSER_TRACEERR_RDSUBMIT),
+ TRACE_STR(USBSER_TRACEERR_RDUNEXPECTED),
+ TRACE_STR(USBSER_TRACEERR_REQRESULT),
+ TRACE_STR(USBSER_TRACEERR_RXOVERRUN),
+ TRACE_STR(USBSER_TRACEERR_SETUPNOTCONNECTED),
+ TRACE_STR(USBSER_TRACEERR_SUBMITFAIL),
+ TRACE_STR(USBSER_TRACEERR_UARTREGISTER),
+ TRACE_STR(USBSER_TRACEERR_UARTUNREGISTER),
+ TRACE_STR(USBSER_TRACEERR_UNSUPPORTEDCTRLREQ),
+ TRACE_STR(USBSER_TRACEERR_UNSUPPORTEDCLASSREQ),
+ TRACE_STR(USBSER_TRACEERR_UNSUPPORTEDSTDREQ),
+ TRACE_STR(USBSER_TRACEERR_UNSUPPORTEDTYPE),
+ TRACE_STR(USBSER_TRACEERR_WRALLOCREQ),
+ TRACE_STR(USBSER_TRACEERR_WRSHUTDOWN),
+ TRACE_STR(USBSER_TRACEERR_WRUNEXPECTED),
+#endif
+#if defined(CONFIG_USBDEV_COMPOSITE)
+ TRACE_STR(USBCOMPOSITE_TRACEERR_REQRESULT),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_ALLOCCTRLREQ),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_INVALIDARG),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_EP0NOTBOUND),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_SETUPINVALIDARGS),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_EP0NOTBOUND2),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_GETUNKNOWNDESC),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_UNSUPPORTEDSTDREQ),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_EPRESPQ),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_ALLOCDEVSTRUCT),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_CLASSOBJECT),
+ TRACE_STR(USBCOMPOSITE_TRACEERR_DEVREGISTER),
+#endif
+#if defined(CONFIG_USBMSC)
+ TRACE_STR(USBMSC_TRACEERR_ALLOCCTRLREQ),
+ TRACE_STR(USBMSC_TRACEERR_ALLOCDEVSTRUCT),
+ TRACE_STR(USBMSC_TRACEERR_ALLOCIOBUFFER),
+ TRACE_STR(USBMSC_TRACEERR_ALREADYCONFIGURED),
+ TRACE_STR(USBMSC_TRACEERR_ALREADYUNINIT),
+ TRACE_STR(USBMSC_TRACEERR_BADREQUEST),
+ TRACE_STR(USBMSC_TRACEERR_BINDLUNINVALIDARGS2),
+ TRACE_STR(USBMSC_TRACEERR_BINDLUNINVALIDARGS3),
+ TRACE_STR(USBMSC_TRACEERR_BINDLUNINVALIDARGS4),
+ TRACE_STR(USBMSC_TRACEERR_BINLUNINVALIDARGS1),
+ TRACE_STR(USBMSC_TRACEERR_BLKDRVEOPEN),
+ TRACE_STR(USBMSC_TRACEERR_CMDBADLUN),
+ TRACE_STR(USBMSC_TRACEERR_CMDFINISHRESIDUE),
+ TRACE_STR(USBMSC_TRACEERR_CMDFINISHRQEMPTY),
+ TRACE_STR(USBMSC_TRACEERR_CMDFINISHSHORTPKT),
+ TRACE_STR(USBMSC_TRACEERR_CMDFINISHSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_CMDFINSHDIR),
+ TRACE_STR(USBMSC_TRACEERR_CMDFINSHSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_CMDPARSEWRREQLISTEMPTY),
+ TRACE_STR(USBMSC_TRACEERR_CMDREADREADFAIL),
+ TRACE_STR(USBMSC_TRACEERR_CMDREADSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_CMDREADWRRQEMPTY),
+ TRACE_STR(USBMSC_TRACEERR_CMDSTATUSRDREQLISTEMPTY),
+ TRACE_STR(USBMSC_TRACEERR_CMDUNEVIOLATION),
+ TRACE_STR(USBMSC_TRACEERR_CMDWRITERDSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_CMDWRITERDRQEMPTY),
+ TRACE_STR(USBMSC_TRACEERR_CMDWRITEWRITEFAIL),
+ TRACE_STR(USBMSC_TRACEERR_CONFIGIDBAD),
+ TRACE_STR(USBMSC_TRACEERR_CONFIGNONE),
+ TRACE_STR(USBMSC_TRACEERR_DEFERREDRESPINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_DEFERREDRESPSTALLED),
+ TRACE_STR(USBMSC_TRACEERR_DEFERREDRESPSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_DEVREGISTER),
+ TRACE_STR(USBMSC_TRACEERR_DISCONNECTINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_EP0NOTBOUND1),
+ TRACE_STR(USBMSC_TRACEERR_EP0NOTBOUND2),
+ TRACE_STR(USBMSC_TRACEERR_EP0NOTBOUND3),
+ TRACE_STR(USBMSC_TRACEERR_EPBULKINALLOCFAIL),
+ TRACE_STR(USBMSC_TRACEERR_EPBULKINCONFIGFAIL),
+ TRACE_STR(USBMSC_TRACEERR_EPBULKOUTALLOCFAIL),
+ TRACE_STR(USBMSC_TRACEERR_EPBULKOUTCONFIGFAIL),
+ TRACE_STR(USBMSC_TRACEERR_EPRESPQ),
+ TRACE_STR(USBMSC_TRACEERR_EXPORTLUNSINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_GETMAXLUNNDX),
+ TRACE_STR(USBMSC_TRACEERR_GETUNKNOWNDESC),
+ TRACE_STR(USBMSC_TRACEERR_IDLERDREQLISTEMPTY),
+ TRACE_STR(USBMSC_TRACEERR_IDLERDSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_INQUIRYFLAGS),
+ TRACE_STR(USBMSC_TRACEERR_INTERNALCONFUSION1),
+ TRACE_STR(USBMSC_TRACEERR_INTERNALCONFUSION2),
+ TRACE_STR(USBMSC_TRACEERR_INVALIDCBWCONTENT),
+ TRACE_STR(USBMSC_TRACEERR_INVALIDCBWSIGNATURE),
+ TRACE_STR(USBMSC_TRACEERR_INVALIDSTATE),
+ TRACE_STR(USBMSC_TRACEERR_LUNALREADYBOUND),
+ TRACE_STR(USBMSC_TRACEERR_LUNNOTBOUND),
+ TRACE_STR(USBMSC_TRACEERR_MODEPAGEFLAGS),
+ TRACE_STR(USBMSC_TRACEERR_MODESENSE10FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_MODESENSE6FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_MSRESETNDX),
+ TRACE_STR(USBMSC_TRACEERR_NOGEOMETRY),
+ TRACE_STR(USBMSC_TRACEERR_NOTCONFIGURED),
+ TRACE_STR(USBMSC_TRACEERR_NOTREMOVABLE),
+ TRACE_STR(USBMSC_TRACEERR_PCSAVED),
+ TRACE_STR(USBMSC_TRACEERR_PHASEERROR1),
+ TRACE_STR(USBMSC_TRACEERR_PHASEERROR2),
+ TRACE_STR(USBMSC_TRACEERR_PHASEERROR3),
+ TRACE_STR(USBMSC_TRACEERR_PREVENTMEDIUMREMOVALPREVENT),
+ TRACE_STR(USBMSC_TRACEERR_RDALLOCREQ),
+ TRACE_STR(USBMSC_TRACEERR_RDCOMPLETEINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_RDCOMPLETERDSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_RDSHUTDOWN),
+ TRACE_STR(USBMSC_TRACEERR_RDSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_RDUNEXPECTED),
+ TRACE_STR(USBMSC_TRACEERR_READ10FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_READ10LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_READ10MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_READ12FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_READ12LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_READ12MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_READ6LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_READ6MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_READCAPACITYFLAGS),
+ TRACE_STR(USBMSC_TRACEERR_REALLOCIOBUFFER),
+ TRACE_STR(USBMSC_TRACEERR_REQRESULT),
+ TRACE_STR(USBMSC_TRACEERR_SCSICMDCONTROL),
+ TRACE_STR(USBMSC_TRACEERR_SETCONFIGINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_SETUPINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_SNDCSWFAIL),
+ TRACE_STR(USBMSC_TRACEERR_SNDPHERROR),
+ TRACE_STR(USBMSC_TRACEERR_SNDSTATUSSUBMIT),
+ TRACE_STR(USBMSC_TRACEERR_SYNCCACHEMEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_THREADCREATE),
+ TRACE_STR(USBMSC_TRACEERR_TOOMANYLUNS),
+ TRACE_STR(USBMSC_TRACEERR_UNBINDINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_UNBINDLUNINVALIDARGS1),
+ TRACE_STR(USBMSC_TRACEERR_UNBINDLUNINVALIDARGS2),
+ TRACE_STR(USBMSC_TRACEERR_UNINITIALIZEINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_UNSUPPORTEDSTDREQ),
+ TRACE_STR(USBMSC_TRACEERR_VERIFY10FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_VERIFY10LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_VERIFY10MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_VERIFY10NOBLOCKS),
+ TRACE_STR(USBMSC_TRACEERR_VERIFY10READFAIL),
+ TRACE_STR(USBMSC_TRACEERR_WRALLOCREQ),
+ TRACE_STR(USBMSC_TRACEERR_WRCOMPLETEINVALIDARGS),
+ TRACE_STR(USBMSC_TRACEERR_WRITE10FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_WRITE10LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_WRITE10MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_WRITE10READONLY),
+ TRACE_STR(USBMSC_TRACEERR_WRITE12FLAGS),
+ TRACE_STR(USBMSC_TRACEERR_WRITE12LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_WRITE12MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_WRITE12READONLY),
+ TRACE_STR(USBMSC_TRACEERR_WRITE6LBARANGE),
+ TRACE_STR(USBMSC_TRACEERR_WRITE6MEDIANOTPRESENT),
+ TRACE_STR(USBMSC_TRACEERR_WRITE6READONLY),
+ TRACE_STR(USBMSC_TRACEERR_WRSHUTDOWN),
+ TRACE_STR(USBMSC_TRACEERR_WRUNEXPECTED),
+ TRACE_STR(USBMSC_TRACEERR_UNSUPPORTEDTYPE),
+#endif
+ TRACE_STR_END
+};
+
+#endif /* CONFIG_USBDEV_TRACE_STRINGS */
diff --git a/nuttx/drivers/usbdev/usbdev_trprintf.c b/nuttx/drivers/usbdev/usbdev_trprintf.c
index edaa89685..f417c7e49 100644
--- a/nuttx/drivers/usbdev/usbdev_trprintf.c
+++ b/nuttx/drivers/usbdev/usbdev_trprintf.c
@@ -66,7 +66,7 @@
****************************************************************************/
/*******************************************************************************
- * Name: get_string
+ * Name: get_trstring
*
* Description:
* Search the driver string data to find the string matching the provided ID.
@@ -74,7 +74,8 @@
*******************************************************************************/
#ifdef CONFIG_USBDEV_TRACE_STRINGS
-static FAR const char *get_string(FAR const struct trace_msg_t *array, int id)
+static FAR const char *get_trstring(FAR const struct trace_msg_t *array,
+ uint8_t id)
{
FAR const struct trace_msg_t *p = array;
while (p->str != NULL)
@@ -88,7 +89,6 @@ static FAR const char *get_string(FAR const struct trace_msg_t *array, int id)
return "???";
}
-
#endif
/****************************************************************************
@@ -108,182 +108,426 @@ void usbtrace_trprintf(trprintf_t trprintf, uint16_t event, uint16_t value)
switch (event)
{
case TRACE_DEVINIT:
- trprintf("USB controller initialization: %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD initialize",
+ TRACE_DATA(event), "Initialized", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD initialize",
+ TRACE_DATA(event), value);
+#endif
break;
case TRACE_DEVUNINIT:
- trprintf("USB controller un-initialization: %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD un-initialize",
+ "Un-initialized", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD un-initialize",
+ value);
+#endif
break;
case TRACE_DEVREGISTER:
- trprintf("usbdev_register(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD register",
+ "Registered", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD register",
+ value);
+#endif
break;
case TRACE_DEVUNREGISTER:
- trprintf("usbdev_unregister(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD un-register",
+ "Un-registered", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD un-register",
+ value);
+#endif
break;
case TRACE_EPCONFIGURE:
- trprintf("Endpoint configure(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP configure",
+ "Endpoint configured", value);
+#else
+ trprintf("%-18s : %04x\n", "EP configure",
+ value);
+#endif
break;
case TRACE_EPDISABLE:
- trprintf("Endpoint disable(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP disable",
+ "Endpoint disabled", value);
+#else
+ trprintf("%-18s : %04x\n", "EP disable",
+ value);
+#endif
break;
case TRACE_EPALLOCREQ:
- trprintf("Endpoint allocreq(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP allocreq",
+ "Allocate endpoint request", value);
+#else
+ trprintf("%-18s : %04x\n", "EP allocreq",
+ value);
+#endif
break;
case TRACE_EPFREEREQ:
- trprintf("Endpoint freereq(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP freereq",
+ "Free endpoint request", value);
+#else
+ trprintf("%-18s : %04x\n", "EP freereq",
+ value);
+#endif
break;
case TRACE_EPALLOCBUFFER:
- trprintf("Endpoint allocbuffer(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP allocbuffer",
+ "Allocate endpoint buffer", value);
+#else
+ trprintf("%-18s : %04x\n", "EP allocbuffer",
+ value);
+#endif
break;
case TRACE_EPFREEBUFFER:
- trprintf("Endpoint freebuffer(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP freebuffer",
+ "Free endpoint buffer", value);
+#else
+ trprintf("%-18s : %04x\n", "EP freebuffer",
+ value);
+#endif
break;
case TRACE_EPSUBMIT:
- trprintf("Endpoint submit(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP submit",
+ "Submit endpoint request", value);
+#else
+ trprintf("%-18s : %04x\n", "EP submit",
+ value);
+#endif
break;
case TRACE_EPCANCEL:
- trprintf("Endpoint cancel(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP cancel",
+ "Cancel endpoint request", value);
+#else
+ trprintf("%-18s : %04x\n", "EP cancel",
+ value);
+#endif
break;
case TRACE_EPSTALL:
- trprintf("Endpoint stall(true): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP stall",
+ "Stall endpoint", value);
+#else
+ trprintf("%-18s : %04x\n", "EP stall",
+ value);
+#endif
break;
case TRACE_EPRESUME:
- trprintf("Endpoint stall(false): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "EP resume",
+ "Resume endpoint", value);
+#else
+ trprintf("%-18s : %04x\n", "EP resume",
+ value);
+#endif
break;
case TRACE_DEVALLOCEP:
- trprintf("Device allocep(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD allocep",
+ "Allocate endpoint", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD allocep",
+ value);
+#endif
break;
case TRACE_DEVFREEEP:
- trprintf("Device freeep(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD freeep",
+ "Free endpoint", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD freeep",
+ value);
+#endif
break;
case TRACE_DEVGETFRAME:
- trprintf("Device getframe(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD getframe",
+ "Get frame number", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD getframe",
+ value);
+#endif
break;
case TRACE_DEVWAKEUP:
- trprintf("Device wakeup(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD wakeup",
+ "Wakeup event", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD wakeup",
+ value);
+#endif
break;
case TRACE_DEVSELFPOWERED:
- trprintf("Device selfpowered(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD selfpowered",
+ "Self-powered", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD selfpowered",
+ value);
+#endif
break;
case TRACE_DEVPULLUP:
- trprintf("Device pullup(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "DCD pullup",
+ "Soft connect", value);
+#else
+ trprintf("%-18s : %04x\n", "DCD pullup",
+ value);
+#endif
break;
case TRACE_CLASSBIND:
- trprintf("Class bind(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class bind",
+ "Bind class", value);
+#else
+ trprintf("%-18s : %04x\n", "Class bind",
+ value);
+#endif
break;
case TRACE_CLASSUNBIND:
- trprintf("Class unbind(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class unbind",
+ "Un-bind class", value);
+#else
+ trprintf("%-18s : %04x\n", "Class unbind",
+ value);
+#endif
break;
case TRACE_CLASSDISCONNECT:
- trprintf("Class disconnect(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class disconnect",
+ "Disconnect class", value);
+#else
+ trprintf("%-18s : %04x\n", "Class disconnect",
+ value);
+#endif
break;
case TRACE_CLASSSETUP:
- trprintf("Class setup(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class setup",
+ "Class SETUP request", value);
+#else
+ trprintf("%-18s : %04x\n", "Class setup",
+ value);
+#endif
break;
case TRACE_CLASSSUSPEND:
- trprintf("Class suspend(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class suspend",
+ "Suspend class", value);
+#else
+ trprintf("%-18s : %04x\n", "Class suspend",
+ value);
+#endif
break;
case TRACE_CLASSRESUME:
- trprintf("Class resume(): %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class resume",
+ "Resume class", value);
+#else
+ trprintf("%-18s : %04x\n", "Class resume",
+ value);
+#endif
break;
case TRACE_CLASSRDCOMPLETE:
- trprintf("Class RD request complete: %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class RD complete",
+ "Read request complete", value);
+#else
+ trprintf("%-18s : %04x\n", "Class RD complete",
+ value);
+#endif
break;
case TRACE_CLASSWRCOMPLETE:
- trprintf("Class WR request complete: %04x\n", value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s : %-40s %04x\n", "Class RW complete",
+ "Write request complete", value);
+#else
+ trprintf("%-18s : %04x\n", "Class RW complete",
+ value);
+#endif
break;
default:
switch (TRACE_ID(event))
{
case TRACE_CLASSAPI_ID: /* Other class driver system API calls */
- trprintf("Class API call %d: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s %02x: %-40s %04x\n", "Class API call",
+ TRACE_DATA(event),
+ get_trstring(g_usb_trace_strings_clsapi, TRACE_DATA(event)),
+ value);
+#else
+ trprintf("%-18s %02x: %04x\n", "Class API call",
+ TRACE_DATA(event), value);
+#endif
break;
case TRACE_CLASSSTATE_ID: /* Track class driver state changes */
- trprintf("Class state %d: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s %02x: %-40s %04x\n", "Class state",
+ TRACE_DATA(event),
+ get_trstring(g_usb_trace_strings_clsstate, TRACE_DATA(event)),
+ value);
+#else
+ trprintf("%-18s %02x: %04x\n", "Class state",
+ TRACE_DATA(event), value);
+#endif
break;
case TRACE_INTENTRY_ID: /* Interrupt handler entry */
- trprintf("Interrupt %d entry: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s%3d: %-40s %04x\n", "Interrupt entry",
+ TRACE_DATA(event), "ENTRY", value);
+#else
+ trprintf("%-18s%3d: %04x\n", "Interrupt entry",
+ TRACE_DATA(event), value);
+#endif
break;
case TRACE_INTDECODE_ID: /* Decoded interrupt event */
#ifdef CONFIG_USBDEV_TRACE_STRINGS
- trprintf("Interrupt decode %3d: %-40s %04x\n", TRACE_DATA(event),
- get_string(g_usb_trace_strings_intdecode, TRACE_DATA(event)),
+ trprintf("%-18s%3d: %-40s %04x\n", "Interrupt decode",
+ TRACE_DATA(event),
+ get_trstring(g_usb_trace_strings_intdecode, TRACE_DATA(event)),
value);
#else
- trprintf("Interrupt decode %d: %04x\n", TRACE_DATA(event), value);
+ trprintf("%-18s%3d: %04x\n", "Interrupt decode",
+ TRACE_DATA(event), value);
#endif
break;
case TRACE_INTEXIT_ID: /* Interrupt handler exit */
- trprintf("Interrupt %d exit: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s%3d: %-40s %04x\n", "Interrupt exit",
+ TRACE_DATA(event), "EXIT", value);
+#else
+ trprintf("%-18s%3d: %04x\n", "Interrupt exit",
+ TRACE_DATA(event), value);
+#endif
break;
case TRACE_OUTREQQUEUED_ID: /* Request queued for OUT endpoint */
- trprintf("EP%d OUT request queued: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("EP%2d %-16s: %-40s %04x\n",
+ TRACE_DATA(event), "OUT queued",
+ "Read request queued", value);
+#else
+ trprintf("EP%2d %-16s: %04x\n",
+ TRACE_DATA(event), "OUT queued", value);
+#endif
break;
case TRACE_INREQQUEUED_ID: /* Request queued for IN endpoint */
- trprintf("EP%d IN request queued: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("EP%2d %-16s: %-40s %04x\n",
+ TRACE_DATA(event), "IN queued",
+ "Write request queued", value);
+#else
+ trprintf("EP%2d %-16s: %04x\n",
+ TRACE_DATA(event), "IN queued", value);
+#endif
break;
case TRACE_READ_ID: /* Read (OUT) action */
- trprintf("EP%d OUT read: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("EP%2d %-16s: %-40s %04x\n",
+ TRACE_DATA(event), "OUT read",
+ "Incoming data read", value);
+#else
+ trprintf("EP%2d %-16s: %04x\n",
+ TRACE_DATA(event), "OUT read", value);
+#endif
break;
case TRACE_WRITE_ID: /* Write (IN) action */
- trprintf("EP%d IN write: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("EP%2d %-16s: %-40s %04x\n",
+ TRACE_DATA(event), "IN write",
+ "Outgoing data written", value);
+#else
+ trprintf("EP%2d %-16s: %04x\n",
+ TRACE_DATA(event), "IN write", value);
+#endif
break;
case TRACE_COMPLETE_ID: /* Request completed */
- trprintf("EP%d request complete: %04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("EP%2d %-16s: %-40s %04x\n",
+ TRACE_DATA(event), "Request complete",
+ "Request completed", value);
+#else
+ trprintf("EP%2d %-16s: %04x\n",
+ TRACE_DATA(event), "Request complete", value);
+#endif
break;
case TRACE_DEVERROR_ID: /* USB controller driver error event */
#ifdef CONFIG_USBDEV_TRACE_STRINGS
- trprintf("Controller error: %02x: %-40s %04x\n", TRACE_DATA(event),
- get_string(g_usb_trace_strings_deverror, TRACE_DATA(event)),
+ trprintf("%-18s %02x: %-40s %04x\n", "Controller error",
+ TRACE_DATA(event),
+ get_trstring(g_usb_trace_strings_deverror, TRACE_DATA(event)),
value);
#else
- trprintf("Controller error: %02x:%04x\n", TRACE_DATA(event), value);
+ trprintf("%-18s %02x: %04x\n", "Controller error",
+ TRACE_DATA(event),
+ value);
#endif
break;
case TRACE_CLSERROR_ID: /* USB class driver error event */
- trprintf("Class error: %02x:%04x\n", TRACE_DATA(event), value);
+#ifdef CONFIG_USBDEV_TRACE_STRINGS
+ trprintf("%-18s %02x: %-40s %04x\n", "Class error",
+ TRACE_DATA(event),
+ get_trstring(g_usb_trace_strings_clserror, TRACE_DATA(event)),
+ value);
+#else
+ trprintf("%-18s %02x: %04x\n", "Class error",
+ TRACE_DATA(event), value);
+#endif
break;
default:
- trprintf("Unrecognized event: %02x:%02x:%04x\n",
+ trprintf("Unrecognized event : %02x:%02x:%04x\n",
TRACE_ID(event) >> 8, TRACE_DATA(event), value);
break;
}
diff --git a/nuttx/drivers/usbdev/usbmsc.c b/nuttx/drivers/usbdev/usbmsc.c
index ee4f6da2d..ee8da5236 100644
--- a/nuttx/drivers/usbdev/usbmsc.c
+++ b/nuttx/drivers/usbdev/usbmsc.c
@@ -1252,7 +1252,7 @@ void usbmsc_deferredresponse(FAR struct usbmsc_dev_s *priv, bool failed)
{
/* On a failure, the USB driver will stall. */
- usbtrace(TRACE_DEVERROR(USBMSC_TRACEERR_DEFERREDRESPSTALLED), 0);
+ usbtrace(TRACE_CLSERROR(USBMSC_TRACEERR_DEFERREDRESPSTALLED), 0);
EP_STALL(dev->ep0);
}
}