Added new TOTAL_NUM_CONFIGURATIONS option, removed USE_SINGLE_DEVICE_CONFIGURATION compile time option (but silently convert it to USE_SINGLE_DEVICE_CONFIGURATION internally for compatibility).
Added new USE_FLASH_DESCRIPTORS compile time option. By default, descriptors can now lie in mixed memory spaces (specified by a new parameter to the CALLBACK_USB_GetDescriptor() function) unless one of the USE_*_DESCRIPTORS compile time option is specified.
This commit is contained in:
		
							parent
							
								
									f85a53a31b
								
							
						
					
					
						commit
						37f8a84f35
					
				
					 42 changed files with 176 additions and 62 deletions
				
			
		|  | @ -118,9 +118,9 @@ LUFA_PATH = ../.. | |||
| LUFA_OPTS  = -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_RAM_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D NO_INTERNAL_SERIAL | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -119,9 +119,9 @@ LUFA_OPTS  = -D USB_DEVICE_ONLY | |||
| LUFA_OPTS += -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D CONTROL_ONLY_DEVICE | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=32 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_RAM_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D NO_INTERNAL_SERIAL | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -119,9 +119,9 @@ LUFA_OPTS  = -D USB_DEVICE_ONLY | |||
| LUFA_OPTS += -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D CONTROL_ONLY_DEVICE | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_RAM_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D NO_INTERNAL_SERIAL | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../../../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY  | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT | ||||
| 
 | ||||
|  |  | |||
|  | @ -82,7 +82,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor = | |||
| { | ||||
| 	.Header                 = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, | ||||
| 		 | ||||
| 	.USBSpecification       = VERSION_BCD(01.10), | ||||
| 	.USBSpecification       = VERSION_BCD(02.00), | ||||
| 	.Class                  = 0x00, | ||||
| 	.SubClass               = 0x00, | ||||
| 	.Protocol               = 0x00, | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -127,7 +127,8 @@ LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | |||
| LUFA_OPTS += -D NO_STREAM_CALLBACKS | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -58,6 +58,7 @@ | |||
| 		#define DTYPE_Report                   0x22 | ||||
| 	 | ||||
| 	/* Enums: */ | ||||
| 		/** Enum for the possible return codes of the ProcessConfigurationDescriptor() function. */ | ||||
| 		enum KeyboardHostWithParser_GetConfigDescriptorDataCodes_t | ||||
| 		{ | ||||
| 			SuccessfulConfigRead            = 0, /**< Configuration Descriptor was processed successfully */ | ||||
|  |  | |||
|  | @ -124,6 +124,7 @@ LUFA_PATH = ../../.. | |||
| 
 | ||||
| # LUFA library compile-time options
 | ||||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| 
 | ||||
| 
 | ||||
| # List C source files here. (C dependencies are automatically generated.)
 | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* const HIDInterf | |||
| 	  return; | ||||
| 	   | ||||
| 	if ((USB_ControlRequest.wIndex   != HIDInterfaceInfo->Config.InterfaceNumber) && | ||||
| 	    (USB_ControlRequest.bRequest != SetIdle)) | ||||
| 	    (USB_ControlRequest.bRequest != REQ_SetIdle)) | ||||
| 	{ | ||||
| 		return; | ||||
| 	} | ||||
|  |  | |||
|  | @ -107,7 +107,7 @@ | |||
| 			} USB_ClassInfo_CDC_Host_t; | ||||
| 			 | ||||
| 		/* Enums: */ | ||||
| 			typedef enum | ||||
| 			enum | ||||
| 			{ | ||||
| 				CDC_ENUMERROR_NoError                    = 0, /**< Configuration Descriptor was processed successfully */ | ||||
| 				CDC_ENUMERROR_ControlError               = 1, /**< A control request to the device failed to complete successfully */ | ||||
|  |  | |||
|  | @ -132,24 +132,52 @@ static void USB_Device_SetConfiguration(void) | |||
| { | ||||
| 	bool AlreadyConfigured = (USB_ConfigurationNumber != 0); | ||||
| 
 | ||||
| #if defined(USE_SINGLE_DEVICE_CONFIGURATION) | ||||
| 	if ((uint8_t)USB_ControlRequest.wValue > 1) | ||||
| #if defined(TOTAL_NUM_CONFIGURATIONS) | ||||
| 	if ((uint8_t)USB_ControlRequest.wValue > TOTAL_NUM_CONFIGURATIONS) | ||||
| 	  return; | ||||
| #else | ||||
| 	#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) | ||||
| 	uint8_t MemoryAddressSpace; | ||||
| 	#endif | ||||
| 	 | ||||
| 	USB_Descriptor_Device_t* DevDescriptorPtr; | ||||
| 
 | ||||
| 	if ((CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr) == NO_DESCRIPTOR) || | ||||
| 	#if defined(USE_RAM_DESCRIPTORS) | ||||
| 	    ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations)) | ||||
| 	#elif defined (USE_EEPROM_DESCRIPTORS) | ||||
| 	    ((uint8_t)USB_ControlRequest.wValue > eeprom_read_byte(&DevDescriptorPtr->NumberOfConfigurations))) | ||||
| 	#else | ||||
| 	    ((uint8_t)USB_ControlRequest.wValue > pgm_read_byte(&DevDescriptorPtr->NumberOfConfigurations))) | ||||
| 	if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr | ||||
| 	#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) | ||||
| 	                               , &MemoryAddressSpace) == NO_DESCRIPTOR) | ||||
| 	#endif | ||||
| #endif | ||||
| 	{ | ||||
| 		return; | ||||
| 	} | ||||
| 	 | ||||
| 	#if defined(USE_RAM_DESCRIPTORS) | ||||
| 	if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations) | ||||
| 	  return; | ||||
| 	#elif defined (USE_EEPROM_DESCRIPTORS) | ||||
| 	if ((uint8_t)USB_ControlRequest.wValue > eeprom_read_byte(&DevDescriptorPtr->NumberOfConfigurations)) | ||||
| 	  return; | ||||
| 	#elif defined (USE_FLASH_DESCRIPTORS) | ||||
| 	if ((uint8_t)USB_ControlRequest.wValue > pgm_read_byte(&DevDescriptorPtr->NumberOfConfigurations)) | ||||
| 	  return; | ||||
| 	#else | ||||
| 	if (MemoryAddressSpace == MEMSPACE_FLASH) | ||||
| 	{ | ||||
| 		if (((uint8_t)USB_ControlRequest.wValue > pgm_read_byte(&DevDescriptorPtr->NumberOfConfigurations))) | ||||
| 		  return; | ||||
| 	} | ||||
| 	else if (MemoryAddressSpace == MEMSPACE_EEPROM) | ||||
| 	{ | ||||
| 		if (((uint8_t)USB_ControlRequest.wValue > eeprom_read_byte(&DevDescriptorPtr->NumberOfConfigurations))) | ||||
| 		  return; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations) | ||||
| 		  return; | ||||
| 	} | ||||
| 	#endif | ||||
| #endif | ||||
| 	 | ||||
| 	Endpoint_ClearSETUP(); | ||||
| 
 | ||||
