mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-06-09 10:24:17 +00:00
Update the incomplete StandaloneProgrammer project to be compatible with the latest LUFA core API.
This commit is contained in:
parent
b057041660
commit
46aea9d4ce
@ -50,69 +50,59 @@ USB_ClassInfo_MS_Host_t DiskHost_MS_Interface =
|
|||||||
|
|
||||||
void DiskHost_USBTask(void)
|
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);
|
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||||
|
return;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
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. */
|
/** Petite FAT Fs structure to hold the internal state of the FAT driver for the Dataflash contents. */
|
||||||
FATFS DiskFATState;
|
FATFS DiskFATState;
|
||||||
|
|
||||||
|
|
||||||
/** Stream character fetching routine for the FAT driver so that characters from the currently open file can be
|
/** 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.
|
* read in sequence when applied to a stdio stream.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user