aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-01-12 00:42:00 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-01-12 00:42:00 +0000
commit89e4d73289b6156aebf4e3e492033d6b017c7813 (patch)
tree3c4b8adc646193a55c764d57e9cc136498fcd8b1
parent5fc294a6503d48b422ce67438d703bdd647de146 (diff)
downloadlufa-89e4d73289b6156aebf4e3e492033d6b017c7813.tar.gz
lufa-89e4d73289b6156aebf4e3e492033d6b017c7813.tar.bz2
lufa-89e4d73289b6156aebf4e3e492033d6b017c7813.zip
Fixed incorrect interface values in the VirtualSerialMouse and KeyboardMouse demo class driver structures.
Added caveat information to the CDC device class driver.
-rw-r--r--Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c10
-rw-r--r--Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h2
-rw-r--r--Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c2
-rw-r--r--Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c2
-rw-r--r--LUFA/Doxygen.conf4
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDC.h17
-rw-r--r--LUFA/ManPages/ChangeLog.txt1
7 files changed, 28 insertions, 10 deletions
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
index ec17bf69a..dcdf88682 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
+++ b/Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.c
@@ -72,13 +72,13 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface =
{
.Config =
{
- .InterfaceNumber = 0,
+ .InterfaceNumber = 1,
- .ReportINEndpointNumber = MOUSE_IN_EPNUM,
- .ReportINEndpointSize = HID_EPSIZE,
+ .ReportINEndpointNumber = MOUSE_IN_EPNUM,
+ .ReportINEndpointSize = HID_EPSIZE,
- .PrevReportINBuffer = PrevMouseHIDReportBuffer,
- .PrevReportINBufferSize = sizeof(PrevMouseHIDReportBuffer),
+ .PrevReportINBuffer = PrevMouseHIDReportBuffer,
+ .PrevReportINBufferSize = sizeof(PrevMouseHIDReportBuffer),
},
};
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h
index f6681f47f..3bed7f851 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h
+++ b/Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h
@@ -53,7 +53,7 @@
#include <LUFA/Version.h>
#include <LUFA/Drivers/Board/LEDs.h>
- #include <LUFA/Drivers/Board/Joystick.h>
+ #include <LUFA/Drivers/Peripheral/SerialStream.h>
#include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/USB/Class/RNDIS.h>
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
index b2c8ae21b..8bb8a1eed 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
@@ -246,7 +246,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
{
.Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
- .InterfaceNumber = 3,
+ .InterfaceNumber = 2,
.AlternateSetting = 0,
.TotalEndpoints = 1,
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c
index 87b149b79..5edda2f9d 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.c
@@ -71,7 +71,7 @@ USB_ClassInfo_HID_Device_t Mouse_HID_Interface =
{
.Config =
{
- .InterfaceNumber = 0,
+ .InterfaceNumber = 2,
.ReportINEndpointNumber = MOUSE_EPNUM,
.ReportINEndpointSize = MOUSE_EPSIZE,
diff --git a/LUFA/Doxygen.conf b/LUFA/Doxygen.conf
index 265a27ec6..c46aba6a1 100644
--- a/LUFA/Doxygen.conf
+++ b/LUFA/Doxygen.conf
@@ -872,14 +872,14 @@ GENERATE_HTMLHELP = NO
# can add a path in front of the file if the result should not be
# written to the html output directory.
-CHM_FILE =
+CHM_FILE = ../LUFA.chm
# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
# be used to specify the location (absolute path including file name) of
# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
# the HTML help compiler on the generated index.hhp.
-HHC_LOCATION =
+HHC_LOCATION =
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
# controls if a separate .chi index file is generated (YES) or that
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 617410b11..d248868cd 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -38,6 +38,23 @@
* \section Module Description
* Device Mode USB Class driver framework interface, for the CDC USB Class driver.
*
+ * \note There are several major drawbacks to the CDC-ACM standard USB class, however
+ * it is very standardized and thus usually available as a built-in driver on
+ * most platforms, and so is a better choice than a proprietary serial class.
+ *
+ * One major issue with CDC-ACM is that it requires two Interface descriptors,
+ * which will upset most hosts when part of a multi-function "Composite" USB
+ * device, as each interface will be loaded into a separate driver instance. To
+ * conbat this, you should use the "Interface Association Descriptor" addendum to
+ * the USB standard which is available on most OSes when creating Composite devices.
+ *
+ * Another major oversight is that there is no mechanism for the host to notify the
+ * device that there is a data sink on the host side ready to accept data. This
+ * means that the device may try to send data while the host isn't listening, causing
+ * lengthy blocking timeouts in the transmission routines. To combat this, it is
+ * recommended that the virtual serial line DTR (Data Terminal Ready) be used where
+ * possible to determine if a host application is ready for data.
+ *
* @{
*/
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 351c33f3e..d0043223e 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -34,6 +34,7 @@
* - Fixed blocking CDC streams not aborting when the host is disconnected
* - Fixed XPLAIN board Dataflash driver broken due to incorrect preprocessor commands
* - Fixed inverted XPLAIN LED driver output (LED turned on when it was supposed to be turned off, and vice-versa)
+ * - Fixed Class Driver struct interface numbers in the KeyboardMouse and VirtualSerialMouse demos
*
* \section Sec_ChangeLog091223 Version 091223
*