| 	USB_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue; | ||||
|  | @ -229,6 +257,10 @@ static void USB_Device_GetDescriptor(void) | |||
| 	void*    DescriptorPointer; | ||||
| 	uint16_t DescriptorSize; | ||||
| 	 | ||||
| 	#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) | ||||
| 	uint8_t  DescriptorAddressSpace; | ||||
| 	#endif | ||||
| 	 | ||||
| 	#if !defined(NO_INTERNAL_SERIAL) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)) | ||||
| 	if (USB_ControlRequest.wValue == ((DTYPE_String << 8) | USE_INTERNAL_SERIAL)) | ||||
| 	{ | ||||
|  | @ -238,7 +270,11 @@ static void USB_Device_GetDescriptor(void) | |||
| 	#endif | ||||
| 	 | ||||
| 	if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex, | ||||
| 	                                                 &DescriptorPointer)) == NO_DESCRIPTOR) | ||||
| 	                                                 &DescriptorPointer | ||||
| 	#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) | ||||
| 	                                                 , &DescriptorAddressSpace | ||||
| 	#endif | ||||
| 													 )) == NO_DESCRIPTOR) | ||||
| 	{ | ||||
| 		return; | ||||
| 	} | ||||
|  | @ -249,8 +285,15 @@ static void USB_Device_GetDescriptor(void) | |||
| 	Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize); | ||||
| 	#elif defined(USE_EEPROM_DESCRIPTORS) | ||||
| 	Endpoint_Write_Control_EStream_LE(DescriptorPointer, DescriptorSize); | ||||
| 	#else | ||||
| 	#elif defined(USE_FLASH_DESCRIPTORS) | ||||
| 	Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);	 | ||||
| 	#else | ||||
| 	if (DescriptorAddressSpace == MEMSPACE_FLASH) | ||||
| 	  Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);	 | ||||
| 	else if (DescriptorAddressSpace == MEMSPACE_EEPROM) | ||||
| 	  Endpoint_Write_Control_EStream_LE(DescriptorPointer, DescriptorSize); | ||||
| 	else | ||||
| 	  Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize);	 | ||||
| 	#endif | ||||
| 
 | ||||
| 	Endpoint_ClearOUT(); | ||||
|  |  | |||
|  | @ -48,16 +48,33 @@ | |||
| 			extern "C" { | ||||
| 		#endif | ||||
| 
 | ||||
| 	/* Public Interface - May be used in end-application: */			 | ||||
| 	/* Public Interface - May be used in end-application: */ | ||||
| 		/* Macros: */ | ||||
| 			#if defined(USE_SINGLE_DEVICE_CONFIGURATION) | ||||
| 				#define TOTAL_NUM_CONFIGURATIONS           1 | ||||
| 			#endif | ||||
| 	 | ||||
| 		/* Enums: */ | ||||
| 			#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) | ||||
| 				/** Enum for the possible descriptor memory spaces, for the MemoryAddressSpace of the
 | ||||
| 				 *  \ref CALLBACK_USB_GetDescriptor() function. This can be used when none of the USE_*_DESCRIPTORS | ||||
| 				 *  compile time options are used, to indicate in which memory space the descriptor is stored. | ||||
| 				 * | ||||
| 				 *  \ingroup Group_Device | ||||
| 				 */ | ||||
| 				enum USB_DescriptorMemorySpaces_t | ||||
| 				{ | ||||
| 					MEMSPACE_FLASH    = 0, /**< Indicates the requested descriptor is located in FLASH memory */ | ||||
| 					MEMSPACE_EEPROM   = 1, /**< Indicates the requested descriptor is located in EEPROM memory */ | ||||
| 					MEMSPACE_RAM      = 2, /**< Indicates the requested descriptor is located in RAM memory */ | ||||
| 				}; | ||||
| 			#endif | ||||
| 	 | ||||
| 		/* Global Variables: */ | ||||
| 			/** Indicates the currently set configuration number of the device. USB devices may have several
 | ||||
| 			 *  different configurations which the host can select between; this indicates the currently selected | ||||
| 			 *  value, or 0 if no configuration has been selected. | ||||
| 			 * | ||||
| 			 *  If a device has only one single configuration, the token USE_SINGLE_DEVICE_CONFIGURATION may be | ||||
| 			 *  defined in the project makefile and passed to the compiler using the -D switch. This optimize for | ||||
| 			 *  a single configuration, saving a small amount of space in the resulting compiled binary. | ||||
| 			 * | ||||
| 			 *  \note This variable should be treated as read-only in the user application, and never manually | ||||
| 			 *        changed in value. | ||||
| 			 * | ||||
|  | @ -87,6 +104,12 @@ | |||
| 	#if !defined(__DOXYGEN__) | ||||
| 		#if defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS) | ||||
| 			#error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive. | ||||
| 		#elif defined(USE_RAM_DESCRIPTORS) && defined(USE_FLASH_DESCRIPTORS) | ||||
| 			#error USE_RAM_DESCRIPTORS and USE_FLASH_DESCRIPTORS are mutually exclusive. | ||||
| 		#elif defined(USE_FLASH_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS) | ||||
| 			#error USE_FLASH_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive. | ||||
| 		#elif defined(USE_FLASH_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS) && defined(USE_RAM_DESCRIPTORS) | ||||
| 			#error Only one of the USE_*_DESCRIPTORS modes should be selected. | ||||
| 		#endif | ||||
| 	 | ||||
| 		/* Function Prototypes: */ | ||||
|  |  | |||
|  | @ -133,6 +133,9 @@ | |||
| 			 *                     standards. | ||||
| 			 *  \param[out] DescriptorAddress  Pointer to the descriptor in memory. This should be set by the routine to | ||||
| 			 *                                 the address of the descriptor. | ||||
| 			 *  \param[out] MemoryAddressSpace A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory | ||||
| 			 *                                 space in which the descriptor is stored. This parameter does not exist when one | ||||
| 			 *                                 of the USE_*_DESCRIPTORS compile time options is used. | ||||
| 			 * | ||||
| 			 *  \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute. | ||||
| 			 *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to | ||||
|  | @ -142,7 +145,11 @@ | |||
| 			 * | ||||
| 			 *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise | ||||
| 			 */ | ||||
| 			uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress) | ||||
| 			uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress | ||||
| 			#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS) | ||||
| 			                                    , uint8_t* MemoryAddressSpace | ||||
| 			#endif			 | ||||
| 			                                    ) | ||||
| 									            ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); | ||||
| 
 | ||||
