refractor tusb_descriptors
usbd device_class_driver added & tested HID mouse for device (work together with hid keyboard) rename DEVICE_ROM_REG_BASE, DEVICE_ROM_DRIVER_ADDR
This commit is contained in:
@@ -42,12 +42,17 @@ int main(void)
|
||||
#if TUSB_CFG_DEVICE_HID_MOUSE
|
||||
if (usb_isConfigured())
|
||||
{
|
||||
tusb_hid_mouse_send(0, 10, 10);
|
||||
static uint32_t count =0;
|
||||
if (count < 8)
|
||||
{
|
||||
count++;
|
||||
tusb_hid_mouse_send(0, 20, 20);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined TUSB_CFG_DEVICE_CDC && 0
|
||||
#if TUSB_CFG_DEVICE_CDC && 0
|
||||
if (usb_isConfigured())
|
||||
{
|
||||
uint8_t cdc_char;
|
||||
|
||||
@@ -92,10 +92,10 @@
|
||||
|
||||
//------------- CLASS -------------//
|
||||
#define TUSB_CFG_DEVICE_HID_KEYBOARD 1
|
||||
#define TUSB_CFG_DEVICE_HID_MOUSE 0
|
||||
#define TUSB_CFG_DEVICE_HID_MOUSE 1
|
||||
#define TUSB_CFG_DEVICE_HID_GENERIC 0
|
||||
#define TUSB_CFG_DEVICE_MSC 0
|
||||
//#define TUSB_CFG_DEVICE_CDC
|
||||
#define TUSB_CFG_DEVICE_CDC 0
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// COMMON CONFIGURATION
|
||||
|
||||
@@ -83,7 +83,7 @@ uint8_t app_tusb_keyboard_desc_report[] = {
|
||||
|
||||
#if TUSB_CFG_DEVICE_HID_MOUSE
|
||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
|
||||
uint8_t mouse_report_descriptor[] = {
|
||||
uint8_t app_tusb_mouse_desc_report[] = {
|
||||
HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ),
|
||||
HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ),
|
||||
HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
|
||||
@@ -178,7 +178,7 @@ app_descriptor_configuration_t app_tusb_desc_configuration =
|
||||
},
|
||||
#endif
|
||||
|
||||
#ifdef TUSB_CFG_DEVICE_CDC
|
||||
#if TUSB_CFG_DEVICE_CDC
|
||||
// USB CDC Serial Interface
|
||||
// CDC Control Interface
|
||||
.CDC_CCI_Interface =
|
||||
@@ -273,7 +273,7 @@ app_descriptor_configuration_t app_tusb_desc_configuration =
|
||||
{
|
||||
.bLength = sizeof(tusb_descriptor_interface_t),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_INTERFACE,
|
||||
.bInterfaceNumber = 1,
|
||||
.bInterfaceNumber = INTERFACE_INDEX_HID_KEYBOARD,
|
||||
.bAlternateSetting = 0x00,
|
||||
.bNumEndpoints = 1,
|
||||
.bInterfaceClass = TUSB_CLASS_HID,
|
||||
@@ -297,7 +297,7 @@ app_descriptor_configuration_t app_tusb_desc_configuration =
|
||||
{
|
||||
.bLength = sizeof(tusb_descriptor_endpoint_t),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_ENDPOINT,
|
||||
.bEndpointAddress = 0x81, //HID_KEYBOARD_EP_IN,
|
||||
.bEndpointAddress = HID_KEYBOARD_EP_IN, //todo HID_KEYBOARD_EP_IN,
|
||||
.bmAttributes = { .xfer = TUSB_XFER_INTERRUPT },
|
||||
.wMaxPacketSize = { .size = 0x08 },
|
||||
.bInterval = 0x0A
|
||||
@@ -306,7 +306,7 @@ app_descriptor_configuration_t app_tusb_desc_configuration =
|
||||
|
||||
//------------- HID Mouse -------------//
|
||||
#if TUSB_CFG_DEVICE_HID_MOUSE
|
||||
.HID_MouseInterface =
|
||||
.mouse_interface =
|
||||
{
|
||||
.bLength = sizeof(tusb_descriptor_interface_t),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_INTERFACE,
|
||||
@@ -314,7 +314,7 @@ app_descriptor_configuration_t app_tusb_desc_configuration =
|
||||
.bAlternateSetting = 0x00,
|
||||
.bNumEndpoints = 1,
|
||||
.bInterfaceClass = TUSB_CLASS_HID,
|
||||
.bInterfaceSubClass = TUSB_HID_SUBCLASS_BOOT,
|
||||
.bInterfaceSubClass = HID_SUBCLASS_BOOT,
|
||||
.bInterfaceProtocol = HID_PROTOCOL_MOUSE,
|
||||
.iInterface = 0x00
|
||||
},
|
||||
@@ -327,16 +327,16 @@ app_descriptor_configuration_t app_tusb_desc_configuration =
|
||||
.bCountryCode = HID_Local_NotSupported,
|
||||
.bNumDescriptors = 1,
|
||||
.bReportType = HID_DESC_TYPE_REPORT,
|
||||
.wReportLength = sizeof(mouse_report_descriptor)
|
||||
.wReportLength = sizeof(app_tusb_mouse_desc_report)
|
||||
},
|
||||
|
||||
.mouse_endpoint =
|
||||
{
|
||||
.bLength = sizeof(tusb_descriptor_endpoint_t),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_ENDPOINT,
|
||||
.bEndpointAddress = 0x82,
|
||||
.bEndpointAddress = HID_MOUSE_EP_IN, // TODO
|
||||
.bmAttributes = { .xfer = TUSB_XFER_INTERRUPT },
|
||||
.wMaxPacketSize = 0x08,
|
||||
.wMaxPacketSize = { .size = 0x08 },
|
||||
.bInterval = 0x0A
|
||||
},
|
||||
#endif
|
||||
@@ -390,19 +390,19 @@ app_descriptor_string_t app_tusb_desc_strings =
|
||||
|
||||
//------------- index 1 -------------//
|
||||
.manufacturer = {
|
||||
.bLength = USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1),
|
||||
.bLength = STRING_LEN_BYTE2UNICODE(sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_STRING,
|
||||
},
|
||||
|
||||
//------------- index 2 -------------//
|
||||
.product = {
|
||||
.bLength = USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1),
|
||||
.bLength = STRING_LEN_BYTE2UNICODE(sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_STRING,
|
||||
},
|
||||
|
||||
//------------- index 3 -------------//
|
||||
.serial = {
|
||||
.bLength = USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1),
|
||||
.bLength = STRING_LEN_BYTE2UNICODE(sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_STRING,
|
||||
}
|
||||
};
|
||||
|
||||
@@ -35,20 +35,6 @@
|
||||
|
||||
#include "tusb.h"
|
||||
|
||||
|
||||
|
||||
/* USB Serial uses the MCUs unique 128-bit chip ID via an IAP call = 32 hex chars */
|
||||
#define USB_STRING_SERIAL_LEN 32
|
||||
|
||||
#define USB_STRING_LEN(n) (2 + ((n)<<1))
|
||||
|
||||
typedef ATTR_PACKED_STRUCT(struct)
|
||||
{
|
||||
uint8_t bLength ; ///< Size of this descriptor in bytes
|
||||
uint8_t bDescriptorType ; ///< Descriptor Type
|
||||
uint16_t unicode_string[];
|
||||
} tusb_descriptor_string_t;
|
||||
|
||||
typedef ATTR_PACKED_STRUCT(struct)
|
||||
{
|
||||
//------------- index 0 -------------//
|
||||
@@ -90,31 +76,13 @@ typedef ATTR_PACKED_STRUCT(struct)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// Interface Assosication Descriptor if device is CDC + other class
|
||||
#define IAD_DESC_REQUIRED ( defined(TUSB_CFG_DEVICE_CDC) && (DEVICE_CLASS_HID) )
|
||||
#define IAD_DESC_REQUIRED ( TUSB_CFG_DEVICE_CDC && DEVICE_CLASS_HID )
|
||||
|
||||
#ifdef TUSB_CFG_DEVICE_CDC
|
||||
#define INTERFACES_OF_CDC 2
|
||||
#else
|
||||
#define INTERFACES_OF_CDC 0
|
||||
#endif
|
||||
#define INTERFACES_OF_CDC (TUSB_CFG_DEVICE_CDC ? 2 : 0)
|
||||
|
||||
#if TUSB_CFG_DEVICE_HID_KEYBOARD
|
||||
#define INTERFACES_OF_HID_KEYBOARD 1
|
||||
#else
|
||||
#define INTERFACES_OF_HID_KEYBOARD 0
|
||||
#endif
|
||||
|
||||
#if TUSB_CFG_DEVICE_HID_MOUSE
|
||||
#define INTERFACES_OF_HID_MOUSE 1
|
||||
#else
|
||||
#define INTERFACES_OF_HID_MOUSE 0
|
||||
#endif
|
||||
|
||||
#if TUSB_CFG_HOST_HID_GENERIC
|
||||
#define INTERFACES_OF_HID_GENERIC 1
|
||||
#else
|
||||
#define INTERFACES_OF_HID_GENERIC 0
|
||||
#endif
|
||||
#define INTERFACES_OF_HID_KEYBOARD (TUSB_CFG_DEVICE_HID_KEYBOARD ? 1 : 0)
|
||||
#define INTERFACES_OF_HID_MOUSE (TUSB_CFG_DEVICE_HID_MOUSE ? 1 : 0)
|
||||
#define INTERFACES_OF_HID_GENERIC (TUSB_CFG_DEVICE_HID_GENERIC ? 1 : 0)
|
||||
|
||||
#if CFG_USB_MASS_STORAGE
|
||||
#define INTERFACES_OF_MASS_STORAGE 2
|
||||
@@ -181,7 +149,6 @@ extern app_descriptor_configuration_t app_tusb_desc_configuration;
|
||||
extern app_descriptor_string_t app_tusb_desc_strings;
|
||||
|
||||
extern uint8_t app_tusb_keyboard_desc_report[];
|
||||
|
||||
//extern const uint8_t HID_MouseReportDescriptor[];
|
||||
extern uint8_t app_tusb_mouse_desc_report[];
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user