MSC tested with nrf52840

This commit is contained in:
hathach
2018-03-23 14:15:35 +07:00
parent 3e5e1f70bf
commit e8b0500d40
10 changed files with 130 additions and 69 deletions

View File

@@ -176,7 +176,7 @@ app_descriptor_configuration_t const desc_configuration =
.bDescriptorType = TUSB_DESC_CONFIGURATION,
.wTotalLength = sizeof(app_descriptor_configuration_t),
.bNumInterfaces = TOTAL_INTEFACES,
.bNumInterfaces = ITF_TOTAL,
.bConfigurationValue = 1,
.iConfiguration = 0x00,
@@ -191,7 +191,7 @@ app_descriptor_configuration_t const desc_configuration =
.bLength = sizeof(tusb_desc_interface_assoc_t),
.bDescriptorType = TUSB_DESC_INTERFACE_ASSOCIATION,
.bFirstInterface = INTERFACE_NO_CDC,
.bFirstInterface = ITF_NUM_CDC,
.bInterfaceCount = 2,
.bFunctionClass = TUSB_CLASS_CDC,
@@ -205,7 +205,7 @@ app_descriptor_configuration_t const desc_configuration =
{
.bLength = sizeof(tusb_desc_interface_t),
.bDescriptorType = TUSB_DESC_INTERFACE,
.bInterfaceNumber = INTERFACE_NO_CDC,
.bInterfaceNumber = ITF_NUM_CDC,
.bAlternateSetting = 0,
.bNumEndpoints = 1,
.bInterfaceClass = TUSB_CLASS_CDC,
@@ -228,7 +228,7 @@ app_descriptor_configuration_t const desc_configuration =
.bDescriptorType = TUSB_DESC_CLASS_SPECIFIC,
.bDescriptorSubType = CDC_FUNC_DESC_CALL_MANAGEMENT,
.bmCapabilities = { 0 },
.bDataInterface = INTERFACE_NO_CDC+1,
.bDataInterface = ITF_NUM_CDC+1,
},
.cdc_acm =
@@ -246,15 +246,15 @@ app_descriptor_configuration_t const desc_configuration =
.bLength = sizeof(cdc_desc_func_union_t), // plus number of
.bDescriptorType = TUSB_DESC_CLASS_SPECIFIC,
.bDescriptorSubType = CDC_FUNC_DESC_UNION,
.bControlInterface = INTERFACE_NO_CDC,
.bSubordinateInterface = INTERFACE_NO_CDC+1,
.bControlInterface = ITF_NUM_CDC,
.bSubordinateInterface = ITF_NUM_CDC+1,
},
.cdc_endpoint_notification =
{
.bLength = sizeof(tusb_desc_endpoint_t),
.bDescriptorType = TUSB_DESC_ENDPOINT,
.bEndpointAddress = CDC_EDPT_NOTIFICATION_ADDR,
.bEndpointAddress = CDC_EDPT_NOTIF,
.bmAttributes = { .xfer = TUSB_XFER_INTERRUPT },
.wMaxPacketSize = { .size = 0x08 },
.bInterval = 0x10
@@ -265,7 +265,7 @@ app_descriptor_configuration_t const desc_configuration =
{
.bLength = sizeof(tusb_desc_interface_t),
.bDescriptorType = TUSB_DESC_INTERFACE,
.bInterfaceNumber = INTERFACE_NO_CDC+1,
.bInterfaceNumber = ITF_NUM_CDC+1,
.bAlternateSetting = 0x00,
.bNumEndpoints = 2,
.bInterfaceClass = TUSB_CLASS_CDC_DATA,
@@ -278,9 +278,9 @@ app_descriptor_configuration_t const desc_configuration =
{
.bLength = sizeof(tusb_desc_endpoint_t),
.bDescriptorType = TUSB_DESC_ENDPOINT,
.bEndpointAddress = CDC_EDPT_DATA_OUT_ADDR,
.bEndpointAddress = CDC_EDPT_OUT,
.bmAttributes = { .xfer = TUSB_XFER_BULK },
.wMaxPacketSize = { .size = CDC_EDPT_DATA_PACKETSIZE },
.wMaxPacketSize = { .size = CDC_EDPT_SIZE },
.bInterval = 0
},
@@ -288,9 +288,9 @@ app_descriptor_configuration_t const desc_configuration =
{
.bLength = sizeof(tusb_desc_endpoint_t),
.bDescriptorType = TUSB_DESC_ENDPOINT,
.bEndpointAddress = CDC_EDPT_DATA_IN_ADDR,
.bEndpointAddress = CDC_EDPT_IN,
.bmAttributes = { .xfer = TUSB_XFER_BULK },
.wMaxPacketSize = { .size = CDC_EDPT_DATA_PACKETSIZE },
.wMaxPacketSize = { .size = CDC_EDPT_SIZE },
.bInterval = 0
},
#endif
@@ -375,7 +375,7 @@ app_descriptor_configuration_t const desc_configuration =
{
.bLength = sizeof(tusb_desc_interface_t),
.bDescriptorType = TUSB_DESC_INTERFACE,
.bInterfaceNumber = INTERFACE_NO_MSC,
.bInterfaceNumber = ITF_NUM_MSC,
.bAlternateSetting = 0x00,
.bNumEndpoints = 2,
.bInterfaceClass = TUSB_CLASS_MSC,

View File

@@ -56,16 +56,16 @@
PRODUCTID_BITMAP(MSC, 4) ) )
#endif
#define INTERFACE_NO_CDC 0
#define INTERFACE_NO_HID_KEYBOARD (INTERFACE_NO_CDC + 2*(TUSB_CFG_DEVICE_CDC ? 1 : 0) )
#define ITF_NUM_CDC 0
#define INTERFACE_NO_HID_KEYBOARD (ITF_NUM_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 ITF_NUM_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 + \
#define ITF_TOTAL (2*TUSB_CFG_DEVICE_CDC + TUSB_CFG_DEVICE_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_MOUSE + \
TUSB_CFG_DEVICE_HID_GENERIC + TUSB_CFG_DEVICE_MSC)
#if (TUSB_CFG_MCU == MCU_LPC11UXX || TUSB_CFG_MCU == MCU_LPC13UXX) && (TOTAL_INTEFACES > 4)
#if (TUSB_CFG_MCU == MCU_LPC11UXX || TUSB_CFG_MCU == MCU_LPC13UXX) && (ITF_TOTAL > 4)
#error These MCUs do not have enough number of endpoints for the current configuration
#endif
@@ -78,12 +78,12 @@
#if TUSB_CFG_MCU == MCU_LPC175X_6X // MCUs's endpoint number has a fixed type
//------------- CDC -------------//
#define CDC_EDPT_NOTIFICATION_ADDR EDPT_IN (1)
#define CDC_EDPT_NOTIF EDPT_IN (1)
#define CDC_EDPT_NOTIFICATION_PACKETSIZE 64
#define CDC_EDPT_DATA_OUT_ADDR EDPT_OUT(2)
#define CDC_EDPT_DATA_IN_ADDR EDPT_IN (2)
#define CDC_EDPT_DATA_PACKETSIZE 64
#define CDC_EDPT_OUT EDPT_OUT(2)
#define CDC_EDPT_IN EDPT_IN (2)
#define CDC_EDPT_SIZE 64
//------------- HID Keyboard -------------//
#define HID_KEYBOARD_EDPT_ADDR EDPT_IN (4)
@@ -102,12 +102,12 @@
#else
//------------- CDC -------------//
#define CDC_EDPT_NOTIFICATION_ADDR EDPT_IN (INTERFACE_NO_CDC+1)
#define CDC_EDPT_NOTIF EDPT_IN (ITF_NUM_CDC+1)
#define CDC_EDPT_NOTIFICATION_PACKETSIZE 64
#define CDC_EDPT_DATA_OUT_ADDR EDPT_OUT(INTERFACE_NO_CDC+2)
#define CDC_EDPT_DATA_IN_ADDR EDPT_IN (INTERFACE_NO_CDC+2)
#define CDC_EDPT_DATA_PACKETSIZE 64
#define CDC_EDPT_OUT EDPT_OUT(ITF_NUM_CDC+2)
#define CDC_EDPT_IN EDPT_IN (ITF_NUM_CDC+2)
#define CDC_EDPT_SIZE 64
//------------- HID Keyboard -------------//
#define HID_KEYBOARD_EDPT_ADDR EDPT_IN (INTERFACE_NO_HID_KEYBOARD+1)
@@ -120,8 +120,8 @@
//------------- HID Generic -------------//
//------------- Mass Storage -------------//
#define MSC_EDPT_OUT_ADDR EDPT_OUT(INTERFACE_NO_MSC+1)
#define MSC_EDPT_IN_ADDR EDPT_IN (INTERFACE_NO_MSC+1)
#define MSC_EDPT_OUT_ADDR EDPT_OUT(ITF_NUM_MSC+1)
#define MSC_EDPT_IN_ADDR EDPT_IN (ITF_NUM_MSC+1)
#endif