diff options
Diffstat (limited to 'firmware/usbdrv/usbdrv.c')
| -rw-r--r-- | firmware/usbdrv/usbdrv.c | 31 | 
1 files changed, 17 insertions, 14 deletions
| diff --git a/firmware/usbdrv/usbdrv.c b/firmware/usbdrv/usbdrv.c index 21ed554..d838935 100644 --- a/firmware/usbdrv/usbdrv.c +++ b/firmware/usbdrv/usbdrv.c @@ -5,10 +5,8 @@   * Tabsize: 4   * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH   * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) - * This Revision: $Id: usbdrv.c 791 2010-07-15 15:56:13Z cs $   */ -#include "usbportability.h"  #include "usbdrv.h"  #include "oddebug.h" @@ -45,7 +43,7 @@ uchar       usbCurrentDataToken;/* when we check data toggling to ignore duplica  #endif  /* USB status registers / not shared with asm code */ -uchar               *usbMsgPtr;     /* data to transmit next -- ROM or RAM address */ +usbMsgPtr_t         usbMsgPtr;      /* data to transmit next -- ROM or RAM address */  static usbMsgLen_t  usbMsgLen = USB_NO_MSG; /* remaining number of bytes */  static uchar        usbMsgFlags;    /* flag values see below */ @@ -67,7 +65,7 @@ optimizing hints:  #if USB_CFG_DESCR_PROPS_STRING_0 == 0  #undef USB_CFG_DESCR_PROPS_STRING_0  #define USB_CFG_DESCR_PROPS_STRING_0    sizeof(usbDescriptorString0) -PROGMEM char usbDescriptorString0[] = { /* language descriptor */ +PROGMEM const char usbDescriptorString0[] = { /* language descriptor */      4,          /* sizeof(usbDescriptorString0): length of descriptor in bytes */      3,          /* descriptor type */      0x09, 0x04, /* language index (0x0409 = US-English) */ @@ -77,7 +75,7 @@ PROGMEM char usbDescriptorString0[] = { /* language descriptor */  #if USB_CFG_DESCR_PROPS_STRING_VENDOR == 0 && USB_CFG_VENDOR_NAME_LEN  #undef USB_CFG_DESCR_PROPS_STRING_VENDOR  #define USB_CFG_DESCR_PROPS_STRING_VENDOR   sizeof(usbDescriptorStringVendor) -PROGMEM int  usbDescriptorStringVendor[] = { +PROGMEM const int  usbDescriptorStringVendor[] = {      USB_STRING_DESCRIPTOR_HEADER(USB_CFG_VENDOR_NAME_LEN),      USB_CFG_VENDOR_NAME  }; @@ -86,7 +84,7 @@ PROGMEM int  usbDescriptorStringVendor[] = {  #if USB_CFG_DESCR_PROPS_STRING_PRODUCT == 0 && USB_CFG_DEVICE_NAME_LEN  #undef USB_CFG_DESCR_PROPS_STRING_PRODUCT  #define USB_CFG_DESCR_PROPS_STRING_PRODUCT   sizeof(usbDescriptorStringDevice) -PROGMEM int  usbDescriptorStringDevice[] = { +PROGMEM const int  usbDescriptorStringDevice[] = {      USB_STRING_DESCRIPTOR_HEADER(USB_CFG_DEVICE_NAME_LEN),      USB_CFG_DEVICE_NAME  }; @@ -95,7 +93,7 @@ PROGMEM int  usbDescriptorStringDevice[] = {  #if USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER == 0 && USB_CFG_SERIAL_NUMBER_LEN  #undef USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER  #define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER    sizeof(usbDescriptorStringSerialNumber) -PROGMEM int usbDescriptorStringSerialNumber[] = { +PROGMEM const int usbDescriptorStringSerialNumber[] = {      USB_STRING_DESCRIPTOR_HEADER(USB_CFG_SERIAL_NUMBER_LEN),      USB_CFG_SERIAL_NUMBER  }; @@ -108,7 +106,7 @@ PROGMEM int usbDescriptorStringSerialNumber[] = {  #if USB_CFG_DESCR_PROPS_DEVICE == 0  #undef USB_CFG_DESCR_PROPS_DEVICE  #define USB_CFG_DESCR_PROPS_DEVICE  sizeof(usbDescriptorDevice) -PROGMEM char usbDescriptorDevice[] = {    /* USB device descriptor */ +PROGMEM const char usbDescriptorDevice[] = {    /* USB device descriptor */      18,         /* sizeof(usbDescriptorDevice): length of descriptor in bytes */      USBDESCR_DEVICE,        /* descriptor type */      0x10, 0x01,             /* USB version supported */ @@ -139,7 +137,7 @@ PROGMEM char usbDescriptorDevice[] = {    /* USB device descriptor */  #if USB_CFG_DESCR_PROPS_CONFIGURATION == 0  #undef USB_CFG_DESCR_PROPS_CONFIGURATION  #define USB_CFG_DESCR_PROPS_CONFIGURATION   sizeof(usbDescriptorConfiguration) -PROGMEM char usbDescriptorConfiguration[] = {    /* USB configuration descriptor */ +PROGMEM const char usbDescriptorConfiguration[] = {    /* USB configuration descriptor */      9,          /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */      USBDESCR_CONFIG,    /* descriptor type */      18 + 7 * USB_CFG_HAVE_INTRIN_ENDPOINT + 7 * USB_CFG_HAVE_INTRIN_ENDPOINT3 + @@ -301,7 +299,7 @@ USB_PUBLIC void usbSetInterrupt3(uchar *data, uchar len)              len = usbFunctionDescriptor(rq);        \          }else{                                      \              len = USB_PROP_LENGTH(cfgProp);         \ -            usbMsgPtr = (uchar *)(staticName);      \ +            usbMsgPtr = (usbMsgPtr_t)(staticName);  \          }                                           \      } @@ -361,7 +359,8 @@ uchar       flags = USB_FLG_MSGPTR_IS_ROM;   */  static inline usbMsgLen_t usbDriverSetup(usbRequest_t *rq)  { -uchar   len  = 0, *dataPtr = usbTxBuf + 9;  /* there are 2 bytes free space at the end of the buffer */ +usbMsgLen_t len = 0; +uchar   *dataPtr = usbTxBuf + 9;    /* there are 2 bytes free space at the end of the buffer */  uchar   value = rq->wValue.bytes[0];  #if USB_CFG_IMPLEMENT_HALT  uchar   index = rq->wIndex.bytes[0]; @@ -408,7 +407,7 @@ uchar   index = rq->wIndex.bytes[0];      SWITCH_DEFAULT                          /* 7=SET_DESCRIPTOR, 12=SYNC_FRAME */          /* Should we add an optional hook here? */      SWITCH_END -    usbMsgPtr = dataPtr; +    usbMsgPtr = (usbMsgPtr_t)dataPtr;  skipMsgPtrAssignment:      return len;  } @@ -498,7 +497,8 @@ static uchar usbDeviceRead(uchar *data, uchar len)          }else  #endif          { -            uchar i = len, *r = usbMsgPtr; +            uchar i = len; +            usbMsgPtr_t r = usbMsgPtr;              if(usbMsgFlags & USB_FLG_MSGPTR_IS_ROM){    /* ROM data */                  do{                      uchar c = USB_READ_FLASH(r);    /* assign to char size variable to enforce byte ops */ @@ -507,7 +507,8 @@ static uchar usbDeviceRead(uchar *data, uchar len)                  }while(--i);              }else{  /* RAM data */                  do{ -                    *data++ = *r++; +                    *data++ = *((uchar *)r); +                    r++;                  }while(--i);              }              usbMsgPtr = r; @@ -557,6 +558,8 @@ uchar           isReset = !notResetState;          USB_RESET_HOOK(isReset);          wasReset = isReset;      } +#else +    notResetState = notResetState;  // avoid compiler warning  #endif  } | 
