@@ -394,15 +394,16 @@ int current_int0_alt_setting = 0;
394
394
// packet read and write
395
395
396
396
void * USB_ReadPacket (void * dest , uint16_t len ) {
397
- uint32_t i = 0 ;
397
+
398
+ void * dest_copy = dest ;
398
399
uint32_t count32b = (len + 3U ) / 4U ;
399
400
400
- for ( i = 0 ; i < count32b ; i ++ ) {
401
+ for (uint32_t i = 0 ; i < count32b ; i ++ ) {
401
402
// packed?
402
- * (__attribute__ ((__packed__ )) uint32_t * )dest = USBx_DFIFO (0 );
403
- dest += 4 ;
403
+ * (__attribute__ ((__packed__ )) uint32_t * )dest_copy = USBx_DFIFO (0 );
404
+ dest_copy += 4 ;
404
405
}
405
- return ((void * )dest );
406
+ return ((void * )dest_copy );
406
407
}
407
408
408
409
void USB_WritePacket (const uint8_t * src , uint16_t len , uint32_t ep ) {
@@ -412,7 +413,7 @@ void USB_WritePacket(const uint8_t *src, uint16_t len, uint32_t ep) {
412
413
#endif
413
414
414
415
uint8_t numpacket = (len + (MAX_RESP_LEN - 1U )) / MAX_RESP_LEN ;
415
- uint32_t count32b = 0 , i = 0 ;
416
+ uint32_t count32b = 0 ;
416
417
count32b = (len + 3U ) / 4U ;
417
418
418
419
// bullshit
@@ -421,9 +422,10 @@ void USB_WritePacket(const uint8_t *src, uint16_t len, uint32_t ep) {
421
422
USBx_INEP (ep )-> DIEPCTL |= (USB_OTG_DIEPCTL_CNAK | USB_OTG_DIEPCTL_EPENA );
422
423
423
424
// load the FIFO
424
- for (i = 0 ; i < count32b ; i ++ ) {
425
- USBx_DFIFO (ep ) = * ((__attribute__ ((__packed__ )) uint32_t * )src );
426
- src += 4 ;
425
+ const uint8_t * src_copy = src ;
426
+ for (uint32_t i = 0 ; i < count32b ; i ++ ) {
427
+ USBx_DFIFO (ep ) = * ((__attribute__ ((__packed__ )) uint32_t * )src_copy );
428
+ src_copy += 4 ;
427
429
}
428
430
}
429
431
0 commit comments