Extend the automatic serial number descriptor code to read out and send all 10 bytes (20 characters) of the internal serial number on supported AVRs, rather than just the first 6 bytes (12 characters).

pull/1469/head
Dean Camera 15 years ago
parent 7f3f39b575
commit 6928f17b64

@ -232,10 +232,10 @@ static void USB_Device_GetInternalSerialDescriptor(void)
struct
{
USB_Descriptor_Header_t Header;
int16_t UnicodeString[12];
int16_t UnicodeString[20];
} SignatureDescriptor;
uint8_t SigReadAddress = 0x0E;
uint8_t SigReadAddress = 0x0E;
bool OddNibbleRead = false;
#if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES)
@ -246,7 +246,7 @@ static void USB_Device_GetInternalSerialDescriptor(void)
SignatureDescriptor.Header.bDescriptorType = DTYPE_String;
#endif
for (uint8_t SerialCharNum = 0; SerialCharNum < 12; SerialCharNum++)
for (uint8_t SerialCharNum = 0; SerialCharNum < 20; SerialCharNum++)
{
uint8_t SerialByte = boot_signature_byte_get(SigReadAddress);

@ -93,7 +93,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02,
.SerialNumStrIndex = NO_DESCRIPTOR,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = 1
};

Loading…
Cancel
Save