@@ -42,10 +42,10 @@ typedef struct
42
42
{
43
43
struct
44
44
{
45
- WORD addr;
46
- WORD reserved2;
47
- WORD count;
48
- WORD reserved1;
45
+ volatile WORD addr;
46
+ volatile WORD reserved2;
47
+ volatile WORD count;
48
+ volatile WORD reserved1;
49
49
} bufDesc[16 ];
50
50
51
51
} USB_BufferDescriptionTable;
@@ -66,7 +66,7 @@ typedef struct
66
66
// *******************************************************************
67
67
// -------------------------------------------------------------------
68
68
USBdevice_Mcu *USBdevice_Mcu::usbPtr = 0 ;
69
- WORD USBdevice_Mcu::EPconfig::offset = sizeof (USB_BufferDescriptionTable);
69
+ volatile WORD USBdevice_Mcu::EPconfig::offset = sizeof (USB_BufferDescriptionTable);
70
70
71
71
// -------------------------------------------------------------------
72
72
USBdevice_Mcu::USBdevice_Mcu ( USBdeviceDescriptor &desc )
@@ -79,7 +79,7 @@ USBdevice_Mcu::USBdevice_Mcu( USBdeviceDescriptor &desc )
79
79
// -------------------------------------------------------------------
80
80
inline void USBdevice_Mcu::isr (void )
81
81
{
82
- DWORD istr = USB->ISTR ;
82
+ volatile DWORD istr = USB->ISTR ;
83
83
84
84
if ( istr & USB_ISTR_RESET )
85
85
{
@@ -257,7 +257,7 @@ WORD USBdevice_Mcu::readEP( BYTE epAddr,
257
257
WORD len )
258
258
{
259
259
BYTE num = epAddr & 0x07 ;
260
- WORD *ptr = EP[num].rxPtr ;
260
+ volatile WORD *ptr = EP[num].rxPtr ;
261
261
262
262
if ( !(epAddr & 0x80 ) && ptr )
263
263
{
@@ -284,7 +284,7 @@ WORD USBdevice_Mcu::writeEP( BYTE epAddr,
284
284
WORD cnt )
285
285
{
286
286
BYTE num = epAddr & 0x07 ;
287
- WORD *ptr = EP[num].txPtr ;
287
+ volatile WORD *ptr = EP[num].txPtr ;
288
288
289
289
if ( (epAddr & 0x80 ) && ptr)
290
290
{
0 commit comments