diff options
| author | hathach <[email protected]> | 2014-03-23 00:00:23 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2014-03-23 00:00:23 +0700 |
| commit | 3a8dce013d0cf153f4c81f8ba891b5abc1b276fd (patch) | |
| tree | ed7414d9b5da402143820b0072b7fa6faa2a5fda /demos/device/src | |
| parent | 1cdca167cd41f51ca587a265b41f79446d828e48 (diff) | |
remove IAD_DESC_REQUIRED
add compiler guard for exceeding number of endpoints for lpc11/13u
Diffstat (limited to 'demos/device/src')
| -rw-r--r-- | demos/device/src/tusb_config.h | 2 | ||||
| -rw-r--r-- | demos/device/src/tusb_descriptors.c | 8 | ||||
| -rw-r--r-- | demos/device/src/tusb_descriptors.h | 15 |
3 files changed, 11 insertions, 14 deletions
diff --git a/demos/device/src/tusb_config.h b/demos/device/src/tusb_config.h index 803208944..13a81e248 100644 --- a/demos/device/src/tusb_config.h +++ b/demos/device/src/tusb_config.h @@ -60,7 +60,7 @@ //------------- CLASS -------------//
#define TUSB_CFG_DEVICE_HID_KEYBOARD 1
-#define TUSB_CFG_DEVICE_HID_MOUSE 1
+#define TUSB_CFG_DEVICE_HID_MOUSE 0
#define TUSB_CFG_DEVICE_HID_GENERIC 0 // not supported yet
#define TUSB_CFG_DEVICE_MSC 1
#define TUSB_CFG_DEVICE_CDC 1
diff --git a/demos/device/src/tusb_descriptors.c b/demos/device/src/tusb_descriptors.c index 5e8c0ad07..33fc895b4 100644 --- a/demos/device/src/tusb_descriptors.c +++ b/demos/device/src/tusb_descriptors.c @@ -143,8 +143,8 @@ tusb_descriptor_device_t desc_device = .bLength = sizeof(tusb_descriptor_device_t),
.bDescriptorType = TUSB_DESC_TYPE_DEVICE,
.bcdUSB = 0x0200,
- #if IAD_DESC_REQUIRED
- // Multiple Interfaces Using Interface Association Descriptor (IAD)
+ #if TUSB_CFG_DEVICE_CDC
+ // Use Interface Association Descriptor (IAD) for CDC
// As required by USB Specs IAD's subclass must be common class (2) and protocol must be IAD (1)
.bDeviceClass = TUSB_CLASS_MISC,
.bDeviceSubClass = MISC_SUBCLASS_COMMON,
@@ -188,7 +188,7 @@ app_descriptor_configuration_t desc_configuration = .bMaxPower = TUSB_DESC_CONFIG_POWER_MA(100)
},
- #if IAD_DESC_REQUIRED
+ #if TUSB_CFG_DEVICE_CDC
// IAD points to CDC Interfaces
.cdc_iad =
{
@@ -203,9 +203,7 @@ app_descriptor_configuration_t desc_configuration = .bFunctionProtocol = CDC_COMM_PROTOCOL_ATCOMMAND,
.iFunction = 0
},
- #endif
- #if TUSB_CFG_DEVICE_CDC
//------------- CDC Communication Interface -------------//
.cdc_comm_interface =
{
diff --git a/demos/device/src/tusb_descriptors.h b/demos/device/src/tusb_descriptors.h index ad472ac6c..cae6852e5 100644 --- a/demos/device/src/tusb_descriptors.h +++ b/demos/device/src/tusb_descriptors.h @@ -57,16 +57,17 @@ #endif
#define INTERFACE_NO_CDC 0
-#define INTERFACE_NO_HID_KEYBOARD (INTERFACE_NO_CDC + 2*TUSB_CFG_DEVICE_CDC )
-#define INTERFACE_NO_HID_MOUSE (INTERFACE_NO_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_KEYBOARD )
-#define INTERFACE_NO_HID_GENERIC (INTERFACE_NO_HID_MOUSE + TUSB_CFG_DEVICE_HID_MOUSE )
-#define INTERFACE_NO_MSC (INTERFACE_NO_HID_GENERIC + TUSB_CFG_DEVICE_HID_GENERIC )
+#define INTERFACE_NO_HID_KEYBOARD (INTERFACE_NO_CDC + 2*(TUSB_CFG_DEVICE_CDC ? 1 : 0) )
+#define INTERFACE_NO_HID_MOUSE (INTERFACE_NO_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_KEYBOARD )
+#define INTERFACE_NO_HID_GENERIC (INTERFACE_NO_HID_MOUSE + TUSB_CFG_DEVICE_HID_MOUSE )
+#define INTERFACE_NO_MSC (INTERFACE_NO_HID_GENERIC + TUSB_CFG_DEVICE_HID_GENERIC )
#define TOTAL_INTEFACES (2*TUSB_CFG_DEVICE_CDC + TUSB_CFG_DEVICE_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_MOUSE + \
TUSB_CFG_DEVICE_HID_GENERIC + TUSB_CFG_DEVICE_MSC)
-// Interface Assosication Descriptor is required when enable CDC
-#define IAD_DESC_REQUIRED ( TUSB_CFG_DEVICE_CDC )
+#if (TUSB_CFG_MCU == MCU_LPC11UXX || TUSB_CFG_MCU == MCU_LPC13UXX) && (TOTAL_INTEFACES > 4)
+ #error These MCUs do not have enough number of endpoints for the current configuration
+#endif
//--------------------------------------------------------------------+
// Endpoints Address & Max Packet Size
@@ -136,9 +137,7 @@ typedef ATTR_PACKED_STRUCT(struct) //------------- CDC -------------//
#if TUSB_CFG_DEVICE_CDC
- #if IAD_DESC_REQUIRED
tusb_descriptor_interface_association_t cdc_iad;
- #endif
//CDC Control Interface
tusb_descriptor_interface_t cdc_comm_interface;
|
