Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
10de75fa
R
rt-thread
项目概览
BaiXuePrincess
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
未验证
提交
10de75fa
编写于
9月 03, 2018
作者:
B
Bernard Xiong
提交者:
GitHub
9月 03, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1744 from liruncong/master
消除usb结构体gcc编译时的相关警告
上级
1ae80486
d3c08afd
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
389 addition
and
304 deletion
+389
-304
components/drivers/usb/usbdevice/class/cdc_vcom.c
components/drivers/usb/usbdevice/class/cdc_vcom.c
+82
-62
components/drivers/usb/usbdevice/class/ecm.c
components/drivers/usb/usbdevice/class/ecm.c
+79
-61
components/drivers/usb/usbdevice/class/hid.c
components/drivers/usb/usbdevice/class/hid.c
+56
-47
components/drivers/usb/usbdevice/class/mstorage.c
components/drivers/usb/usbdevice/class/mstorage.c
+41
-33
components/drivers/usb/usbdevice/class/rndis.c
components/drivers/usb/usbdevice/class/rndis.c
+82
-62
components/drivers/usb/usbdevice/class/winusb.c
components/drivers/usb/usbdevice/class/winusb.c
+37
-29
components/drivers/usb/usbdevice/core/core.c
components/drivers/usb/usbdevice/core/core.c
+2
-2
components/drivers/usb/usbdevice/core/usbdevice.c
components/drivers/usb/usbdevice/core/usbdevice.c
+7
-5
components/drivers/usb/usbhost/core/hub.c
components/drivers/usb/usbhost/core/hub.c
+3
-3
未找到文件。
components/drivers/usb/usbdevice/class/cdc_vcom.c
浏览文件 @
10de75fa
...
...
@@ -133,83 +133,103 @@ const static struct ucdc_comm_descriptor _comm_desc =
{
#ifdef RT_USB_DEVICE_COMPOSITE
/* Interface Association Descriptor */
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x02
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_V25TER
,
0x00
,
{
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x02
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_V25TER
,
0x00
,
},
#endif
/* Interface Descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x01
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_V25TER
,
0x00
,
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x01
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_V25TER
,
0x00
,
},
/* Header Functional Descriptor */
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_HEADER
,
0x0110
,
{
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_HEADER
,
0x0110
,
},
/* Call Management Functional Descriptor */
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_CALL_MGMT
,
0x00
,
USB_DYNAMIC
,
{
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_CALL_MGMT
,
0x00
,
USB_DYNAMIC
,
},
/* Abstract Control Management Functional Descriptor */
0x04
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_ACM
,
0x02
,
{
0x04
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_ACM
,
0x02
,
},
/* Union Functional Descriptor */
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_UNION
,
USB_DYNAMIC
,
USB_DYNAMIC
,
{
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_UNION
,
USB_DYNAMIC
,
USB_DYNAMIC
,
},
/* Endpoint Descriptor */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_INT
,
0x08
,
0xFF
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_INT
,
0x08
,
0xFF
,
},
};
/* data interface descriptor */
const
static
struct
ucdc_data_descriptor
_data_desc
=
{
/* interface descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x02
,
USB_CDC_CLASS_DATA
,
0x00
,
0x00
,
0x00
,
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x02
,
USB_CDC_CLASS_DATA
,
0x00
,
0x00
,
0x00
,
},
/* endpoint, bulk out */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_OUT
,
USB_EP_ATTR_BULK
,
USB_CDC_BUFSIZE
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_OUT
,
USB_EP_ATTR_BULK
,
USB_CDC_BUFSIZE
,
0x00
,
},
/* endpoint, bulk in */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_CDC_BUFSIZE
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_CDC_BUFSIZE
,
0x00
,
},
};
static
char
serno
[
_SER_NO_LEN
+
1
]
=
{
'\0'
};
...
...
components/drivers/usb/usbdevice/class/ecm.c
浏览文件 @
10de75fa
...
...
@@ -80,52 +80,64 @@ const static struct ucdc_eth_descriptor _comm_desc =
{
#ifdef RT_USB_DEVICE_COMPOSITE
/* Interface Association Descriptor */
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x02
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ETH
,
USB_CDC_PROTOCOL_NONE
,
0x00
,
{
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x02
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ETH
,
USB_CDC_PROTOCOL_NONE
,
0x00
,
},
#endif
/* Interface Descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x01
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ETH
,
USB_CDC_PROTOCOL_NONE
,
0x00
,
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x01
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ETH
,
USB_CDC_PROTOCOL_NONE
,
0x00
,
},
/* Header Functional Descriptor */
sizeof
(
struct
ucdc_header_descriptor
),
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_HEADER
,
0x0110
,
{
sizeof
(
struct
ucdc_header_descriptor
),
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_HEADER
,
0x0110
,
},
/* Union Functional Descriptor */
sizeof
(
struct
ucdc_union_descriptor
),
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_UNION
,
USB_DYNAMIC
,
USB_DYNAMIC
,
{
sizeof
(
struct
ucdc_union_descriptor
),
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_UNION
,
USB_DYNAMIC
,
USB_DYNAMIC
,
},
/* Abstract Control Management Functional Descriptor */
sizeof
(
struct
ucdc_enet_descriptor
),
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_ETH
,
USB_STRING_SERIAL_INDEX
,
{
0
,
0
,
0
,
0
},
USB_ETH_MTU
,
0x00
,
0x00
,
{
sizeof
(
struct
ucdc_enet_descriptor
),
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_ETH
,
USB_STRING_SERIAL_INDEX
,
{
0
,
0
,
0
,
0
},
USB_ETH_MTU
,
0x00
,
0x00
,
},
/* Endpoint Descriptor */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_IN
|
USB_DYNAMIC
,
USB_EP_ATTR_INT
,
0x08
,
0xFF
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_IN
|
USB_DYNAMIC
,
USB_EP_ATTR_INT
,
0x08
,
0xFF
,
},
};
/* data interface descriptor */
...
...
@@ -133,29 +145,35 @@ ALIGN(4)
const
static
struct
ucdc_data_descriptor
_data_desc
=
{
/* interface descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x02
,
USB_CDC_CLASS_DATA
,
USB_CDC_SUBCLASS_ETH
,
0x00
,
0x00
,
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x02
,
USB_CDC_CLASS_DATA
,
USB_CDC_SUBCLASS_ETH
,
0x00
,
0x00
,
},
/* endpoint, bulk out */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_OUT
|
USB_DYNAMIC
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_OUT
|
USB_DYNAMIC
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
},
/* endpoint, bulk in */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
},
};
ALIGN
(
4
)
...
...
components/drivers/usb/usbdevice/class/hid.c
浏览文件 @
10de75fa
...
...
@@ -275,71 +275,85 @@ const static struct uhid_comm_descriptor _hid_comm_desc =
{
#ifdef RT_USB_DEVICE_COMPOSITE
/* Interface Association Descriptor */
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x01
,
0x03
,
/* bInterfaceClass: HID */
{
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x01
,
0x03
,
/* bInterfaceClass: HID */
#if defined(RT_USB_DEVICE_HID_KEYBOARD)||defined(RT_USB_DEVICE_HID_MOUSE)
USB_HID_SUBCLASS_BOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
USB_HID_SUBCLASS_BOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
#else
USB_HID_SUBCLASS_NOBOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
USB_HID_SUBCLASS_NOBOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
#endif
#if !defined(RT_USB_DEVICE_HID_KEYBOARD)||!defined(RT_USB_DEVICE_HID_MOUSE)||!defined(RT_USB_DEVICE_HID_MEDIA)
USB_HID_PROTOCOL_NONE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
USB_HID_PROTOCOL_NONE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#elif !defined(RT_USB_DEVICE_HID_MOUSE)
USB_HID_PROTOCOL_KEYBOARD
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
USB_HID_PROTOCOL_KEYBOARD
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#else
USB_HID_PROTOCOL_MOUSE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
USB_HID_PROTOCOL_MOUSE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#endif
0x00
,
0x00
,
#endif
},
/* Interface Descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
/* bInterfaceNumber: Number of Interface */
0x00
,
/* bAlternateSetting: Alternate setting */
0x02
,
/* bNumEndpoints */
0x03
,
/* bInterfaceClass: HID */
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
/* bInterfaceNumber: Number of Interface */
0x00
,
/* bAlternateSetting: Alternate setting */
0x02
,
/* bNumEndpoints */
0x03
,
/* bInterfaceClass: HID */
#if defined(RT_USB_DEVICE_HID_KEYBOARD)||defined(RT_USB_DEVICE_HID_MOUSE)
USB_HID_SUBCLASS_BOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
USB_HID_SUBCLASS_BOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
#else
USB_HID_SUBCLASS_NOBOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
USB_HID_SUBCLASS_NOBOOT
,
/* bInterfaceSubClass : 1=BOOT, 0=no boot */
#endif
#if !defined(RT_USB_DEVICE_HID_KEYBOARD)||!defined(RT_USB_DEVICE_HID_MOUSE)||!defined(RT_USB_DEVICE_HID_MEDIA)
USB_HID_PROTOCOL_NONE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
USB_HID_PROTOCOL_NONE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#elif !defined(RT_USB_DEVICE_HID_MOUSE)
USB_HID_PROTOCOL_KEYBOARD
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
USB_HID_PROTOCOL_KEYBOARD
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#else
USB_HID_PROTOCOL_MOUSE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
USB_HID_PROTOCOL_MOUSE
,
/* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
#endif
0
,
/* iInterface: Index of string descriptor */
0
,
/* iInterface: Index of string descriptor */
},
/* HID Descriptor */
HID_DESCRIPTOR_SIZE
,
/* bLength: HID Descriptor size */
HID_DESCRIPTOR_TYPE
,
/* bDescriptorType: HID */
0x0110
,
/* bcdHID: HID Class Spec release number */
0x00
,
/* bCountryCode: Hardware target country */
0x01
,
/* bNumDescriptors: Number of HID class descriptors to follow */
0x22
,
/* bDescriptorType */
sizeof
(
_report_desc
),
/* wItemLength: Total length of Report descriptor */
{
HID_DESCRIPTOR_SIZE
,
/* bLength: HID Descriptor size */
HID_DESCRIPTOR_TYPE
,
/* bDescriptorType: HID */
0x0110
,
/* bcdHID: HID Class Spec release number */
0x00
,
/* bCountryCode: Hardware target country */
0x01
,
/* bNumDescriptors: Number of HID class descriptors to follow */
{
{
0x22
,
/* bDescriptorType */
sizeof
(
_report_desc
),
/* wItemLength: Total length of Report descriptor */
},
},
},
/* Endpoint Descriptor IN */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_INT
,
0x40
,
0x01
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_INT
,
0x40
,
0x01
,
},
/* Endpoint Descriptor OUT */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_OUT
,
USB_EP_ATTR_INT
,
0x40
,
0x01
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_OUT
,
USB_EP_ATTR_INT
,
0x40
,
0x01
,
},
};
...
...
@@ -480,12 +494,7 @@ static rt_err_t _interface_handler(ufunction_t func, ureq_t setup)
rt_usbd_ep0_read
(
func
->
device
,
data
->
report_buf
,
setup
->
wLength
,
_hid_set_report_callback
);
break
;
case
USB_HID_REQ_SET_IDLE
:
{
int
duration
=
(
setup
->
wValue
>>
8
);
int
report_id
=
(
setup
->
wValue
&
0xFF
);
dcd_ep0_send_status
(
func
->
device
->
dcd
);
}
break
;
case
USB_HID_REQ_SET_PROTOCOL
:
data
->
protocol
=
setup
->
wValue
;
...
...
components/drivers/usb/usbdevice/class/mstorage.c
浏览文件 @
10de75fa
...
...
@@ -120,38 +120,46 @@ const static struct umass_descriptor _mass_desc =
{
#ifdef RT_USB_DEVICE_COMPOSITE
/* Interface Association Descriptor */
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x01
,
USB_CLASS_MASS_STORAGE
,
0x06
,
0x50
,
0x00
,
{
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x01
,
USB_CLASS_MASS_STORAGE
,
0x06
,
0x50
,
0x00
,
},
#endif
USB_DESC_LENGTH_INTERFACE
,
//bLength;
USB_DESC_TYPE_INTERFACE
,
//type;
USB_DYNAMIC
,
//bInterfaceNumber;
0x00
,
//bAlternateSetting;
0x02
,
//bNumEndpoints
USB_CLASS_MASS_STORAGE
,
//bInterfaceClass;
0x06
,
//bInterfaceSubClass;
0x50
,
//bInterfaceProtocol;
0x00
,
//iInterface;
USB_DESC_LENGTH_ENDPOINT
,
//bLength;
USB_DESC_TYPE_ENDPOINT
,
//type;
USB_DYNAMIC
|
USB_DIR_OUT
,
//bEndpointAddress;
USB_EP_ATTR_BULK
,
//bmAttributes;
USB_DYNAMIC
,
//wMaxPacketSize;
0x00
,
//bInterval;
USB_DESC_LENGTH_ENDPOINT
,
//bLength;
USB_DESC_TYPE_ENDPOINT
,
//type;
USB_DYNAMIC
|
USB_DIR_IN
,
//bEndpointAddress;
USB_EP_ATTR_BULK
,
//bmAttributes;
USB_DYNAMIC
,
//wMaxPacketSize;
0x00
,
//bInterval;
{
USB_DESC_LENGTH_INTERFACE
,
//bLength;
USB_DESC_TYPE_INTERFACE
,
//type;
USB_DYNAMIC
,
//bInterfaceNumber;
0x00
,
//bAlternateSetting;
0x02
,
//bNumEndpoints
USB_CLASS_MASS_STORAGE
,
//bInterfaceClass;
0x06
,
//bInterfaceSubClass;
0x50
,
//bInterfaceProtocol;
0x00
,
//iInterface;
},
{
USB_DESC_LENGTH_ENDPOINT
,
//bLength;
USB_DESC_TYPE_ENDPOINT
,
//type;
USB_DYNAMIC
|
USB_DIR_OUT
,
//bEndpointAddress;
USB_EP_ATTR_BULK
,
//bmAttributes;
USB_DYNAMIC
,
//wMaxPacketSize;
0x00
,
//bInterval;
},
{
USB_DESC_LENGTH_ENDPOINT
,
//bLength;
USB_DESC_TYPE_ENDPOINT
,
//type;
USB_DYNAMIC
|
USB_DIR_IN
,
//bEndpointAddress;
USB_EP_ATTR_BULK
,
//bmAttributes;
USB_DYNAMIC
,
//wMaxPacketSize;
0x00
,
//bInterval;
},
};
const
static
char
*
_ustring
[]
=
...
...
@@ -751,8 +759,8 @@ static rt_bool_t _cbw_verify(ufunction_t func, struct scsi_cmd* cmd,
return
RT_FALSE
;
}
if
((
cbw
->
dflags
&
USB_DIR_IN
)
&&
cmd
->
dir
==
DIR_OUT
||
!
(
cbw
->
dflags
&
USB_DIR_IN
)
&&
cmd
->
dir
==
DIR_IN
)
if
((
(
cbw
->
dflags
&
USB_DIR_IN
)
&&
(
cmd
->
dir
==
DIR_OUT
))
||
(
!
(
cbw
->
dflags
&
USB_DIR_IN
)
&&
(
cmd
->
dir
==
DIR_IN
))
)
{
rt_kprintf
(
"dir error
\n
"
);
return
RT_FALSE
;
...
...
components/drivers/usb/usbdevice/class/rndis.c
浏览文件 @
10de75fa
...
...
@@ -106,54 +106,68 @@ const static struct ucdc_comm_descriptor _comm_desc =
{
#ifdef RT_USB_DEVICE_COMPOSITE
/* Interface Association Descriptor */
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x02
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_VENDOR
,
0x00
,
{
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x02
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_VENDOR
,
0x00
,
},
#endif
/* Interface Descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x01
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_VENDOR
,
0x00
,
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x01
,
USB_CDC_CLASS_COMM
,
USB_CDC_SUBCLASS_ACM
,
USB_CDC_PROTOCOL_VENDOR
,
0x00
,
},
/* Header Functional Descriptor */
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_HEADER
,
0x0110
,
{
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_HEADER
,
0x0110
,
},
/* Call Management Functional Descriptor */
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_CALL_MGMT
,
0x00
,
USB_DYNAMIC
,
{
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_CALL_MGMT
,
0x00
,
USB_DYNAMIC
,
},
/* Abstract Control Management Functional Descriptor */
0x04
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_ACM
,
0x02
,
{
0x04
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_ACM
,
0x02
,
},
/* Union Functional Descriptor */
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_UNION
,
USB_DYNAMIC
,
USB_DYNAMIC
,
{
0x05
,
USB_CDC_CS_INTERFACE
,
USB_CDC_SCS_UNION
,
USB_DYNAMIC
,
USB_DYNAMIC
,
},
/* Endpoint Descriptor */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_IN
|
USB_DYNAMIC
,
USB_EP_ATTR_INT
,
0x08
,
0x0A
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_IN
|
USB_DYNAMIC
,
USB_EP_ATTR_INT
,
0x08
,
0x0A
,
},
};
/* data interface descriptor */
...
...
@@ -161,29 +175,35 @@ ALIGN(4)
const
static
struct
ucdc_data_descriptor
_data_desc
=
{
/* interface descriptor */
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x02
,
USB_CDC_CLASS_DATA
,
0x00
,
0x00
,
0x00
,
{
USB_DESC_LENGTH_INTERFACE
,
USB_DESC_TYPE_INTERFACE
,
USB_DYNAMIC
,
0x00
,
0x02
,
USB_CDC_CLASS_DATA
,
0x00
,
0x00
,
0x00
,
},
/* endpoint, bulk out */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_OUT
|
USB_DYNAMIC
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DIR_OUT
|
USB_DYNAMIC
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
},
/* endpoint, bulk in */
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
},
};
ALIGN
(
4
)
...
...
components/drivers/usb/usbdevice/class/winusb.c
浏览文件 @
10de75fa
...
...
@@ -58,39 +58,47 @@ struct winusb_descriptor _winusb_desc =
{
#ifdef RT_USB_DEVICE_COMPOSITE
/* Interface Association Descriptor */
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x01
,
0xFF
,
0x00
,
0x00
,
0x00
,
{
USB_DESC_LENGTH_IAD
,
USB_DESC_TYPE_IAD
,
USB_DYNAMIC
,
0x01
,
0xFF
,
0x00
,
0x00
,
0x00
,
},
#endif
/*interface descriptor*/
USB_DESC_LENGTH_INTERFACE
,
//bLength;
USB_DESC_TYPE_INTERFACE
,
//type;
USB_DYNAMIC
,
//bInterfaceNumber;
0x00
,
//bAlternateSetting;
0x02
,
//bNumEndpoints
0xFF
,
//bInterfaceClass;
0x00
,
//bInterfaceSubClass;
0x00
,
//bInterfaceProtocol;
0x00
,
//iInterface;
{
USB_DESC_LENGTH_INTERFACE
,
//bLength;
USB_DESC_TYPE_INTERFACE
,
//type;
USB_DYNAMIC
,
//bInterfaceNumber;
0x00
,
//bAlternateSetting;
0x02
,
//bNumEndpoints
0xFF
,
//bInterfaceClass;
0x00
,
//bInterfaceSubClass;
0x00
,
//bInterfaceProtocol;
0x00
,
//iInterface;
},
/*endpoint descriptor*/
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_OUT
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_OUT
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
},
/*endpoint descriptor*/
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
{
USB_DESC_LENGTH_ENDPOINT
,
USB_DESC_TYPE_ENDPOINT
,
USB_DYNAMIC
|
USB_DIR_IN
,
USB_EP_ATTR_BULK
,
USB_DYNAMIC
,
0x00
,
},
};
...
...
components/drivers/usb/usbdevice/core/core.c
浏览文件 @
10de75fa
...
...
@@ -36,7 +36,7 @@ static rt_list_t device_list;
static
rt_size_t
rt_usbd_ep_write
(
udevice_t
device
,
uep_t
ep
,
void
*
buffer
,
rt_size_t
size
);
static
rt_size_t
rt_usbd_ep_read_prepare
(
udevice_t
device
,
uep_t
ep
,
void
*
buffer
,
rt_size_t
size
);
static
rt_err_t
rt_usbd_ep_assign
(
udevice_t
device
,
uep_t
ep
);
static
rt_err_t
rt_usbd_ep_unassign
(
udevice_t
device
,
uep_t
ep
);
rt_err_t
rt_usbd_ep_unassign
(
udevice_t
device
,
uep_t
ep
);
/**
* This function will handle get_device_descriptor bRequest.
...
...
@@ -1865,7 +1865,7 @@ static rt_err_t rt_usbd_ep_assign(udevice_t device, uep_t ep)
return
-
RT_ERROR
;
}
static
rt_err_t
rt_usbd_ep_unassign
(
udevice_t
device
,
uep_t
ep
)
rt_err_t
rt_usbd_ep_unassign
(
udevice_t
device
,
uep_t
ep
)
{
RT_ASSERT
(
device
!=
RT_NULL
);
RT_ASSERT
(
device
->
dcd
!=
RT_NULL
);
...
...
components/drivers/usb/usbdevice/core/usbdevice.c
浏览文件 @
10de75fa
...
...
@@ -78,11 +78,13 @@ static struct usb_qualifier_descriptor dev_qualifier =
struct
usb_os_comp_id_descriptor
usb_comp_id_desc
=
{
//head section
USB_DYNAMIC
,
0x0100
,
0x04
,
USB_DYNAMIC
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
},
{
USB_DYNAMIC
,
0x0100
,
0x04
,
USB_DYNAMIC
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
},
},
};
static
rt_list_t
class_list
;
int
rt_usbd_class_list_init
(
void
)
...
...
components/drivers/usb/usbhost/core/hub.c
浏览文件 @
10de75fa
...
...
@@ -249,7 +249,7 @@ rt_err_t rt_usbh_hub_clear_port_feature(uhub_t hub, rt_uint16_t port, rt_uint16_
if
(
hub
->
is_roothub
)
{
root_hub_ctrl
(
hub
->
hcd
,
port
,
RH_CLEAR_PORT_FEATURE
,
(
void
*
)
feature
);
(
void
*
)
(
rt_uint32_t
)
feature
);
return
RT_EOK
;
}
...
...
@@ -290,7 +290,7 @@ rt_err_t rt_usbh_hub_set_port_feature(uhub_t hub, rt_uint16_t port,
if
(
hub
->
is_roothub
)
{
root_hub_ctrl
(
hub
->
hcd
,
port
,
RH_SET_PORT_FEATURE
,
(
void
*
)
feature
);
(
void
*
)
(
rt_uint32_t
)
feature
);
return
RT_EOK
;
}
...
...
@@ -413,7 +413,7 @@ static rt_err_t rt_usbh_hub_port_change(uhub_t hub)
RT_DEBUG_LOG
(
RT_DEBUG_USB
,
(
"port %d status 0x%x
\n
"
,
i
+
1
,
pstatus
));
/* check port status change */
if
(
(
pstatus
&
PORT_CCSC
)
)
if
(
pstatus
&
PORT_CCSC
)
{
/* clear port status change feature */
rt_usbh_hub_clear_port_feature
(
hub
,
i
+
1
,
PORT_FEAT_C_CONNECTION
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录