aboutsummaryrefslogtreecommitdiffstats
path: root/usbdrv/usbdrv.c
diff options
context:
space:
mode:
Diffstat (limited to 'usbdrv/usbdrv.c')
-rw-r--r--usbdrv/usbdrv.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/usbdrv/usbdrv.c b/usbdrv/usbdrv.c
index 7a125f2..e58d764 100644
--- a/usbdrv/usbdrv.c
+++ b/usbdrv/usbdrv.c
@@ -45,7 +45,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 */
@@ -301,7 +301,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); \
} \
}
@@ -409,7 +409,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;
}
@@ -499,7 +499,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 */
@@ -508,7 +509,8 @@ static uchar usbDeviceRead(uchar *data, uchar len)
}while(--i);
}else{ /* RAM data */
do{
- *data++ = *r++;
+ *data++ = *((uchar *)r);
+ r++;
}while(--i);
}
usbMsgPtr = r;