Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions depending of if the given bank size is a compile time constant, as the compiler does a better job of optimizing with basic code.
Changed over all device demos to use a clearer algorithm for the configuring of the application's endpoints.
This commit is contained in:
		
							parent
							
								
									be520aed52
								
							
						
					
					
						commit
						508e905d8d
					
				
					 43 changed files with 374 additions and 510 deletions
				
			
		| 
						 | 
				
			
			@ -98,30 +98,18 @@ void EVENT_USB_Device_Disconnect(void)
 | 
			
		|||
 */
 | 
			
		||||
void EVENT_USB_Device_ConfigurationChanged(void)
 | 
			
		||||
{
 | 
			
		||||
	/* Indicate USB connected and ready */
 | 
			
		||||
	LEDs_SetAllLEDs(LEDMASK_USB_READY);
 | 
			
		||||
	bool ConfigSuccess = true;
 | 
			
		||||
 | 
			
		||||
	/* Setup CDC Notification, Rx and Tx Endpoints */
 | 
			
		||||
	if (!(Endpoint_ConfigureEndpoint(CDC_TX_EPNUM, EP_TYPE_BULK,
 | 
			
		||||
		                             ENDPOINT_DIR_IN, CDC_TXRX_EPSIZE,
 | 
			
		||||
	                                 ENDPOINT_BANK_SINGLE)))
 | 
			
		||||
	{
 | 
			
		||||
		LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 | 
			
		||||
	}							   
 | 
			
		||||
	/* Setup RNDIS Data Endpoints */
 | 
			
		||||
	ConfigSuccess &= Endpoint_ConfigureEndpoint(CDC_TX_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_IN,
 | 
			
		||||
	                                            CDC_TXRX_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
			
		||||
	ConfigSuccess &= Endpoint_ConfigureEndpoint(CDC_RX_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_OUT,
 | 
			
		||||
	                                            CDC_TXRX_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
			
		||||
	ConfigSuccess &= Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
 | 
			
		||||
	                                            CDC_NOTIFICATION_EPSIZE, ENDPOINT_BANK_SINGLE);
 | 
			
		||||
 | 
			
		||||
	if (!(Endpoint_ConfigureEndpoint(CDC_RX_EPNUM, EP_TYPE_BULK,
 | 
			
		||||
		                             ENDPOINT_DIR_OUT, CDC_TXRX_EPSIZE,
 | 
			
		||||
	                                 ENDPOINT_BANK_SINGLE)))
 | 
			
		||||
	{
 | 
			
		||||
		LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!(Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPNUM, EP_TYPE_INTERRUPT,
 | 
			
		||||
		                             ENDPOINT_DIR_IN, CDC_NOTIFICATION_EPSIZE,
 | 
			
		||||
	                                 ENDPOINT_BANK_SINGLE)))
 | 
			
		||||
	{
 | 
			
		||||
		LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
 | 
			
		||||
	}
 | 
			
		||||
	/* Indicate endpoint configuration success or failure */
 | 
			
		||||
	LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** Event handler for the USB_UnhandledControlRequest event. This is used to catch standard and class specific
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue