mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-25 23:38:06 +00:00
add ncm.h for magic number
mostly clean up magic number
This commit is contained in:
parent
a8eea9f6a5
commit
a6723f556d
@ -59,31 +59,31 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
CDC_COMM_SUBCLASS_DIRECT_LINE_CONTROL_MODEL = 0x01 , ///< Direct Line Control Model [USBPSTN1.2]
|
CDC_COMM_SUBCLASS_DIRECT_LINE_CONTROL_MODEL = 0x01 , ///< Direct Line Control Model [USBPSTN1.2]
|
||||||
CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL , ///< Abstract Control Model [USBPSTN1.2]
|
CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL = 0x02 , ///< Abstract Control Model [USBPSTN1.2]
|
||||||
CDC_COMM_SUBCLASS_TELEPHONE_CONTROL_MODEL , ///< Telephone Control Model [USBPSTN1.2]
|
CDC_COMM_SUBCLASS_TELEPHONE_CONTROL_MODEL = 0x03 , ///< Telephone Control Model [USBPSTN1.2]
|
||||||
CDC_COMM_SUBCLASS_MULTICHANNEL_CONTROL_MODEL , ///< Multi-Channel Control Model [USBISDN1.2]
|
CDC_COMM_SUBCLASS_MULTICHANNEL_CONTROL_MODEL = 0x04 , ///< Multi-Channel Control Model [USBISDN1.2]
|
||||||
CDC_COMM_SUBCLASS_CAPI_CONTROL_MODEL , ///< CAPI Control Model [USBISDN1.2]
|
CDC_COMM_SUBCLASS_CAPI_CONTROL_MODEL = 0x05 , ///< CAPI Control Model [USBISDN1.2]
|
||||||
CDC_COMM_SUBCLASS_ETHERNET_CONTROL_MODEL , ///< Ethernet Networking Control Model [USBECM1.2]
|
CDC_COMM_SUBCLASS_ETHERNET_CONTROL_MODEL = 0x06 , ///< Ethernet Networking Control Model [USBECM1.2]
|
||||||
CDC_COMM_SUBCLASS_ATM_NETWORKING_CONTROL_MODEL , ///< ATM Networking Control Model [USBATM1.2]
|
CDC_COMM_SUBCLASS_ATM_NETWORKING_CONTROL_MODEL = 0x07 , ///< ATM Networking Control Model [USBATM1.2]
|
||||||
CDC_COMM_SUBCLASS_WIRELESS_HANDSET_CONTROL_MODEL , ///< Wireless Handset Control Model [USBWMC1.1]
|
CDC_COMM_SUBCLASS_WIRELESS_HANDSET_CONTROL_MODEL = 0x08 , ///< Wireless Handset Control Model [USBWMC1.1]
|
||||||
CDC_COMM_SUBCLASS_DEVICE_MANAGEMENT , ///< Device Management [USBWMC1.1]
|
CDC_COMM_SUBCLASS_DEVICE_MANAGEMENT = 0x09 , ///< Device Management [USBWMC1.1]
|
||||||
CDC_COMM_SUBCLASS_MOBILE_DIRECT_LINE_MODEL , ///< Mobile Direct Line Model [USBWMC1.1]
|
CDC_COMM_SUBCLASS_MOBILE_DIRECT_LINE_MODEL = 0x0A , ///< Mobile Direct Line Model [USBWMC1.1]
|
||||||
CDC_COMM_SUBCLASS_OBEX , ///< OBEX [USBWMC1.1]
|
CDC_COMM_SUBCLASS_OBEX = 0x0B , ///< OBEX [USBWMC1.1]
|
||||||
CDC_COMM_SUBCLASS_ETHERNET_EMULATION_MODEL , ///< Ethernet Emulation Model [USBEEM1.0]
|
CDC_COMM_SUBCLASS_ETHERNET_EMULATION_MODEL = 0x0C , ///< Ethernet Emulation Model [USBEEM1.0]
|
||||||
CDC_COMM_SUBCLASS_NETWORK_CONTROL_MODEL ///< Network Control Model [USBNCM1.0]
|
CDC_COMM_SUBCLASS_NETWORK_CONTROL_MODEL = 0x0D ///< Network Control Model [USBNCM1.0]
|
||||||
} cdc_comm_sublcass_type_t;
|
} cdc_comm_sublcass_type_t;
|
||||||
|
|
||||||
/// Communication Interface Protocol Codes
|
/// Communication Interface Protocol Codes
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
CDC_COMM_PROTOCOL_NONE = 0x00 , ///< No specific protocol
|
CDC_COMM_PROTOCOL_NONE = 0x00 , ///< No specific protocol
|
||||||
CDC_COMM_PROTOCOL_ATCOMMAND , ///< AT Commands: V.250 etc
|
CDC_COMM_PROTOCOL_ATCOMMAND = 0x01 , ///< AT Commands: V.250 etc
|
||||||
CDC_COMM_PROTOCOL_ATCOMMAND_PCCA_101 , ///< AT Commands defined by PCCA-101
|
CDC_COMM_PROTOCOL_ATCOMMAND_PCCA_101 = 0x02 , ///< AT Commands defined by PCCA-101
|
||||||
CDC_COMM_PROTOCOL_ATCOMMAND_PCCA_101_AND_ANNEXO , ///< AT Commands defined by PCCA-101 & Annex O
|
CDC_COMM_PROTOCOL_ATCOMMAND_PCCA_101_AND_ANNEXO = 0x03 , ///< AT Commands defined by PCCA-101 & Annex O
|
||||||
CDC_COMM_PROTOCOL_ATCOMMAND_GSM_707 , ///< AT Commands defined by GSM 07.07
|
CDC_COMM_PROTOCOL_ATCOMMAND_GSM_707 = 0x04 , ///< AT Commands defined by GSM 07.07
|
||||||
CDC_COMM_PROTOCOL_ATCOMMAND_3GPP_27007 , ///< AT Commands defined by 3GPP 27.007
|
CDC_COMM_PROTOCOL_ATCOMMAND_3GPP_27007 = 0x05 , ///< AT Commands defined by 3GPP 27.007
|
||||||
CDC_COMM_PROTOCOL_ATCOMMAND_CDMA , ///< AT Commands defined by TIA for CDMA
|
CDC_COMM_PROTOCOL_ATCOMMAND_CDMA = 0x06 , ///< AT Commands defined by TIA for CDMA
|
||||||
CDC_COMM_PROTOCOL_ETHERNET_EMULATION_MODEL ///< Ethernet Emulation Model
|
CDC_COMM_PROTOCOL_ETHERNET_EMULATION_MODEL = 0x07 ///< Ethernet Emulation Model
|
||||||
} cdc_comm_protocol_type_t;
|
} cdc_comm_protocol_type_t;
|
||||||
|
|
||||||
//------------- SubType Descriptor in COMM Functional Descriptor -------------//
|
//------------- SubType Descriptor in COMM Functional Descriptor -------------//
|
||||||
@ -124,7 +124,8 @@ typedef enum
|
|||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
// SUBCLASS code of Data Interface is not used and should/must be zero
|
// SUBCLASS code of Data Interface is not used and should/must be zero
|
||||||
/// Data Interface Protocol Codes
|
|
||||||
|
// Data Interface Protocol Codes
|
||||||
typedef enum{
|
typedef enum{
|
||||||
CDC_DATA_PROTOCOL_ISDN_BRI = 0x30, ///< Physical interface protocol for ISDN BRI
|
CDC_DATA_PROTOCOL_ISDN_BRI = 0x30, ///< Physical interface protocol for ISDN BRI
|
||||||
CDC_DATA_PROTOCOL_HDLC = 0x31, ///< HDLC
|
CDC_DATA_PROTOCOL_HDLC = 0x31, ///< HDLC
|
||||||
@ -149,7 +150,6 @@ typedef enum
|
|||||||
{
|
{
|
||||||
CDC_REQUEST_SEND_ENCAPSULATED_COMMAND = 0x00, ///< is used to issue a command in the format of the supported control protocol of the Communications Class interface
|
CDC_REQUEST_SEND_ENCAPSULATED_COMMAND = 0x00, ///< is used to issue a command in the format of the supported control protocol of the Communications Class interface
|
||||||
CDC_REQUEST_GET_ENCAPSULATED_RESPONSE = 0x01, ///< is used to request a response in the format of the supported control protocol of the Communications Class interface.
|
CDC_REQUEST_GET_ENCAPSULATED_RESPONSE = 0x01, ///< is used to request a response in the format of the supported control protocol of the Communications Class interface.
|
||||||
|
|
||||||
CDC_REQUEST_SET_COMM_FEATURE = 0x02,
|
CDC_REQUEST_SET_COMM_FEATURE = 0x02,
|
||||||
CDC_REQUEST_GET_COMM_FEATURE = 0x03,
|
CDC_REQUEST_GET_COMM_FEATURE = 0x03,
|
||||||
CDC_REQUEST_CLEAR_COMM_FEATURE = 0x04,
|
CDC_REQUEST_CLEAR_COMM_FEATURE = 0x04,
|
||||||
@ -196,21 +196,18 @@ typedef enum
|
|||||||
// Management Elemenent Notification (Notification Endpoint)
|
// Management Elemenent Notification (Notification Endpoint)
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
/// Communication Interface Management Element Notification Codes
|
/// 6.3 Notification Codes
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
NETWORK_CONNECTION = 0x00, ///< This notification allows the device to notify the host about network connection status.
|
CDC_NOTIF_NETWORK_CONNECTION = 0x00, ///< This notification allows the device to notify the host about network connection status.
|
||||||
RESPONSE_AVAILABLE = 0x01, ///< This notification allows the device to notify the hostthat a response is available. This response can be retrieved with a subsequent \ref CDC_REQUEST_GET_ENCAPSULATED_RESPONSE request.
|
CDC_NOTIF_RESPONSE_AVAILABLE = 0x01, ///< This notification allows the device to notify the hostthat a response is available. This response can be retrieved with a subsequent \ref CDC_REQUEST_GET_ENCAPSULATED_RESPONSE request.
|
||||||
|
CDC_NOTIF_AUX_JACK_HOOK_STATE = 0x08,
|
||||||
AUX_JACK_HOOK_STATE = 0x08,
|
CDC_NOTIF_RING_DETECT = 0x09,
|
||||||
RING_DETECT = 0x09,
|
CDC_NOTIF_SERIAL_STATE = 0x20,
|
||||||
|
CDC_NOTIF_CALL_STATE_CHANGE = 0x28,
|
||||||
SERIAL_STATE = 0x20,
|
CDC_NOTIF_LINE_STATE_CHANGE = 0x29,
|
||||||
|
CDC_NOTIF_CONNECTION_SPEED_CHANGE = 0x2A, ///< This notification allows the device to inform the host-networking driver that a change in either the upstream or the downstream bit rate of the connection has occurred
|
||||||
CALL_STATE_CHANGE = 0x28,
|
CDC_NOTIF_MDLM_SEMANTIC_MODEL_NOTIFICATION = 0x40,
|
||||||
LINE_STATE_CHANGE = 0x29,
|
|
||||||
CONNECTION_SPEED_CHANGE = 0x2A, ///< This notification allows the device to inform the host-networking driver that a change in either the upstream or the downstream bit rate of the connection has occurred
|
|
||||||
MDLM_SEMANTIC_MODEL_NOTIFICATION = 0x40,
|
|
||||||
}cdc_notification_request_t;
|
}cdc_notification_request_t;
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
69
src/class/net/ncm.h
Normal file
69
src/class/net/ncm.h
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021, Ha Thach (tinyusb.org)
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*
|
||||||
|
* This file is part of the TinyUSB stack.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _TUSB_NCM_H_
|
||||||
|
#define _TUSB_NCM_H_
|
||||||
|
|
||||||
|
#include "common/tusb_common.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Table 4.3 Data Class Interface Protocol Codes
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
NCM_DATA_PROTOCOL_NETWORK_TRANSFER_BLOCK = 0x01
|
||||||
|
} ncm_data_interface_protocol_code_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Table 6.2 Class-Specific Request Codes for Network Control Model subclass
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
NCM_SET_ETHERNET_MULTICAST_FILTERS = 0x40,
|
||||||
|
NCM_SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER = 0x41,
|
||||||
|
NCM_GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER = 0x42,
|
||||||
|
NCM_SET_ETHERNET_PACKET_FILTER = 0x43,
|
||||||
|
NCM_GET_ETHERNET_STATISTIC = 0x44,
|
||||||
|
NCM_GET_NTB_PARAMETERS = 0x80,
|
||||||
|
NCM_GET_NET_ADDRESS = 0x81,
|
||||||
|
NCM_SET_NET_ADDRESS = 0x82,
|
||||||
|
NCM_GET_NTB_FORMAT = 0x83,
|
||||||
|
NCM_SET_NTB_FORMAT = 0x84,
|
||||||
|
NCM_GET_NTB_INPUT_SIZE = 0x85,
|
||||||
|
NCM_SET_NTB_INPUT_SIZE = 0x86,
|
||||||
|
NCM_GET_MAX_DATAGRAM_SIZE = 0x87,
|
||||||
|
NCM_SET_MAX_DATAGRAM_SIZE = 0x88,
|
||||||
|
NCM_GET_CRC_MODE = 0x89,
|
||||||
|
NCM_SET_CRC_MODE = 0x8A,
|
||||||
|
} ncm_request_code_t;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -197,25 +197,33 @@ static void ncm_start_tx(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct ecm_notify_struct ncm_notify_connected =
|
static struct ecm_notify_struct ncm_notify_connected =
|
||||||
{
|
{
|
||||||
.header = {
|
.header = {
|
||||||
.bmRequestType = 0xA1,
|
.bmRequestType_bit = {
|
||||||
.bRequest = 0 /* NETWORK_CONNECTION aka NetworkConnection */,
|
.recipient = TUSB_REQ_RCPT_INTERFACE,
|
||||||
|
.type = TUSB_REQ_TYPE_CLASS,
|
||||||
|
.direction = TUSB_DIR_IN
|
||||||
|
},
|
||||||
|
.bRequest = CDC_NOTIF_NETWORK_CONNECTION,
|
||||||
.wValue = 1 /* Connected */,
|
.wValue = 1 /* Connected */,
|
||||||
.wLength = 0,
|
.wLength = 0,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct ecm_notify_struct ncm_notify_speed_change =
|
static struct ecm_notify_struct ncm_notify_speed_change =
|
||||||
{
|
{
|
||||||
.header = {
|
.header = {
|
||||||
.bmRequestType = 0xA1,
|
.bmRequestType_bit = {
|
||||||
.bRequest = 0x2A /* CONNECTION_SPEED_CHANGE aka ConnectionSpeedChange */,
|
.recipient = TUSB_REQ_RCPT_INTERFACE,
|
||||||
|
.type = TUSB_REQ_TYPE_CLASS,
|
||||||
|
.direction = TUSB_DIR_IN
|
||||||
|
},
|
||||||
|
.bRequest = CDC_NOTIF_CONNECTION_SPEED_CHANGE,
|
||||||
.wLength = 8,
|
.wLength = 8,
|
||||||
},
|
},
|
||||||
.downlink = 10000000,
|
.downlink = 10000000,
|
||||||
.uplink = 10000000,
|
.uplink = 10000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
void tud_network_recv_renew(void)
|
void tud_network_recv_renew(void)
|
||||||
{
|
{
|
||||||
@ -381,7 +389,7 @@ bool netd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t
|
|||||||
case TUSB_REQ_TYPE_CLASS:
|
case TUSB_REQ_TYPE_CLASS:
|
||||||
TU_VERIFY (ncm_interface.itf_num == request->wIndex);
|
TU_VERIFY (ncm_interface.itf_num == request->wIndex);
|
||||||
|
|
||||||
if (0x80 /* GET_NTB_PARAMETERS */ == request->bRequest)
|
if (NCM_GET_NTB_PARAMETERS == request->bRequest)
|
||||||
{
|
{
|
||||||
tud_control_xfer(rhport, request, (void*)&ntb_parameters, sizeof(ntb_parameters));
|
tud_control_xfer(rhport, request, (void*)&ntb_parameters, sizeof(ntb_parameters));
|
||||||
}
|
}
|
||||||
@ -418,7 +426,9 @@ static void handle_incoming_datagram(uint32_t len)
|
|||||||
ncm_interface.num_datagrams = 0;
|
ncm_interface.num_datagrams = 0;
|
||||||
ncm_interface.ndp = ndp;
|
ncm_interface.ndp = ndp;
|
||||||
for (int i = 0; i < num_datagrams && ndp->datagram[i].wDatagramIndex && ndp->datagram[i].wDatagramLength; i++)
|
for (int i = 0; i < num_datagrams && ndp->datagram[i].wDatagramIndex && ndp->datagram[i].wDatagramLength; i++)
|
||||||
|
{
|
||||||
ncm_interface.num_datagrams++;
|
ncm_interface.num_datagrams++;
|
||||||
|
}
|
||||||
|
|
||||||
tud_network_recv_renew();
|
tud_network_recv_renew();
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,8 @@
|
|||||||
#error "Cannot enable both ECM_RNDIS and NCM network drivers"
|
#error "Cannot enable both ECM_RNDIS and NCM network drivers"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "ncm.h"
|
||||||
|
|
||||||
/* declared here, NOT in usb_descriptors.c, so that the driver can intelligently ZLP as needed */
|
/* declared here, NOT in usb_descriptors.c, so that the driver can intelligently ZLP as needed */
|
||||||
#define CFG_TUD_NET_ENDPOINT_SIZE (TUD_OPT_HIGH_SPEED ? 512 : 64)
|
#define CFG_TUD_NET_ENDPOINT_SIZE (TUD_OPT_HIGH_SPEED ? 512 : 64)
|
||||||
|
|
||||||
|
@ -827,16 +827,16 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb
|
|||||||
5, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_HEADER, U16_TO_U8S_LE(0x0110),\
|
5, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_HEADER, U16_TO_U8S_LE(0x0110),\
|
||||||
/* CDC-NCM Union */\
|
/* CDC-NCM Union */\
|
||||||
5, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_UNION, _itfnum, (uint8_t)((_itfnum) + 1),\
|
5, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_UNION, _itfnum, (uint8_t)((_itfnum) + 1),\
|
||||||
/* CDC-ECM Functional Descriptor */\
|
/* CDC-NCM Functional Descriptor */\
|
||||||
13, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_ETHERNET_NETWORKING, _mac_stridx, 0, 0, 0, 0, U16_TO_U8S_LE(_maxsegmentsize), U16_TO_U8S_LE(0), 0, \
|
13, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_ETHERNET_NETWORKING, _mac_stridx, 0, 0, 0, 0, U16_TO_U8S_LE(_maxsegmentsize), U16_TO_U8S_LE(0), 0, \
|
||||||
/* CDC-ECM Functional Descriptor */\
|
/* CDC-NCM Functional Descriptor */\
|
||||||
6, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_NCM, U16_TO_U8S_LE(0x0100), 0, \
|
6, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_NCM, U16_TO_U8S_LE(0x0100), 0, \
|
||||||
/* Endpoint Notification */\
|
/* Endpoint Notification */\
|
||||||
7, TUSB_DESC_ENDPOINT, _ep_notif, TUSB_XFER_INTERRUPT, U16_TO_U8S_LE(_ep_notif_size), 50,\
|
7, TUSB_DESC_ENDPOINT, _ep_notif, TUSB_XFER_INTERRUPT, U16_TO_U8S_LE(_ep_notif_size), 50,\
|
||||||
/* CDC Data Interface (default inactive) */\
|
/* CDC Data Interface (default inactive) */\
|
||||||
9, TUSB_DESC_INTERFACE, (uint8_t)((_itfnum)+1), 0, 0, TUSB_CLASS_CDC_DATA, 0, 1, 0,\
|
9, TUSB_DESC_INTERFACE, (uint8_t)((_itfnum)+1), 0, 0, TUSB_CLASS_CDC_DATA, 0, NCM_DATA_PROTOCOL_NETWORK_TRANSFER_BLOCK, 0,\
|
||||||
/* CDC Data Interface (alternative active) */\
|
/* CDC Data Interface (alternative active) */\
|
||||||
9, TUSB_DESC_INTERFACE, (uint8_t)((_itfnum)+1), 1, 2, TUSB_CLASS_CDC_DATA, 0, 1, 0,\
|
9, TUSB_DESC_INTERFACE, (uint8_t)((_itfnum)+1), 1, 2, TUSB_CLASS_CDC_DATA, 0, NCM_DATA_PROTOCOL_NETWORK_TRANSFER_BLOCK, 0,\
|
||||||
/* Endpoint In */\
|
/* Endpoint In */\
|
||||||
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
|
7, TUSB_DESC_ENDPOINT, _epin, TUSB_XFER_BULK, U16_TO_U8S_LE(_epsize), 0,\
|
||||||
/* Endpoint Out */\
|
/* Endpoint Out */\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user