Commit 06d00bb9 authored by Dean Camera's avatar Dean Camera

Ensure the library builds cleanly in device mode for architectures lacking multiple address spaces.

parent 8f5ab27d
...@@ -138,18 +138,21 @@ static void USB_Device_SetConfiguration(void) ...@@ -138,18 +138,21 @@ static void USB_Device_SetConfiguration(void)
#else #else
USB_Descriptor_Device_t* DevDescriptorPtr; USB_Descriptor_Device_t* DevDescriptorPtr;
#if defined(USE_FLASH_DESCRIPTORS) #if defined(ARCH_HAS_MULTI_ADDRESS_SPACE)
#define MemoryAddressSpace MEMSPACE_FLASH #if defined(USE_FLASH_DESCRIPTORS)
#elif defined(USE_EEPROM_DESCRIPTORS) #define MemoryAddressSpace MEMSPACE_FLASH
#define MemoryAddressSpace MEMSPACE_EEPROM #elif defined(USE_EEPROM_DESCRIPTORS)
#elif defined(USE_SRAM_DESCRIPTORS) #define MemoryAddressSpace MEMSPACE_EEPROM
#define MemoryAddressSpace MEMSPACE_SRAM #elif defined(USE_SRAM_DESCRIPTORS)
#else #define MemoryAddressSpace MEMSPACE_SRAM
uint8_t MemoryAddressSpace; #else
uint8_t MemoryAddressSpace;
#endif
#endif #endif
if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr
#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) #if defined(ARCH_HAS_MULTI_ADDRESS_SPACE) && \
!(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
, &MemoryAddressSpace , &MemoryAddressSpace
#endif #endif
) == NO_DESCRIPTOR) ) == NO_DESCRIPTOR)
...@@ -157,6 +160,7 @@ static void USB_Device_SetConfiguration(void) ...@@ -157,6 +160,7 @@ static void USB_Device_SetConfiguration(void)
return; return;
} }
#if defined(ARCH_HAS_MULTI_ADDRESS_SPACE)
if (MemoryAddressSpace == MEMSPACE_FLASH) if (MemoryAddressSpace == MEMSPACE_FLASH)
{ {
if (((uint8_t)USB_ControlRequest.wValue > pgm_read_byte(&DevDescriptorPtr->NumberOfConfigurations))) if (((uint8_t)USB_ControlRequest.wValue > pgm_read_byte(&DevDescriptorPtr->NumberOfConfigurations)))
...@@ -172,6 +176,10 @@ static void USB_Device_SetConfiguration(void) ...@@ -172,6 +176,10 @@ static void USB_Device_SetConfiguration(void)
if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations) if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations)
return; return;
} }
#else
if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations)
return;
#endif
#endif #endif
Endpoint_ClearSETUP(); Endpoint_ClearSETUP();
...@@ -224,7 +232,8 @@ static void USB_Device_GetDescriptor(void) ...@@ -224,7 +232,8 @@ static void USB_Device_GetDescriptor(void)
const void* DescriptorPointer; const void* DescriptorPointer;
uint16_t DescriptorSize; uint16_t DescriptorSize;
#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) #if defined(ARCH_HAS_MULTI_ADDRESS_SPACE) && \
!(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
uint8_t DescriptorAddressSpace; uint8_t DescriptorAddressSpace;
#endif #endif
......
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