@@ -301,7 +301,7 @@ void USBCDC_ECM::callback_state_change(DeviceState new_state)
301
301
const uint8_t *USBCDC_ECM::device_desc ()
302
302
{
303
303
uint8_t ep0_size = endpoint_max_packet_size (0x00 );
304
- uint8_t deviceDescriptorTemp [] = {
304
+ uint8_t device_descriptor_temp [] = {
305
305
DEVICE_DESCRIPTOR_LENGTH, // bLength
306
306
DEVICE_DESCRIPTOR, // bDescriptorType
307
307
0x00 , 0x02 , // bcdUSB 2.0
@@ -320,9 +320,9 @@ const uint8_t *USBCDC_ECM::device_desc()
320
320
STRING_OFFSET_ISERIAL, // iSerialNumber
321
321
0x01 // bNumConfigurations
322
322
};
323
- MBED_ASSERT (sizeof (deviceDescriptorTemp ) == sizeof (deviceDescriptor ));
324
- memcpy (deviceDescriptor, deviceDescriptorTemp , sizeof (deviceDescriptor ));
325
- return deviceDescriptor ;
323
+ MBED_ASSERT (sizeof (device_descriptor_temp ) == sizeof (device_descriptor ));
324
+ memcpy (device_descriptor, device_descriptor_temp , sizeof (device_descriptor ));
325
+ return device_descriptor ;
326
326
}
327
327
328
328
const uint8_t *USBCDC_ECM::string_iproduct_desc ()
@@ -337,22 +337,25 @@ const uint8_t *USBCDC_ECM::string_iproduct_desc()
337
337
338
338
const uint8_t *USBCDC_ECM::string_iconfiguration_desc ()
339
339
{
340
- static uint8_t string_imac_addr [26 ] = {0 };
340
+ uint8_t string_imac_addr_temp [26 ] = {0 };
341
341
const char unicodes[] = {' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' ,
342
342
' A' , ' B' , ' C' , ' D' , ' E' , ' F'
343
343
};
344
344
char mac[6 ];
345
345
346
346
mbed_mac_address (mac);
347
347
348
- string_imac_addr [0 ] = 26 ;
349
- string_imac_addr [1 ] = STRING_DESCRIPTOR;
348
+ string_imac_addr_temp [0 ] = 26 ;
349
+ string_imac_addr_temp [1 ] = STRING_DESCRIPTOR;
350
350
/* Convert MAC address to USB CDC string format */
351
351
for (int i = 0 ; i < 6 ; i++) {
352
- string_imac_addr [i * 4 + 2 ] = unicodes[mac[i] >> 4 ];
353
- string_imac_addr [i * 4 + 4 ] = unicodes[mac[i] & 0xF ];
352
+ string_imac_addr_temp [i * 4 + 2 ] = unicodes[mac[i] >> 4 ];
353
+ string_imac_addr_temp [i * 4 + 4 ] = unicodes[mac[i] & 0xF ];
354
354
}
355
- return string_imac_addr;
355
+
356
+ MBED_ASSERT (sizeof (string_imac_addr_temp) == sizeof (_string_imac_addr));
357
+ memcpy (_string_imac_addr, string_imac_addr_temp, sizeof (string_imac_addr_temp));
358
+ return _string_imac_addr;
356
359
}
357
360
358
361
const uint8_t *USBCDC_ECM::string_iserial_desc ()
@@ -373,7 +376,7 @@ const uint8_t *USBCDC_ECM::configuration_desc(uint8_t index)
373
376
return NULL ;
374
377
}
375
378
376
- static const uint8_t configDescriptor [] = {
379
+ uint8_t config_descriptor_temp [] = {
377
380
// configuration descriptor, USB spec 9.6.3, page 264-265, Table 9-10
378
381
0x09 , // bLength
379
382
CONFIGURATION_DESCRIPTOR, // bDescriptorType
@@ -469,7 +472,10 @@ const uint8_t *USBCDC_ECM::configuration_desc(uint8_t index)
469
472
(uint8_t ) MSB (MAX_PACKET_SIZE_BULK), // wMaxPacketSize (MSB)
470
473
0 // bInterval
471
474
};
472
- return configDescriptor;
475
+
476
+ MBED_ASSERT (sizeof (config_descriptor_temp) == sizeof (_config_descriptor));
477
+ memcpy (_config_descriptor, config_descriptor_temp, sizeof (config_descriptor_temp));
478
+ return _config_descriptor;
473
479
}
474
480
475
481
void USBCDC_ECM::_int_callback ()
0 commit comments