Set all CDC and MassStorage device mode demos (LowLevel and ClassDriver) to use the USE_INTERNAL_SERIAL feature, add compile time warnings for devices which do not have an internal serial.

pull/1469/head
Dean Camera 16 years ago
parent ce3ea6fb25
commit 41b54a2acd

@ -42,6 +42,10 @@
#include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/USB/Class/CDC.h> #include <LUFA/Drivers/USB/Class/CDC.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Endpoint number of the CDC device-to-host notification IN endpoint. */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */
#define CDC_NOTIFICATION_EPNUM 2 #define CDC_NOTIFICATION_EPNUM 2

@ -42,6 +42,10 @@
#include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/USB/Class/CDC.h> #include <LUFA/Drivers/USB/Class/CDC.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Endpoint number of the first CDC interface's device-to-host notification IN endpoint. */ /** Endpoint number of the first CDC interface's device-to-host notification IN endpoint. */
#define CDC1_NOTIFICATION_EPNUM 3 #define CDC1_NOTIFICATION_EPNUM 3

@ -37,9 +37,14 @@
#define _DESCRIPTORS_H_ #define _DESCRIPTORS_H_
/* Includes: */ /* Includes: */
#include <avr/pgmspace.h>
#include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/USB/Class/MassStorage.h>
#include <avr/pgmspace.h> #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */

@ -42,6 +42,10 @@
#include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/USB/Class/CDC.h> #include <LUFA/Drivers/USB/Class/CDC.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Endpoint number of the CDC device-to-host notification IN endpoint. */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */
#define CDC_NOTIFICATION_EPNUM 2 #define CDC_NOTIFICATION_EPNUM 2

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

@ -41,6 +41,10 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a
* uniform structure but variable sized data payloads, thus cannot be represented accurately by * uniform structure but variable sized data payloads, thus cannot be represented accurately by

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

@ -41,6 +41,10 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a
* uniform structure but variable sized data payloads, thus cannot be represented accurately by * uniform structure but variable sized data payloads, thus cannot be represented accurately by

@ -59,7 +59,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ManufacturerStrIndex = 0x01, .ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02, .ProductStrIndex = 0x02,
.SerialNumStrIndex = 0x03, .SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = 1 .NumberOfConfigurations = 1
}; };
@ -156,20 +156,6 @@ USB_Descriptor_String_t PROGMEM ProductString =
.UnicodeString = L"LUFA Mass Storage Demo" .UnicodeString = L"LUFA Mass Storage Demo"
}; };
/** Serial number descriptor string. This is a Unicode string containing a string of HEX characters at least 12
* digits in length to uniquely identify a device when concatenated with the device's Vendor and Product IDs. By
* using the unique serial number string to identify a device, the device drivers do not need to be reinstalled
* each time the device is inserted into a different USB port on the same system. <b>This should be unique between
* devices, or conflicts will occur if two devices sharing the same serial number are inserted into the same system
* at the same time.</b>
*/
USB_Descriptor_String_t PROGMEM SerialNumberString =
{
.Header = {.Size = USB_STRING_LEN(12), .Type = DTYPE_String},
.UnicodeString = L"000000000000"
};
/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
* documentation) by the application code so that the address and size of a requested descriptor can be given * documentation) by the application code so that the address and size of a requested descriptor can be given
* to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
@ -209,10 +195,6 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex,
Address = (void*)&ProductString; Address = (void*)&ProductString;
Size = pgm_read_byte(&ProductString.Header.Size); Size = pgm_read_byte(&ProductString.Header.Size);
break; break;
case 0x03:
Address = (void*)&SerialNumberString;
Size = pgm_read_byte(&SerialNumberString.Header.Size);
break;
} }
break; break;

@ -41,6 +41,10 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */
#define MASS_STORAGE_IN_EPNUM 3 #define MASS_STORAGE_IN_EPNUM 3

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

@ -41,6 +41,10 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
#endif
/* Macros: */ /* Macros: */
/** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a
* uniform structure but variable sized data payloads, thus cannot be represented accurately by * uniform structure but variable sized data payloads, thus cannot be represented accurately by

Loading…
Cancel
Save