aboutsummaryrefslogtreecommitdiff
path: root/Projects/Incomplete
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2009-11-24 14:10:28 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2009-11-24 14:10:28 +0000
commitbe7e7eafe3e212f51ab1aa2f77e5a7eec02112e4 (patch)
treebe584b0f1df4272db2d20da3fbd86e736b6ddade /Projects/Incomplete
parent5250050f502f7f78bd13283e128976564c24b0de (diff)
Make the StandaloneProgrammer project seamlessly read out drive contents from either an attached FAT formatted drive when in host mode, or the onboard FAT formatted dataflash when in device mode.
git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@915 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'Projects/Incomplete')
-rw-r--r--Projects/Incomplete/StandaloneProgrammer/DiskDevice.c2
-rw-r--r--Projects/Incomplete/StandaloneProgrammer/DiskHost.c13
-rw-r--r--Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c2
-rw-r--r--Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c10
-rw-r--r--Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h2
5 files changed, 17 insertions, 12 deletions
diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c b/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c
index 104893a9..2bb27bd5 100644
--- a/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c
+++ b/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c
@@ -77,8 +77,6 @@ void EVENT_USB_Device_ConfigurationChanged(void)
if (!(MS_Device_ConfigureEndpoints(&DiskDevice_MS_Interface)))
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-
- pf_mount(&DiskFATState);
}
/** Event handler for the library USB Unhandled Control Request event. */
diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c
index c5541417..8e518209 100644
--- a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c
+++ b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c
@@ -59,16 +59,14 @@ void DiskHost_USBTask(void)
if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,
sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)
{
- printf("ERROR - GetConfig\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
if (MS_Host_ConfigurePipes(&DiskHost_MS_Interface,
- ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError)
+ ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError)
{
- printf("ERROR - Pipes\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
@@ -76,16 +74,16 @@ void DiskHost_USBTask(void)
if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)
{
- printf("ERROR - SetConfig\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
}
-
+
+ USB_HostState = HOST_STATE_Configured;
+
uint8_t MaxLUNIndex;
if (MS_Host_GetMaxLUN(&DiskHost_MS_Interface, &MaxLUNIndex))
{
- printf("ERROR - MaxLUN\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
@@ -93,7 +91,6 @@ void DiskHost_USBTask(void)
if (MS_Host_ResetMSInterface(&DiskHost_MS_Interface))
{
- printf("ERROR - ResetMS\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
@@ -102,7 +99,6 @@ void DiskHost_USBTask(void)
SCSI_Request_Sense_Response_t SenseData;
if (MS_Host_RequestSense(&DiskHost_MS_Interface, 0, &SenseData) != 0)
{
- printf("ERROR - Sense\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
return;
@@ -111,7 +107,6 @@ void DiskHost_USBTask(void)
pf_mount(&DiskFATState);
LEDs_SetAllLEDs(LEDMASK_USB_READY);
- USB_HostState = HOST_STATE_Configured;
}
MS_Host_USBTask(&DiskHost_MS_Interface);
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c
index b40adf1d..d46d9b96 100644
--- a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c
+++ b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c
@@ -42,7 +42,7 @@ DRESULT disk_readp (
else if (MS_Host_ReadDeviceBlocks(&DiskHost_MS_Interface, 0, sector, 1, 512, BlockTemp))
ErrorCode = RES_ERROR;
- printf("BLOCK READ #%lu Ret %d\r\n", sector, MS_Host_ReadDeviceBlocks(&DiskHost_MS_Interface, 0, sector, 1, 512, BlockTemp));
+ MS_Host_ReadDeviceBlocks(&DiskHost_MS_Interface, 0, sector, 1, 512, BlockTemp);
#endif
}
else
diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c
index e8a863f5..5d865236 100644
--- a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c
+++ b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c
@@ -57,6 +57,16 @@ static int Disk_getchar(FILE* Stream)
return (ByteWasRead ? ReadByte : _FDEV_EOF);
}
+#if defined(USB_CAN_BE_BOTH)
+/** Event to handle mode changes in the library, to clear the FAT library's drive state structure when transitioning
+ * between modes. This ensures that the library always works with current disk data.
+ */
+void EVENT_USB_UIDChange(void)
+{
+ pf_mount(&DiskFATState);
+}
+#endif
+
/** Task to determine if the user is wishes to start the programming sequence, and if so executes the
* required functions to program the attached target (if any) with the files loaded to the dataflash.
*/
diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h
index 698070af..744ad01b 100644
--- a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h
+++ b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h
@@ -79,6 +79,8 @@
static int Disk_getchar(FILE* Stream);
#endif
+ void EVENT_USB_UIDChange(void);
+
void SetupHardware(void);
void Programmer_Task(void);