diff --git a/examples/device/device_virtual_com/src/tusb_descriptors.c b/examples/device/device_virtual_com/src/tusb_descriptors.c
index 5f502fc6a..74954ba1c 100644
--- a/examples/device/device_virtual_com/src/tusb_descriptors.c
+++ b/examples/device/device_virtual_com/src/tusb_descriptors.c
@@ -77,7 +77,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,
@@ -91,7 +91,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,
@@ -105,7 +105,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,
@@ -128,7 +128,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 =
@@ -146,15 +146,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
@@ -165,7 +165,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,
@@ -178,9 +178,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
},
@@ -188,9 +188,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
},
};
diff --git a/examples/device/device_virtual_com/src/tusb_descriptors.h b/examples/device/device_virtual_com/src/tusb_descriptors.h
index db7b00051..af200946c 100644
--- a/examples/device/device_virtual_com/src/tusb_descriptors.h
+++ b/examples/device/device_virtual_com/src/tusb_descriptors.h
@@ -56,8 +56,8 @@
PRODUCTID_BITMAP(MSC, 4) ) )
#endif
-#define INTERFACE_NO_CDC 0
-#define TOTAL_INTEFACES 2
+#define ITF_NUM_CDC 0
+#define ITF_TOTAL 2
//--------------------------------------------------------------------+
// Endpoints Address & Max Packet Size
@@ -65,12 +65,12 @@
#define EDPT_IN(x) (0x80 | (x))
#define EDPT_OUT(x) (x)
-#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
//--------------------------------------------------------------------+
diff --git a/examples/device/nrf52840/segger/nrf52840.emProject b/examples/device/nrf52840/segger/nrf52840.emProject
index 0c2487f36..918a7a3a3 100644
--- a/examples/device/nrf52840/segger/nrf52840.emProject
+++ b/examples/device/nrf52840/segger/nrf52840.emProject
@@ -56,6 +56,9 @@
+
+
+
diff --git a/examples/device/nrf52840/src/tusb_config.h b/examples/device/nrf52840/src/tusb_config.h
index 953f05858..e517376c3 100644
--- a/examples/device/nrf52840/src/tusb_config.h
+++ b/examples/device/nrf52840/src/tusb_config.h
@@ -60,7 +60,7 @@
#define TUSB_CFG_DEVICE_HID_KEYBOARD 0
#define TUSB_CFG_DEVICE_HID_MOUSE 0
#define TUSB_CFG_DEVICE_HID_GENERIC 0 // not supported yet
-#define TUSB_CFG_DEVICE_MSC 0
+#define TUSB_CFG_DEVICE_MSC 1
#define TUSB_CFG_DEVICE_CDC 1
//--------------------------------------------------------------------+
@@ -79,6 +79,15 @@
//--------------------------------------------------------------------+
#define TUSB_CFG_ATTR_USBRAM
+// LPC11uxx and LPC13uxx requires each buffer has to be 64-byte alignment
+#if TUSB_CFG_MCU == MCU_LPC11UXX || TUSB_CFG_MCU == MCU_LPC13UXX
+ #define ATTR_USB_MIN_ALIGNMENT ATTR_ALIGNED(64)
+#elif defined NRF52840_XXAA
+ #define ATTR_USB_MIN_ALIGNMENT ATTR_ALIGNED(4)
+#else
+ #define ATTR_USB_MIN_ALIGNMENT
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/examples/device/nrf52840/src/tusb_descriptors.c b/examples/device/nrf52840/src/tusb_descriptors.c
index 5e1e421f1..a36786961 100644
--- a/examples/device/nrf52840/src/tusb_descriptors.c
+++ b/examples/device/nrf52840/src/tusb_descriptors.c
@@ -77,7 +77,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,
@@ -93,7 +93,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,
@@ -107,7 +107,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,
@@ -130,7 +130,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,
},
.acm =
@@ -148,17 +148,17 @@ 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,
},
.ep_notif =
{
.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 },
+ .wMaxPacketSize = { .size = CDC_EDPT_NOTIF_SIZE },
.bInterval = 0x10
},
@@ -167,7 +167,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,
@@ -180,9 +180,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
},
@@ -190,11 +190,47 @@ 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
},
+ },
+
+ .msc =
+ {
+ .interface =
+ {
+ .bLength = sizeof(tusb_desc_interface_t),
+ .bDescriptorType = TUSB_DESC_INTERFACE,
+ .bInterfaceNumber = ITF_NUM_MSC,
+ .bAlternateSetting = 0x00,
+ .bNumEndpoints = 2,
+ .bInterfaceClass = TUSB_CLASS_MSC,
+ .bInterfaceSubClass = MSC_SUBCLASS_SCSI,
+ .bInterfaceProtocol = MSC_PROTOCOL_BOT,
+ .iInterface = 0x07
+ },
+
+ .ep_out =
+ {
+ .bLength = sizeof(tusb_desc_endpoint_t),
+ .bDescriptorType = TUSB_DESC_ENDPOINT,
+ .bEndpointAddress = MSC_EDPT_OUT,
+ .bmAttributes = { .xfer = TUSB_XFER_BULK },
+ .wMaxPacketSize = { .size = MSC_EDPT_SIZE},
+ .bInterval = 1
+ },
+
+ .ep_in =
+ {
+ .bLength = sizeof(tusb_desc_endpoint_t),
+ .bDescriptorType = TUSB_DESC_ENDPOINT,
+ .bEndpointAddress = MSC_EDPT_IN,
+ .bmAttributes = { .xfer = TUSB_XFER_BULK },
+ .wMaxPacketSize = { .size = MSC_EDPT_SIZE},
+ .bInterval = 1
+ }
}
};
diff --git a/examples/device/nrf52840/src/tusb_descriptors.h b/examples/device/nrf52840/src/tusb_descriptors.h
index 5a82764f4..cf291e25e 100644
--- a/examples/device/nrf52840/src/tusb_descriptors.h
+++ b/examples/device/nrf52840/src/tusb_descriptors.h
@@ -56,8 +56,10 @@
PRODUCTID_BITMAP(MSC, 4) ) )
#endif
-#define INTERFACE_NO_CDC 0
-#define TOTAL_INTEFACES 2
+#define ITF_NUM_CDC 0
+#define ITF_NUM_MSC 2
+
+#define ITF_TOTAL 3 // total number of interfaces
//--------------------------------------------------------------------+
// Endpoints Address & Max Packet Size
@@ -65,12 +67,16 @@
#define EDPT_IN(x) (0x80 | (x))
#define EDPT_OUT(x) (x)
-#define CDC_EDPT_NOTIFICATION_ADDR EDPT_IN (1)
-#define CDC_EDPT_NOTIFICATION_PACKETSIZE 64
+#define CDC_EDPT_NOTIF EDPT_IN (1)
+#define CDC_EDPT_NOTIF_SIZE 8
-#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
+
+#define MSC_EDPT_OUT EDPT_OUT(3)
+#define MSC_EDPT_IN EDPT_IN(3)
+#define MSC_EDPT_SIZE 64
//--------------------------------------------------------------------+
@@ -98,6 +104,13 @@ typedef struct ATTR_PACKED
tusb_desc_endpoint_t ep_in;
}cdc;
+ struct ATTR_PACKED
+ {
+ tusb_desc_interface_t interface;
+ tusb_desc_endpoint_t ep_out;
+ tusb_desc_endpoint_t ep_in;
+ }msc;
+
} app_descriptor_configuration_t;
#endif
diff --git a/examples/obsolete/device/src/tusb_descriptors.c b/examples/obsolete/device/src/tusb_descriptors.c
index 671e63641..bd279dc93 100644
--- a/examples/obsolete/device/src/tusb_descriptors.c
+++ b/examples/obsolete/device/src/tusb_descriptors.c
@@ -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,
diff --git a/examples/obsolete/device/src/tusb_descriptors.h b/examples/obsolete/device/src/tusb_descriptors.h
index a366a3bc1..0ef98e695 100644
--- a/examples/obsolete/device/src/tusb_descriptors.h
+++ b/examples/obsolete/device/src/tusb_descriptors.h
@@ -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
diff --git a/tinyusb/class/msc/msc_device.c b/tinyusb/class/msc/msc_device.c
index 5b04b14ec..d01d39f55 100644
--- a/tinyusb/class/msc/msc_device.c
+++ b/tinyusb/class/msc/msc_device.c
@@ -79,7 +79,7 @@ typedef struct {
uint16_t xferred_len; // numbered of bytes transferred so far in the Data Stage
}mscd_interface_t;
-TUSB_CFG_ATTR_USBRAM STATIC_VAR mscd_interface_t mscd_data;
+TUSB_CFG_ATTR_USBRAM ATTR_USB_MIN_ALIGNMENT STATIC_VAR mscd_interface_t mscd_data;
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
diff --git a/tinyusb/device/usbd.c b/tinyusb/device/usbd.c
index 759977cf2..14ec47e6a 100644
--- a/tinyusb/device/usbd.c
+++ b/tinyusb/device/usbd.c
@@ -53,7 +53,7 @@
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
usbd_device_info_t usbd_devices[CONTROLLER_DEVICE_NUMBER];
-TUSB_CFG_ATTR_USBRAM uint8_t usbd_enum_buffer[TUSB_CFG_DEVICE_ENUM_BUFFER_SIZE];
+TUSB_CFG_ATTR_USBRAM ATTR_USB_MIN_ALIGNMENT uint8_t usbd_enum_buffer[TUSB_CFG_DEVICE_ENUM_BUFFER_SIZE];
static usbd_class_driver_t const usbd_class_drivers[] =
{