| 	/* Private Interface - For use in library only: */ | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ | |||
|   *  - Added new FAST_STREAM_TRANSFERS compile time option for faster stream transfers via multiple bytes copied per stream loop | ||||
|   *  - Added stdio stream demo code to the low-level CDC demo, to show how to create standard streams out of the virtual serial ports | ||||
|   *  - Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions | ||||
|   *  - Added new USE_FLASH_DESCRIPTORS and TOTAL_NUM_CONFIGURATIONS compile time options | ||||
|   *   | ||||
|   *  <b>Changed:</b> | ||||
|   *  - Deprecated psuedo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused) | ||||
|  | @ -40,6 +41,8 @@ | |||
|   *  - Dataflash_WaitWhileBusy() now always ensures that the dataflash is ready for the next command immediately after returning, | ||||
|   *    no need to call Dataflash_ToggleSelectedChipCS() afterwards | ||||
|   *  - Changed F_CLOCK entries in project makefiles to alias to F_CPU by default, as this is the most common case | ||||
|   *  - The device-mode CALLBACK_USB_GetDescriptor() function now has an extra parameter so that the memory space in which the requested | ||||
|   *    descriptor is located can be specified. This means that descriptors can now be located in multiple memory spaces within a device. | ||||
|   * | ||||
|   *  <b>Fixed:</b> | ||||
|   *  - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed to fix | ||||
|  |  | |||
|  | @ -67,12 +67,14 @@ | |||
|  *  This section describes compile tokens which affect USB driver stack as a whole in the LUFA library. | ||||
|  * | ||||
|  *  <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n | ||||
|  *  Define this token to indicate to the USB driver that device descriptors are stored in RAM, rather than the default of | ||||
|  *  the AVR's flash. RAM descriptors may be desirable in applications where speed or minimizing flash usage is more important | ||||
|  *  than RAM usage, or applications where the descriptors need to be modified at runtime. | ||||
|  *  Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one | ||||
|  *  of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime. | ||||
|  * | ||||
|  *  <b>USE_FLASH_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n | ||||
|  *  Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM. | ||||
|  * | ||||
|  *  <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n | ||||
|  *  Similar to USE_RAM_DESCRIPTORS, but descriptors are stored in the AVR's EEPROM memory rather than RAM. | ||||
|  *  Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM. | ||||
|  * | ||||
|  *  <b>USE_NONSTANDARD_DESCRIPTOR_NAMES</b> - ( \ref Group_Descriptors ) \n | ||||
|  *  The USB 2.0 standard gives some rather obscure names for the elements in the standard descriptor types (device, configuration, | ||||
|  | @ -93,11 +95,11 @@ | |||
|  *  defined to a non-zero value instead to give the size in bytes of the control endpoint, to reduce the size of the compiled | ||||
|  *  binary. | ||||
|  * | ||||
|  *  <b>USE_SINGLE_DEVICE_CONFIGURATION</b> - ( \ref Group_Device ) \n | ||||
|  *  <b>TOTAL_NUM_CONFIGURATIONS</b> - ( \ref Group_Device ) \n | ||||
|  *  By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces | ||||
|  *  the amount of configuration required to set up the library, and allows the value to change dynamically (if descriptors are stored in | ||||
|  *  EEPROM or RAM rather than flash memory) and reduces code maintenance. However, many USB device projects use only a single configuration. | ||||
|  *  Defining this token enables single-configuration mode, reducing the compiled size of the binary at the expense of flexibility. | ||||
|  *  EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this value may be fixed via this token in the project | ||||
|  *  makefile to reduce the compiled size of the binary at the expense of flexibility. | ||||
|  * | ||||
|  *  <b>CONTROL_ONLY_DEVICE</b> \n | ||||
|  *  In some limited USB device applications, there are no device endpoints other than the control endpoint; i.e. all device communication | ||||
|  |  | |||
|  | @ -26,6 +26,12 @@ | |||
|  *      parameter, to add support for multi-configuration devices. Existing code should use a configuration index of 1 to indicate the | ||||
|  *      first configuration descriptor within the device. | ||||
|  * | ||||
|  *  <b>Device Mode</b> | ||||
|  *    - The \ref CALLBACK_USB_GetDescriptor() function now takes an extra parameter to specify the descriptor's memory space so that | ||||
|  *      descriptors in mixed memory spaces can be used. The previous functionality can be returned by defining the USE_FLASH_DESCRIPTORS | ||||
|  *      token in the project makefile to fix all descriptors into FLASH space and remove the extra function parameter. | ||||
|  * | ||||
|  * | ||||
|  * \section Sec_Migration090605 Migrating from 090510 to 090605 | ||||
|  * | ||||
|  *  <b>Device Mode</b> | ||||
|  |  | |||
|  | @ -126,7 +126,8 @@ LUFA_PATH = ../.. | |||
| LUFA_OPTS  = -D USE_NONSTANDARD_DESCRIPTOR_NAMES | ||||
| LUFA_OPTS += -D USB_DEVICE_ONLY | ||||
| LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8 | ||||
| LUFA_OPTS += -D USE_SINGLE_DEVICE_CONFIGURATION | ||||
| LUFA_OPTS += -D TOTAL_NUM_CONFIGURATIONS=1 | ||||
| LUFA_OPTS += -D USE_FLASH_DESCRIPTORS | ||||
| LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dean Camera
						Dean Camera