Update the incomplete StandaloneProgrammer project to be compatible with the latest LUFA core API.

pull/1469/head
Dean Camera 13 years ago
parent b057041660
commit 46aea9d4ce

@ -50,69 +50,59 @@ USB_ClassInfo_MS_Host_t DiskHost_MS_Interface =
void DiskHost_USBTask(void)
{
if (USB_HostState == HOST_STATE_Addressed)
MS_Host_USBTask(&DiskHost_MS_Interface);
}
void EVENT_USB_Host_DeviceEnumerationComplete(void)
{
LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
uint16_t ConfigDescriptorSize;
uint8_t ConfigDescriptorData[512];
if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,
sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)
{
LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
uint16_t ConfigDescriptorSize;
uint8_t ConfigDescriptorData[512];
if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,
sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
if (MS_Host_ConfigurePipes(&DiskHost_MS_Interface,
ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
uint8_t MaxLUNIndex;
if (MS_Host_GetMaxLUN(&DiskHost_MS_Interface, &MaxLUNIndex))
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
if (MS_Host_ResetMSInterface(&DiskHost_MS_Interface))
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
USB_HostState = HOST_STATE_Configured;
/* Note: For the RequestSense call to work, the host state machine must be in the
* Configured state, or the call will be aborted */
SCSI_Request_Sense_Response_t SenseData;
if (MS_Host_RequestSense(&DiskHost_MS_Interface, 0, &SenseData) != 0)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
pf_mount(&DiskFATState);
LEDs_SetAllLEDs(LEDMASK_USB_READY);
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
return;
}
MS_Host_USBTask(&DiskHost_MS_Interface);
if (MS_Host_ConfigurePipes(&DiskHost_MS_Interface,
ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
return;
}
if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
return;
}
uint8_t MaxLUNIndex;
if (MS_Host_GetMaxLUN(&DiskHost_MS_Interface, &MaxLUNIndex))
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
return;
}
if (MS_Host_ResetMSInterface(&DiskHost_MS_Interface))
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
return;
}
SCSI_Request_Sense_Response_t SenseData;
if (MS_Host_RequestSense(&DiskHost_MS_Interface, 0, &SenseData) != 0)
{
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
return;
}
pf_mount(&DiskFATState);
LEDs_SetAllLEDs(LEDMASK_USB_READY);
}
void EVENT_USB_Host_DeviceAttached(void)

@ -43,7 +43,6 @@ FILE DiskStream = FDEV_SETUP_STREAM(NULL, Disk_getchar, _FDEV_SETUP_READ);
/** Petite FAT Fs structure to hold the internal state of the FAT driver for the Dataflash contents. */
FATFS DiskFATState;
/** Stream character fetching routine for the FAT driver so that characters from the currently open file can be
* read in sequence when applied to a stdio stream.
*/

Loading…
Cancel
Save