diff --git a/board/drivers/usb.h b/board/drivers/usb.h index 97b962a28..ca0d1f7b6 100644 --- a/board/drivers/usb.h +++ b/board/drivers/usb.h @@ -397,9 +397,10 @@ void *USB_ReadPacket(void *dest, uint16_t len) { uint32_t i=0; uint32_t count32b = (len + 3) / 4; - for ( i = 0; i < count32b; i++, dest += 4 ) { + for ( i = 0; i < count32b; i++) { // packed? *(__attribute__((__packed__)) uint32_t *)dest = USBx_DFIFO(0); + dest += 4; } return ((void *)dest); } @@ -420,8 +421,9 @@ void USB_WritePacket(const uint8_t *src, uint16_t len, uint32_t ep) { USBx_INEP(ep)->DIEPCTL |= (USB_OTG_DIEPCTL_CNAK | USB_OTG_DIEPCTL_EPENA); // load the FIFO - for (i = 0; i < count32b; i++, src += 4) { + for (i = 0; i < count32b; i++) { USBx_DFIFO(ep) = *((__attribute__((__packed__)) uint32_t *)src); + src += 4; } }