*/\r
void EVENT_USB_ConfigurationChanged(void)\r
{\r
- /* Setup Mass Storage In and Out Endpoints */\r
- Endpoint_ConfigureEndpoint(MASS_STORAGE_IN_EPNUM, EP_TYPE_BULK,\r
- ENDPOINT_DIR_IN, MASS_STORAGE_IO_EPSIZE,\r
- ENDPOINT_BANK_DOUBLE);\r
-\r
- Endpoint_ConfigureEndpoint(MASS_STORAGE_OUT_EPNUM, EP_TYPE_BULK,\r
- ENDPOINT_DIR_OUT, MASS_STORAGE_IO_EPSIZE,\r
- ENDPOINT_BANK_DOUBLE);\r
-\r
/* Indicate USB connected and ready */\r
LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
+\r
+ /* Setup Mass Storage In and Out Endpoints */\r
+ if (!(Endpoint_ConfigureEndpoint(MASS_STORAGE_IN_EPNUM, EP_TYPE_BULK,\r
+ ENDPOINT_DIR_IN, MASS_STORAGE_IO_EPSIZE,\r
+ ENDPOINT_BANK_DOUBLE)))\r
+ {\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+ }\r
+ \r
+ if (!(Endpoint_ConfigureEndpoint(MASS_STORAGE_OUT_EPNUM, EP_TYPE_BULK,\r
+ ENDPOINT_DIR_OUT, MASS_STORAGE_IO_EPSIZE,\r
+ ENDPOINT_BANK_DOUBLE)))\r
+ {\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+ } \r
}\r
\r
/** Event handler for the USB_UnhandledControlPacket event. This is used to catch standard and class specific\r
Endpoint_ClearStall();\r
Endpoint_SelectEndpoint(MASS_STORAGE_IN_EPNUM);\r
Endpoint_ClearStall();\r
-\r
- /* Clear the abort transfer flag */\r
- IsMassStoreReset = false;\r
}\r
\r
/* Indicate ready */\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
}\r
}\r
+\r
+ /* Clear the abort transfer flag */\r
+ IsMassStoreReset = false;\r
}\r
}\r
\r
return false;\r
\r
/* Verify the command block - abort if invalid */\r
- if ((CommandBlock.Signature != CBW_SIGNATURE) ||\r
- (CommandBlock.LUN >= TOTAL_LUNS) ||\r
- (CommandBlock.SCSICommandLength > MAX_SCSI_COMMAND_LENGTH))\r
+ if ((CommandBlock.Signature != CBW_SIGNATURE) ||\r
+ (CommandBlock.LUN >= TOTAL_LUNS) ||\r
+ (CommandBlock.SCSICommandLength > MAX_SCSI_COMMAND_LENGTH))\r
{\r
/* Stall both data pipes until reset by host */\r
Endpoint_StallTransaction();\r