diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2013-09-06 17:24:02 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2013-09-06 17:24:02 -0600 |
commit | a166b6f07328bbbfba1ce5811a2d57543cd4b849 (patch) | |
tree | 3b133a73076715a949ba9484ba5ef259ff767525 /nuttx/drivers/usbdev | |
parent | 1a0b7737074845c124b36abc5260e10f6bf416ae (diff) | |
download | px4-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.defs | 6 | ||||
-rw-r--r-- | nuttx/drivers/usbdev/composite.c | 10 | ||||
-rw-r--r-- | nuttx/drivers/usbdev/usbdev_strings.c | 281 | ||||
-rw-r--r-- | nuttx/drivers/usbdev/usbdev_trprintf.c | 340 | ||||
-rw-r--r-- | nuttx/drivers/usbdev/usbmsc.c | 2 |
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); } } |