Use immediate variable expansion in the second-deepest level makefile scripts to...
[pub/USBasp.git] / Projects / XPLAINBridge / USARTDescriptors.c
index d058aea..2a96c14 100644 (file)
 
 #include "USARTDescriptors.h"
 
 
 #include "USARTDescriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
@@ -172,7 +161,7 @@ const USART_USB_Descriptor_Configuration_t PROGMEM USART_ConfigurationDescriptor
                        .EndpointAddress        = CDC_RX_EPADDR,
                        .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
                        .EndpointSize           = CDC_TXRX_EPSIZE,
                        .EndpointAddress        = CDC_RX_EPADDR,
                        .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
                        .EndpointSize           = CDC_TXRX_EPSIZE,
-                       .PollingIntervalMS      = 0x01
+                       .PollingIntervalMS      = 0x05
                },
 
        .CDC_DataInEndpoint =
                },
 
        .CDC_DataInEndpoint =
@@ -182,7 +171,7 @@ const USART_USB_Descriptor_Configuration_t PROGMEM USART_ConfigurationDescriptor
                        .EndpointAddress        = CDC_TX_EPADDR,
                        .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
                        .EndpointSize           = CDC_TXRX_EPSIZE,
                        .EndpointAddress        = CDC_TX_EPADDR,
                        .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
                        .EndpointSize           = CDC_TXRX_EPSIZE,
-                       .PollingIntervalMS      = 0x01
+                       .PollingIntervalMS      = 0x05
                }
 };
 
                }
 };
 
@@ -224,7 +213,8 @@ const USB_Descriptor_String_t PROGMEM USART_ProductString =
  */
 uint16_t USART_GetDescriptor(const uint16_t wValue,
                              const uint8_t wIndex,
  */
 uint16_t USART_GetDescriptor(const uint16_t wValue,
                              const uint8_t wIndex,
-                             const void** const DescriptorAddress)
+                             const void** const DescriptorAddress,
+                             uint8_t* const DescriptorMemorySpace)
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
@@ -232,6 +222,8 @@ uint16_t USART_GetDescriptor(const uint16_t wValue,
        const void* Address = NULL;
        uint16_t    Size    = NO_DESCRIPTOR;
 
        const void* Address = NULL;
        uint16_t    Size    = NO_DESCRIPTOR;
 
+       *DescriptorMemorySpace = MEMSPACE_FLASH;
+       
        switch (DescriptorType)
        {
                case DTYPE_Device:
        switch (DescriptorType)
        {
                case DTYPE_Device: