Commit 41b54a2a authored by Dean Camera's avatar Dean Camera
Browse files

Set all CDC and MassStorage device mode demos (LowLevel and ClassDriver) to...

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.
parent ce3ea6fb
......@@ -41,6 +41,10 @@
#include <LUFA/Drivers/USB/USB.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: */
/** Endpoint number of the CDC device-to-host notification IN endpoint. */
......
......@@ -42,6 +42,10 @@
#include <LUFA/Drivers/USB/USB.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: */
/** Endpoint number of the first CDC interface's device-to-host notification IN endpoint. */
#define CDC1_NOTIFICATION_EPNUM 3
......
......@@ -37,9 +37,14 @@
#define _DESCRIPTORS_H_
/* Includes: */
#include <avr/pgmspace.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: */
/** 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/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: */
/** Endpoint number of the CDC device-to-host notification IN endpoint. */
#define CDC_NOTIFICATION_EPNUM 2
......
......@@ -59,7 +59,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02,
.SerialNumStrIndex = NO_DESCRIPTOR,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = 1
};
......
......@@ -41,6 +41,10 @@
#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: */
/** 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
......
......@@ -59,7 +59,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02,
.SerialNumStrIndex = NO_DESCRIPTOR,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = 1
};
......
......@@ -41,6 +41,10 @@
#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: */
/** 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
......
......@@ -59,7 +59,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02,
.SerialNumStrIndex = 0x03,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = 1
};
......@@ -156,20 +156,6 @@ USB_Descriptor_String_t PROGMEM ProductString =
.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"
* 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
......@@ -209,10 +195,6 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex,
Address = (void*)&ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
case 0x03:
Address = (void*)&SerialNumberString;
Size = pgm_read_byte(&SerialNumberString.Header.Size);
break;
}
break;
......
......@@ -41,6 +41,10 @@
#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: */
/** Endpoint number of the Mass Storage device-to-host data IN endpoint. */
#define MASS_STORAGE_IN_EPNUM 3
......
......@@ -59,7 +59,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ManufacturerStrIndex = 0x01,
.ProductStrIndex = 0x02,
.SerialNumStrIndex = NO_DESCRIPTOR,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = 1
};
......
......@@ -41,6 +41,10 @@
#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: */
/** 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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment