diff --git a/Bootloaders/CDC/makefile b/Bootloaders/CDC/makefile index f9924fe4ef..10f94984b1 100644 --- a/Bootloaders/CDC/makefile +++ b/Bootloaders/CDC/makefile @@ -106,17 +106,22 @@ TARGET = BootloaderCDC OBJDIR = . +# Path to the LUFA library +LUFA_PATH = ../.. + + # List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - ../../LUFA/Drivers/USB/LowLevel/LowLevel.c \ - ../../LUFA/Drivers/USB/LowLevel/Endpoint.c \ - ../../LUFA/Drivers/USB/LowLevel/DevChapter9.c \ - ../../LUFA/Drivers/USB/HighLevel/USBTask.c \ - ../../LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ - ../../LUFA/Drivers/USB/HighLevel/Events.c \ - ../../LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ - +SRC = $(TARGET).c \ + Descriptors.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ + + # List C++ source files here. (C dependencies are automatically generated.) CPPSRC = @@ -148,7 +153,7 @@ DEBUG = dwarf-2 # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = ../../ +EXTRAINCDIRS = $(LUFA_PATH)/ # Compiler flag to set the C Standard level. diff --git a/Bootloaders/DFU/makefile b/Bootloaders/DFU/makefile index cb19cb6c7e..3bed40d590 100644 --- a/Bootloaders/DFU/makefile +++ b/Bootloaders/DFU/makefile @@ -106,17 +106,22 @@ TARGET = BootloaderDFU OBJDIR = . +# Path to the LUFA library +LUFA_PATH = ../.. + + # List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - ../../LUFA/Drivers/USB/LowLevel/LowLevel.c \ - ../../LUFA/Drivers/USB/LowLevel/Endpoint.c \ - ../../LUFA/Drivers/USB/LowLevel/DevChapter9.c \ - ../../LUFA/Drivers/USB/HighLevel/USBTask.c \ - ../../LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ - ../../LUFA/Drivers/USB/HighLevel/Events.c \ - ../../LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ - +SRC = $(TARGET).c \ + Descriptors.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ + + # List C++ source files here. (C dependencies are automatically generated.) CPPSRC = @@ -148,7 +153,7 @@ DEBUG = dwarf-2 # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = ../../ +EXTRAINCDIRS = $(LUFA_PATH)/ # Compiler flag to set the C Standard level. diff --git a/Bootloaders/TeensyHID/makefile b/Bootloaders/TeensyHID/makefile index 062a3243b2..561ada56a1 100644 --- a/Bootloaders/TeensyHID/makefile +++ b/Bootloaders/TeensyHID/makefile @@ -106,17 +106,22 @@ TARGET = TeensyHID OBJDIR = . +# Path to the LUFA library +LUFA_PATH = ../.. + + # List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - ../../LUFA/Drivers/USB/LowLevel/LowLevel.c \ - ../../LUFA/Drivers/USB/LowLevel/Endpoint.c \ - ../../LUFA/Drivers/USB/LowLevel/DevChapter9.c \ - ../../LUFA/Drivers/USB/HighLevel/USBTask.c \ - ../../LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ - ../../LUFA/Drivers/USB/HighLevel/Events.c \ - ../../LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ - +SRC = $(TARGET).c \ + Descriptors.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ + + # List C++ source files here. (C dependencies are automatically generated.) CPPSRC = @@ -148,7 +153,7 @@ DEBUG = dwarf-2 # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = ../../ +EXTRAINCDIRS = $(LUFA_PATH)/ # Compiler flag to set the C Standard level. diff --git a/Demos/Device/CDC/CDC.c b/Demos/Device/CDC/CDC.c index 6e933d5813..d4eecc8971 100644 --- a/Demos/Device/CDC/CDC.c +++ b/Demos/Device/CDC/CDC.c @@ -308,6 +308,12 @@ TASK(CDC_Task) /* Finalize the stream transfer to send the last packet */ Endpoint_ClearCurrentBank(); + + /* Wait until the endpoint is ready for another packet */ + while (!(Endpoint_ReadWriteAllowed())); + + /* Send an empty packet to ensure that the host does not buffer data sent to it */ + Endpoint_ClearCurrentBank(); } /* Select the Serial Rx Endpoint */ diff --git a/LUFA.pnproj b/LUFA.pnproj index c99953d7e3..4970ca3813 100644 --- a/LUFA.pnproj +++ b/LUFA.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/LUFA/ChangeLog.txt b/LUFA/ChangeLog.txt index 63fe3c1b10..f30867e893 100644 --- a/LUFA/ChangeLog.txt +++ b/LUFA/ChangeLog.txt @@ -41,6 +41,7 @@ * - Keyboard and Mouse device demos (normal, data interrupt and fully interrupt driven) combined into unified keyboard and mouse demos * - Keyboard and Mouse host demos (normal and data interrupt driven) combined into unified keyboard and mouse demos * - Removed AVRISP_Programmer project due to code quality concerns + * - Fixed CDC demo not sending an empty packet after each transfer to prevent the host from buffering incomming data * * \section Sec_ChangeLog090209 Version 090209 * diff --git a/Projects/Magstripe/makefile b/Projects/Magstripe/makefile index 25f3fa4290..908a626f2c 100644 --- a/Projects/Magstripe/makefile +++ b/Projects/Magstripe/makefile @@ -118,19 +118,24 @@ TARGET = Magstripe OBJDIR = . +# Path to the LUFA library +LUFA_PATH = ../.. + + # List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - CircularBitBuffer.c \ - ../../LUFA/Scheduler/Scheduler.c \ - ../../LUFA/Drivers/USB/LowLevel/LowLevel.c \ - ../../LUFA/Drivers/USB/LowLevel/Endpoint.c \ - ../../LUFA/Drivers/USB/LowLevel/DevChapter9.c \ - ../../LUFA/Drivers/USB/HighLevel/USBTask.c \ - ../../LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ - ../../LUFA/Drivers/USB/HighLevel/Events.c \ - ../../LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ - +SRC = $(TARGET).c \ + Descriptors.c \ + CircularBitBuffer.c \ + $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c \ + $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ + + # List C++ source files here. (C dependencies are automatically generated.) CPPSRC = @@ -162,7 +167,7 @@ DEBUG = dwarf-2 # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = ../../ +EXTRAINCDIRS = $(LUFA_PATH)/ # Compiler flag to set the C Standard level.