- move CMSIS & driver lib for lpc13u to codebase bsp/lpc13xx
- change descriptor.c/h able to build device example
This commit is contained in:
		| @@ -37,130 +37,121 @@ | ||||
|  | ||||
| #include "descriptors.h" | ||||
|  | ||||
| #ifdef TUSB_CFG_DEVICE_HID_KEYBOARD | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const uint8_t HID_KeyboardReportDescriptor[] = { | ||||
|   HID_UsagePage  ( HID_USAGE_PAGE_GENERIC     ), | ||||
|   HID_Usage      ( HID_USAGE_GENERIC_KEYBOARD ), | ||||
|   HID_Collection ( HID_Application            ), | ||||
|     HID_UsagePage (HID_USAGE_PAGE_KEYBOARD), | ||||
|       HID_UsageMin    (224                                     ), | ||||
|       HID_UsageMax    (231                                     ), | ||||
|       HID_LogicalMin  ( 0                                      ), | ||||
|       HID_LogicalMax  ( 1                                      ), | ||||
| #if TUSB_CFG_DEVICE_HID_KEYBOARD | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) | ||||
| const uint8_t keyboard_report_descriptor[] = { | ||||
|   HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP     ), | ||||
|   HID_USAGE      ( HID_USAGE_DESKTOP_KEYBOARD ), | ||||
|   HID_COLLECTION ( HID_COLLECTION_APPLICATION ), | ||||
|     HID_USAGE_PAGE ( HID_USAGE_PAGE_KEYBOARD ), | ||||
|       HID_USAGE_MIN    ( 224                                    ), | ||||
|       HID_USAGE_MAX    ( 231                                    ), | ||||
|       HID_LOGICAL_MIN  ( 0                                      ), | ||||
|       HID_LOGICAL_MAX  ( 1                                      ), | ||||
|  | ||||
|       HID_ReportCount ( 8                                      ), /* 8 bits */ | ||||
|       HID_ReportSize  ( 1                                      ), | ||||
|       HID_Input       ( HID_Data | HID_Variable | HID_Absolute ), /* maskable modifier key */ | ||||
|       HID_REPORT_COUNT ( 8                                      ), /* 8 bits */ | ||||
|       HID_REPORT_SIZE  ( 1                                      ), | ||||
|       HID_INPUT        ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), /* maskable modifier key */ | ||||
|  | ||||
|       HID_ReportCount ( 1                                      ), | ||||
|       HID_ReportSize  (8                                       ), | ||||
|       HID_Input       (HID_Constant                            ), /* reserved */ | ||||
|       HID_REPORT_COUNT ( 1                                      ), | ||||
|       HID_REPORT_SIZE  ( 8                                      ), | ||||
|       HID_INPUT        ( HID_CONSTANT                           ), /* reserved */ | ||||
|  | ||||
|     HID_UsagePage  ( HID_USAGE_PAGE_LED                   ), | ||||
|       HID_UsageMin    (1                                       ), | ||||
|       HID_UsageMax    (5                                       ), | ||||
|       HID_ReportCount (5                                       ), | ||||
|       HID_ReportSize  (1                                       ), | ||||
|       HID_Output      ( HID_Data | HID_Variable | HID_Absolute ), /* 5-bit Led report */ | ||||
|     HID_USAGE_PAGE  ( HID_USAGE_PAGE_LED                   ), | ||||
|       HID_USAGE_MIN    ( 1                                       ), | ||||
|       HID_USAGE_MAX    ( 5                                       ), | ||||
|       HID_REPORT_COUNT ( 5                                       ), | ||||
|       HID_REPORT_SIZE  ( 1                                       ), | ||||
|       HID_OUTPUT       ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE  ), /* 5-bit Led report */ | ||||
|  | ||||
|       HID_ReportCount ( 1                                      ), | ||||
|       HID_ReportSize  (3                                       ), /* led padding */ | ||||
|       HID_Output      (HID_Constant                            ), | ||||
|       HID_REPORT_COUNT ( 1                                       ), | ||||
|       HID_REPORT_SIZE  ( 3                                       ), /* led padding */ | ||||
|       HID_OUTPUT       ( HID_CONSTANT                            ), | ||||
|  | ||||
|     HID_UsagePage (HID_USAGE_PAGE_KEYBOARD), | ||||
|       HID_UsageMin    (0                                   ), | ||||
|       HID_UsageMax    (101                                 ), | ||||
|       HID_LogicalMin  (0                                       ), | ||||
|       HID_LogicalMax  (101                                     ), | ||||
|     HID_USAGE_PAGE (HID_USAGE_PAGE_KEYBOARD), | ||||
|       HID_USAGE_MIN    ( 0                                   ), | ||||
|       HID_USAGE_MAX    ( 101                                 ), | ||||
|       HID_LOGICAL_MIN  ( 0                                   ), | ||||
|       HID_LOGICAL_MAX  ( 101                                 ), | ||||
|  | ||||
|       HID_ReportCount (6                                   ), | ||||
|       HID_ReportSize  (8                                   ), | ||||
|       HID_Input       (HID_Data | HID_Array | HID_Absolute ), /* keycodes array 6 items */ | ||||
|   HID_EndCollection, | ||||
|       HID_REPORT_COUNT ( 6                                   ), | ||||
|       HID_REPORT_SIZE  ( 8                                   ), | ||||
|       HID_INPUT        ( HID_DATA | HID_ARRAY | HID_ABSOLUTE ), /* keycodes array 6 items */ | ||||
|   HID_COLLECTION_END | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| #ifdef TUSB_CFG_DEVICE_HID_MOUSE | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const uint8_t HID_MouseReportDescriptor[] = { | ||||
|   HID_UsagePage  ( HID_USAGE_PAGE_GENERIC     ), | ||||
|   HID_Usage      ( HID_USAGE_GENERIC_MOUSE ), | ||||
|   HID_Collection ( HID_Application            ), | ||||
|     HID_Usage (HID_USAGE_GENERIC_POINTER), | ||||
| #if TUSB_CFG_DEVICE_HID_MOUSE | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) | ||||
| const uint8_t mouse_report_descriptor[] = { | ||||
|   HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP     ), | ||||
|   HID_USAGE      ( HID_USAGE_DESKTOP_MOUSE    ), | ||||
|   HID_COLLECTION ( HID_COLLECTION_APPLICATION ), | ||||
|     HID_USAGE      (HID_USAGE_DESKTOP_POINTER), | ||||
|  | ||||
|     HID_Collection ( HID_Physical ), | ||||
|       HID_UsagePage  ( HID_USAGE_PAGE_BUTTON     ), | ||||
|         HID_UsageMin    ( 1                                     ), | ||||
|         HID_UsageMax    ( 3                                     ), | ||||
|         HID_LogicalMin  ( 0                                      ), | ||||
|         HID_LogicalMax  ( 1                                      ), | ||||
|     HID_COLLECTION ( HID_COLLECTION_PHYSICAL ), | ||||
|       HID_USAGE_PAGE  ( HID_USAGE_PAGE_BUTTON ), | ||||
|         HID_USAGE_MIN    ( 1                                      ), | ||||
|         HID_USAGE_MAX    ( 3                                      ), | ||||
|         HID_LOGICAL_MIN  ( 0                                      ), | ||||
|         HID_LOGICAL_MAX  ( 1                                      ), | ||||
|  | ||||
|         HID_ReportCount ( 3                                      ), /* Left, Right and Middle mouse*/ | ||||
|         HID_ReportSize  ( 1                                      ), | ||||
|         HID_Input       ( HID_Data | HID_Variable | HID_Absolute ), | ||||
|         HID_REPORT_COUNT ( 3                                      ), /* Left, Right and Middle mouse*/ | ||||
|         HID_REPORT_SIZE  ( 1                                      ), | ||||
|         HID_INPUT        ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), | ||||
|  | ||||
|         HID_ReportCount ( 1                                      ), | ||||
|         HID_ReportSize  ( 5                                      ), | ||||
|         HID_Input       (HID_Constant                            ), /* reserved */ | ||||
|         HID_REPORT_COUNT ( 1                                      ), | ||||
|         HID_REPORT_SIZE  ( 5                                      ), | ||||
|         HID_INPUT        ( HID_CONSTANT                           ), /* reserved */ | ||||
|  | ||||
|       HID_UsagePage  ( HID_USAGE_PAGE_GENERIC ), | ||||
|         HID_Usage       ( HID_USAGE_GENERIC_X                    ), | ||||
|         HID_Usage       ( HID_USAGE_GENERIC_Y                    ), | ||||
|         HID_LogicalMin  ( 0x81                                   ), /* -127 */ | ||||
|         HID_LogicalMax  ( 0x7f                                   ), /* 127  */ | ||||
|       HID_USAGE_PAGE  ( HID_USAGE_PAGE_DESKTOP ), | ||||
|         HID_USAGE        ( HID_USAGE_DESKTOP_X                    ), | ||||
|         HID_USAGE        ( HID_USAGE_DESKTOP_Y                    ), | ||||
|         HID_LOGICAL_MIN  ( 0x81                                   ), /* -127 */ | ||||
|         HID_LOGICAL_MAX  ( 0x7f                                   ), /* 127  */ | ||||
|  | ||||
|         HID_ReportCount ( 2                                      ), /* X, Y position */ | ||||
|         HID_ReportSize  ( 8                                      ), | ||||
|         HID_Input       ( HID_Data | HID_Variable | HID_Relative ), /* relative values */ | ||||
|         HID_REPORT_COUNT ( 2                                      ), /* X, Y position */ | ||||
|         HID_REPORT_SIZE  ( 8                                      ), | ||||
|         HID_INPUT        ( HID_DATA | HID_VARIABLE | HID_RELATIVE ), /* relative values */ | ||||
|     HID_COLLECTION_END, | ||||
|  | ||||
|     HID_EndCollection, | ||||
|  | ||||
|   HID_EndCollection, | ||||
|   HID_COLLECTION_END | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| /* USB Standard Device Descriptor */ | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const USB_DEVICE_DESCRIPTOR USB_DeviceDescriptor = | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) | ||||
| tusb_descriptor_device_t const desc_device = | ||||
| { | ||||
|   .bLength            = sizeof(USB_DEVICE_DESCRIPTOR), | ||||
|   .bDescriptorType    = USB_DEVICE_DESCRIPTOR_TYPE, | ||||
|   .bcdUSB             = 0x0200, | ||||
|     .bLength            = sizeof(tusb_descriptor_device_t), | ||||
|     .bDescriptorType    = TUSB_DESC_DEVICE, | ||||
|     .bcdUSB             = 0x0200, | ||||
|     .bDeviceClass       = 0x00, | ||||
|     .bDeviceSubClass    = 0x00, | ||||
|     .bDeviceProtocol    = 0x00, | ||||
|  | ||||
|   #if IAD_DESC_REQUIRED | ||||
|   /* Multiple Interfaces Using Interface Association Descriptor (IAD) */ | ||||
|   .bDeviceClass       = USB_DEVICE_CLASS_IAD, | ||||
|   .bDeviceSubClass    = USB_DEVICE_SUBCLASS_IAD, | ||||
|   .bDeviceProtocol    = USB_DEVICE_PROTOCOL_IAD, | ||||
|   #elif defined TUSB_CFG_DEVICE_CDC | ||||
|   .bDeviceClass       = CDC_COMMUNICATION_INTERFACE_CLASS, | ||||
|   .bDeviceSubClass    = 0x00, | ||||
|   .bDeviceProtocol    = 0x00, | ||||
|   #else | ||||
|   .bDeviceClass       = 0x00, | ||||
|   .bDeviceSubClass    = 0x00, | ||||
|   .bDeviceProtocol    = 0x00, | ||||
|   #endif | ||||
|     .bMaxPacketSize0    = USB_MAX_PACKET0, | ||||
|  | ||||
|   .bMaxPacketSize0    = USB_MAX_PACKET0, | ||||
|     .idVendor           = CFG_USB_VENDORID, | ||||
|     .idProduct          = USB_PRODUCT_ID, | ||||
|     .bcdDevice          = 0x0100, | ||||
|  | ||||
|   .idVendor           = CFG_USB_VENDORID, | ||||
|   .idProduct          = USB_PRODUCT_ID, | ||||
|   .bcdDevice          = 0x0100, | ||||
|     .iManufacturer      = 0x01, | ||||
|     .iProduct           = 0x02, | ||||
|     .iSerialNumber      = 0x03, | ||||
|  | ||||
|   .iManufacturer      = 0x01, | ||||
|   .iProduct           = 0x02, | ||||
|   .iSerialNumber      = 0x03, | ||||
|  | ||||
|   .bNumConfigurations = 0x01 | ||||
|     .bNumConfigurations = 0x01 // TODO configuration number | ||||
| }; | ||||
|  | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const USB_FS_CONFIGURATION_DESCRIPTOR USB_FsConfigDescriptor = | ||||
|  | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) | ||||
| const app_configuration_desc_t desc_configuration = | ||||
| { | ||||
|     .Config = | ||||
|     .configuration = | ||||
|     { | ||||
|         .bLength             = sizeof(tusb_descriptor_configuration_t), | ||||
|         .bDescriptorType     = TUSB_DESC_CONFIGURATION, | ||||
|  | ||||
|         .wTotalLength        = sizeof(USB_FS_CONFIGURATION_DESCRIPTOR) - 1, // exclude termination | ||||
|         .wTotalLength        = sizeof(app_configuration_desc_t) - 1, // exclude termination | ||||
|         .bNumInterfaces      = TOTAL_INTEFACES, | ||||
|  | ||||
|         .bConfigurationValue = 1, | ||||
| @@ -276,47 +267,45 @@ TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const USB_FS_CONFIGURATION_DESCRIPTOR USB_F | ||||
|     }, | ||||
|     #endif | ||||
|  | ||||
|     #ifdef TUSB_CFG_DEVICE_HID_KEYBOARD | ||||
|     ///// USB HID Keyboard interface | ||||
|     .HID_KeyboardInterface = | ||||
|     //------------- HID Keyboard -------------// | ||||
|     #if TUSB_CFG_DEVICE_HID_KEYBOARD | ||||
|     .keyboard_interface = | ||||
|     { | ||||
|         .bLength            = sizeof(tusb_descriptor_interface_t), | ||||
|         .bDescriptorType    = TUSB_DESC_INTERFACE, | ||||
|         .bInterfaceNumber   = INTERFACE_INDEX_HID_KEYBOARD, | ||||
|         .bInterfaceNumber   = 1, | ||||
|         .bAlternateSetting  = 0x00, | ||||
|         .bNumEndpoints      = 1, | ||||
|         .bInterfaceClass    = TUSB_CLASS_HID, | ||||
|         .bInterfaceSubClass = TUSB_HID_SUBCLASS_BOOT, | ||||
|         .bInterfaceProtocol = TUSB_HID_PROTOCOL_KEYBOARD, | ||||
|         .bInterfaceSubClass = HID_SUBCLASS_BOOT, | ||||
|         .bInterfaceProtocol = HID_PROTOCOL_KEYBOARD, | ||||
|         .iInterface         = 0x00 | ||||
|     }, | ||||
|  | ||||
|     .HID_KeyboardHID = | ||||
|     .keyboard_hid = | ||||
|     { | ||||
|         .bLength           = sizeof(HID_DESCRIPTOR), | ||||
|         .bDescriptorType   = HID_HID_DESCRIPTOR_TYPE, | ||||
|         .bLength           = sizeof(tusb_hid_descriptor_hid_t), | ||||
|         .bDescriptorType   = HID_DESC_HID, | ||||
|         .bcdHID            = 0x0111, | ||||
|         .bCountryCode      = HID_Local_NotSupported, | ||||
|         .bNumDescriptors   = 1, | ||||
|         .DescriptorList[0] = | ||||
|         { | ||||
|             .bDescriptorType   = HID_REPORT_DESCRIPTOR_TYPE, | ||||
|             .wDescriptorLength = sizeof(HID_KeyboardReportDescriptor) | ||||
|         }, | ||||
|         .bReportType       = HID_DESC_REPORT, | ||||
|         .wReportLength     = sizeof(keyboard_report_descriptor) | ||||
|     }, | ||||
|  | ||||
|     .HID_KeyboardEndpoint = | ||||
|     .keyboard_endpoint = | ||||
|     { | ||||
|         .bLength          = sizeof(tusb_descriptor_endpoint_t), | ||||
|         .bDescriptorType  = TUSB_DESC_ENDPOINT, | ||||
|         .bEndpointAddress = HID_KEYBOARD_EP_IN, | ||||
|         .bmAttributes     = USB_ENDPOINT_TYPE_INTERRUPT, | ||||
|         .wMaxPacketSize   = 0x08, | ||||
|         .bEndpointAddress = 0x81, | ||||
|         .bmAttributes     = { .xfer = TUSB_XFER_INTERRUPT }, | ||||
|         .wMaxPacketSize   = { .size = 0x08 }, | ||||
|         .bInterval        = 0x0A | ||||
|     }, | ||||
|     #endif | ||||
|  | ||||
|     #ifdef TUSB_CFG_DEVICE_HID_MOUSE | ||||
|     //------------- HID Mouse -------------// | ||||
|     #if TUSB_CFG_DEVICE_HID_MOUSE | ||||
|     .HID_MouseInterface = | ||||
|     { | ||||
|         .bLength            = sizeof(tusb_descriptor_interface_t), | ||||
| @@ -330,32 +319,65 @@ TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const USB_FS_CONFIGURATION_DESCRIPTOR USB_F | ||||
|         .iInterface         = 0x00 | ||||
|     }, | ||||
|  | ||||
|     .HID_MouseHID = | ||||
|     .mouse_hid = | ||||
|     { | ||||
|         .bLength           = sizeof(HID_DESCRIPTOR), | ||||
|         .bDescriptorType   = HID_HID_DESCRIPTOR_TYPE, | ||||
|         .bLength           = sizeof(tusb_hid_descriptor_hid_t), | ||||
|         .bDescriptorType   = HID_DESC_HID, | ||||
|         .bcdHID            = 0x0111, | ||||
|         .bCountryCode      = HID_Local_NotSupported, | ||||
|         .bNumDescriptors   = 1, | ||||
|         .DescriptorList[0] = | ||||
|         { | ||||
|             .bDescriptorType   = HID_REPORT_DESCRIPTOR_TYPE, | ||||
|             .wDescriptorLength = sizeof(HID_MouseReportDescriptor) | ||||
|         }, | ||||
|         .bReportType       = HID_DESC_REPORT, | ||||
|         .wReportLength     = sizeof(mouse_report_descriptor) | ||||
|     }, | ||||
|  | ||||
|     .HID_MouseEndpoint = | ||||
|     .mouse_endpoint = | ||||
|     { | ||||
|         .bLength          = sizeof(tusb_descriptor_endpoint_t), | ||||
|         .bDescriptorType  = TUSB_DESC_ENDPOINT, | ||||
|         .bEndpointAddress = HID_MOUSE_EP_IN, | ||||
|         .bmAttributes     = USB_ENDPOINT_TYPE_INTERRUPT, | ||||
|         .bEndpointAddress = 0x82, | ||||
|         .bmAttributes     = { .xfer = TUSB_XFER_INTERRUPT }, | ||||
|         .wMaxPacketSize   = 0x08, | ||||
|         .bInterval        = 0x0A | ||||
|     }, | ||||
|     #endif | ||||
|  | ||||
|     .ConfigDescTermination = 0, | ||||
|     //------------- Mass Storage -------------// | ||||
|     #if TUSB_CFG_DEVICE_MSC | ||||
|     .msc_interface = | ||||
|     { | ||||
|         .bLength            = sizeof(tusb_descriptor_interface_t), | ||||
|         .bDescriptorType    = TUSB_DESC_INTERFACE, | ||||
|         .bInterfaceNumber   = 3, | ||||
|         .bAlternateSetting  = 0x00, | ||||
|         .bNumEndpoints      = 2, | ||||
|         .bInterfaceClass    = TUSB_CLASS_MSC, | ||||
|         .bInterfaceSubClass = MSC_SUBCLASS_SCSI, | ||||
|         .bInterfaceProtocol = MSC_PROTOCOL_BOT, | ||||
|         .iInterface         = 0x00 | ||||
|     }, | ||||
|  | ||||
|     .msc_endpoint_in = | ||||
|     { | ||||
|         .bLength          = sizeof(tusb_descriptor_endpoint_t), | ||||
|         .bDescriptorType  = TUSB_DESC_ENDPOINT, | ||||
|         .bEndpointAddress = 0x83, | ||||
|         .bmAttributes     = { .xfer = TUSB_XFER_BULK }, | ||||
|         .wMaxPacketSize   = 512, | ||||
|         .bInterval        = 1 | ||||
|     }, | ||||
|  | ||||
|     .msc_endpoint_out = | ||||
|     { | ||||
|         .bLength          = sizeof(tusb_descriptor_endpoint_t), | ||||
|         .bDescriptorType  = TUSB_DESC_ENDPOINT, | ||||
|         .bEndpointAddress = 0x03, | ||||
|         .bmAttributes     = { .xfer = TUSB_XFER_BULK }, | ||||
|         .wMaxPacketSize   = 512, | ||||
|         .bInterval        = 1 | ||||
|     }, | ||||
|     #endif | ||||
|  | ||||
|     .null_termination = 0, | ||||
| }; | ||||
|  | ||||
| TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const USB_STR_DESCRIPTOR USB_StringDescriptor = | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach