Skip to content

Commit de30bd1

Browse files
sakumisuRbb666
authored andcommitted
update(cherryusb): update to v1.4.3
Signed-off-by: sakumisu <[email protected]>
1 parent 180fb2b commit de30bd1

File tree

94 files changed

+8718
-558
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+8718
-558
lines changed

components/drivers/usb/cherryusb/Kconfig

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,9 @@ if RT_USING_CHERRYUSB
125125
config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM
126126
bool "cdc_acm"
127127
config RT_CHERRYUSB_DEVICE_TEMPLATE_MSC
128-
bool "msc"
128+
bool "msc_ram"
129+
config RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
130+
bool "msc_blkdev"
129131
config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_KEYBOARD
130132
bool "hid_keyboard"
131133
config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSE

components/drivers/usb/cherryusb/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<a href="./README.md">English</a>
1313
</p>
1414

15-
CherryUSB is a tiny, beautiful and portable USB host and device stack for embedded system with USB IP.
15+
CherryUSB is a tiny and beautiful, high performance and portable USB host and device stack for embedded system with USB IP.
1616

1717
![CherryUSB](CherryUSB.svg)
1818

@@ -103,7 +103,7 @@ CherryUSB Host Stack has the following functions:
103103
- Automatic loading of supported Class drivers
104104
- Support blocking transfers and asynchronous transfers
105105
- Support Composite Device
106-
- Multi-level HUB support, expandable up to 7 levels(Testing hub with 10 ports works well,only support dwc2 and ehci now)
106+
- Multi-level HUB support, expandable up to 7 levels(Testing hub with 10 ports works well,only support dwc2/ehci/xhci/rp2040)
107107
- Support Communication Device Class (CDC_ACM, CDC_ECM)
108108
- Support Human Interface Device (HID)
109109
- Support Mass Storage Class (MSC)
@@ -197,12 +197,12 @@ USB basic concepts and how the CherryUSB Device stack is implemented, see [Cherr
197197
|Artinchip | d12x/d13x/d21x | aic/ehci/ohci |[luban-lite](https://gitee.com/artinchip/luban-lite)|<= latest | Long-term |
198198
|Espressif | esp32s2/esp32s3/esp32p4 | dwc2 |[esp32_repo](https://github.com/CherryUSB/cherryusb_esp32)|<= latest | Long-term |
199199
|NXP | mcx | kinetis/chipidea/ehci |[nxp_mcx_repo](https://github.com/CherryUSB/cherryusb_mcx)|<= latest | Long-term |
200-
|Kendryte | k230 | dwc2 |[k230_repo](https://github.com/CherryUSB/canmv_k230)|v1.2.0 | Long-term |
200+
|Kendryte | k230 | dwc2 |[k230_repo](https://github.com/CherryUSB/k230_sdk)|v1.2.0 | Long-term |
201+
|Raspberry pi | rp2040/rp2350 | rp2040 |[pico-examples](https://github.com/CherryUSB/pico-examples)|<= latest | Long-term |
201202
|AllwinnerTech | F1C100S/F1C200S | musb |[cherryusb_rtt_f1c100s](https://github.com/CherryUSB/cherryusb_rtt_f1c100s)|<= latest | the same with musb |
202203
|Bekencorp | bk7256/bk7258 | musb |[bk_idk](https://github.com/CherryUSB/bk_idk)| v0.7.0 | the same with musb |
203204
|Sophgo | cv18xx | dwc2 |[cvi_alios_open](https://github.com/CherryUSB/cvi_alios_open)| v0.7.0 | TBD |
204205
|WCH | CH32V307/ch58x | ch32_usbfs/ch32_usbhs/ch58x |[wch_repo](https://github.com/CherryUSB/cherryusb_wch)|<= v0.10.2 | TBD |
205-
|Raspberry pi | rp2040 | rp2040 |[pico-examples](https://github.com/CherryUSB/pico-examples)|<= v0.10.2 | No more updated |
206206

207207
## Package Support
208208

components/drivers/usb/cherryusb/README_zh.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<a href="./README.md">English</a>
1313
</p>
1414

15-
CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统(带 USB IP) USB 主从协议栈。
15+
CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统(带 USB IP)的高性能 USB 主从协议栈。
1616

1717
![CherryUSB](CherryUSB.svg)
1818

@@ -103,7 +103,7 @@ CherryUSB Host 协议栈当前实现以下功能:
103103
- 自动加载支持的Class 驱动
104104
- 支持阻塞式传输和异步传输
105105
- 支持复合设备
106-
- 支持多级 HUB,最高可拓展到 7 级(目前测试 1拖 10 没有问题,当前仅支持 dwc2ehci)
106+
- 支持多级 HUB,最高可拓展到 7 级(目前测试 1拖 10 没有问题,仅支持 dwc2/ehci/xhci/rp2040)
107107
- 支持 Communication Device Class (CDC_ACM, CDC_ECM)
108108
- 支持 Human Interface Device (HID)
109109
- 支持 Mass Storage Class (MSC)
@@ -198,12 +198,12 @@ CherryUSB 快速入门、USB 基本概念,API 手册,Class 基本概念和
198198
|Artinchip | d12x/d13x/d21x | aic/ehci/ohci |[luban-lite](https://gitee.com/artinchip/luban-lite)|<= latest | Long-term |
199199
|Espressif | esp32s2/esp32s3/esp32p4 | dwc2 |[esp32_repo](https://github.com/CherryUSB/cherryusb_esp32)|<= latest | Long-term |
200200
|NXP | mcx | kinetis/chipidea/ehci |[nxp_mcx_repo](https://github.com/CherryUSB/cherryusb_mcx)|<= latest | Long-term |
201-
|Kendryte | k230 | dwc2 |[k230_repo](https://github.com/CherryUSB/canmv_k230)|v1.2.0 | Long-term |
201+
|Kendryte | k230 | dwc2 |[k230_repo](https://github.com/CherryUSB/k230_sdk)|v1.2.0 | Long-term |
202+
|Raspberry pi | rp2040/rp2350 | rp2040 |[pico-examples](https://github.com/CherryUSB/pico-examples)|<= latest | Long-term |
202203
|AllwinnerTech | F1C100S/F1C200S | musb |[cherryusb_rtt_f1c100s](https://github.com/CherryUSB/cherryusb_rtt_f1c100s)|<= latest | the same with musb |
203204
|Bekencorp | bk7256/bk7258 | musb |[bk_idk](https://github.com/CherryUSB/bk_idk)| v0.7.0 | the same with musb |
204205
|Sophgo | cv18xx | dwc2 |[cvi_alios_open](https://github.com/CherryUSB/cvi_alios_open)| v0.7.0 | TBD |
205206
|WCH | CH32V307/ch58x | ch32_usbfs/ch32_usbhs/ch58x |[wch_repo](https://github.com/CherryUSB/cherryusb_wch)|<= v0.10.2 | TBD |
206-
|Raspberry pi | rp2040 | rp2040 |[pico-examples](https://github.com/CherryUSB/pico-examples)|<= v0.10.2 | No more updated |
207207

208208
## 软件包支持
209209

components/drivers/usb/cherryusb/SConscript

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
from building import *
22

33
cwd = GetCurrentDir()
4-
path = [cwd + '/common']
4+
path = [cwd]
5+
path += [cwd + '/common']
56
path += [cwd + '/core']
7+
path += [cwd + '/class/hub']
68
path += [cwd + '/class/cdc']
79
path += [cwd + '/class/msc']
810
path += [cwd + '/class/hid']
911
path += [cwd + '/class/audio']
1012
path += [cwd + '/class/video']
1113
path += [cwd + '/class/wireless']
14+
path += [cwd + '/class/midi']
15+
path += [cwd + '/class/adb']
1216
path += [cwd + '/class/dfu']
1317
path += [cwd + '/class/midi']
1418
path += [cwd + '/class/vendor/net']
1519
path += [cwd + '/class/vendor/serial']
20+
path += [cwd + '/class/vendor/wifi']
1621
src = []
1722

1823
LIBS = []
@@ -109,13 +114,15 @@ if GetDepend(['RT_CHERRYUSB_DEVICE']):
109114
src += Glob('class/cdc/usbd_cdc_ecm.c')
110115
if GetDepend(['RT_CHERRYUSB_DEVICE_CDC_NCM']):
111116
src += Glob('class/cdc/usbd_cdc_ncm.c')
112-
if GetDepend(['RT_CHERRYUSB_USING_DFU']):
117+
if GetDepend(['RT_CHERRYUSB_DEVICE_DFU']):
113118
src += Glob('class/dfu/usbd_dfu.c')
114119

115120
if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM']):
116121
src += Glob('demo/cdc_acm_template.c')
117122
if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_MSC']):
118123
src += Glob('demo/msc_ram_template.c')
124+
if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV']):
125+
src += Glob('platform/rtthread/usbd_msc_blkdev.c')
119126
if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSE']):
120127
src += Glob('demo/hid_mouse_template.c')
121128
if GetDepend(['RT_CHERRYUSB_DEVICE_TEMPLATE_HID_KEYBOARD']):
@@ -147,7 +154,6 @@ if GetDepend(['RT_CHERRYUSB_DEVICE']):
147154

148155
# USB HOST
149156
if GetDepend(['RT_CHERRYUSB_HOST']):
150-
path += [cwd + '/class/hub']
151157
src += Glob('core/usbh_core.c')
152158
src += Glob('class/hub/usbh_hub.c')
153159
src += Glob('osal/usb_osal_rtthread.c')
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
VERSION_MAJOR = 1
22
VERSION_MINOR = 4
3-
PATCHLEVEL = 2
3+
PATCHLEVEL = 3
44
VERSION_TWEAK = 0
55
EXTRAVERSION = 0

components/drivers/usb/cherryusb/cherryusb.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
# set(CONFIG_CHERRYUSB_HOST_HCD "ehci_xxx")
2727

2828
list(APPEND cherryusb_incs
29+
${CMAKE_CURRENT_LIST_DIR}
2930
${CMAKE_CURRENT_LIST_DIR}/common
3031
${CMAKE_CURRENT_LIST_DIR}/core
3132
${CMAKE_CURRENT_LIST_DIR}/class/hub
@@ -37,6 +38,7 @@ ${CMAKE_CURRENT_LIST_DIR}/class/video
3738
${CMAKE_CURRENT_LIST_DIR}/class/wireless
3839
${CMAKE_CURRENT_LIST_DIR}/class/midi
3940
${CMAKE_CURRENT_LIST_DIR}/class/adb
41+
${CMAKE_CURRENT_LIST_DIR}/class/dfu
4042
${CMAKE_CURRENT_LIST_DIR}/class/vendor/net
4143
${CMAKE_CURRENT_LIST_DIR}/class/vendor/serial
4244
${CMAKE_CURRENT_LIST_DIR}/class/vendor/wifi
@@ -116,6 +118,8 @@ if(CONFIG_CHERRYUSB_DEVICE)
116118
elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "aic")
117119
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/aic/usb_dc_aic.c)
118120
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/aic/usb_dc_aic_ll.c)
121+
elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "rp2040")
122+
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/rp2040/usb_dc_rp2040.c)
119123
endif()
120124
endif()
121125

@@ -270,6 +274,8 @@ if(CONFIG_CHERRYUSB_HOST)
270274
elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "kinetis_mcx")
271275
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_hc_kinetis.c)
272276
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_glue_mcx.c)
277+
elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "rp2040")
278+
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/rp2040/usb_hc_rp2040.c)
273279
endif()
274280
endif()
275281

components/drivers/usb/cherryusb/cherryusb_config_template.h

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
/* Enable print with color */
1818
#define CONFIG_USB_PRINTF_COLOR_ENABLE
1919

20-
/* data align size when use dma */
20+
/* data align size when use dma or use dcache */
2121
#ifndef CONFIG_USB_ALIGN_SIZE
2222
#define CONFIG_USB_ALIGN_SIZE 4
2323
#endif
2424

25+
//#define CONFIG_USB_DCACHE_ENABLE
26+
2527
/* attribute data into no cache ram */
2628
#define USB_NOCACHE_RAM_SECTION __attribute__((section(".noncacheable")))
2729

@@ -46,6 +48,20 @@
4648
/* Enable test mode */
4749
// #define CONFIG_USBDEV_TEST_MODE
4850

51+
/* enable advance desc register api */
52+
// CONFIG_USBDEV_ADVANCE_DESC
53+
54+
/* move ep0 setup handler from isr to thread */
55+
// #define CONFIG_USBDEV_EP0_THREAD
56+
57+
#ifndef CONFIG_USBDEV_EP0_PRIO
58+
#define CONFIG_USBDEV_EP0_PRIO 4
59+
#endif
60+
61+
#ifndef CONFIG_USBDEV_EP0_STACKSIZE
62+
#define CONFIG_USBDEV_EP0_STACKSIZE 2048
63+
#endif
64+
4965
#ifndef CONFIG_USBDEV_MSC_MAX_LUN
5066
#define CONFIG_USBDEV_MSC_MAX_LUN 1
5167
#endif
@@ -276,4 +292,26 @@
276292
/* ---------------- MUSB Configuration ---------------- */
277293
// #define CONFIG_USB_MUSB_SUNXI
278294

295+
/* ================ USB Dcache Configuration ==================*/
296+
297+
#ifdef CONFIG_USB_DCACHE_ENABLE
298+
/* style 1*/
299+
// void usb_dcache_clean(uintptr_t addr, uint32_t size);
300+
// void usb_dcache_invalidate(uintptr_t addr, uint32_t size);
301+
// void usb_dcache_flush(uintptr_t addr, uint32_t size);
302+
303+
/* style 2*/
304+
// #define usb_dcache_clean(addr, size)
305+
// #define usb_dcache_invalidate(addr, size)
306+
// #define usb_dcache_flush(addr, size)
307+
#endif
308+
309+
#ifndef usb_phyaddr2ramaddr
310+
#define usb_phyaddr2ramaddr(addr) (addr)
311+
#endif
312+
313+
#ifndef usb_ramaddr2phyaddr
314+
#define usb_ramaddr2phyaddr(addr) (addr)
315+
#endif
316+
279317
#endif

components/drivers/usb/cherryusb/class/audio/usb_audio.h

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,66 @@ struct audio_cs_ep_ep_general_descriptor {
822822
0x00, /* wLockDelay */ \
823823
0x00
824824

825+
#define AUDIO_AS_FEEDBACK_DESCRIPTOR_INIT(bInterfaceNumber, bTerminalLink, bNrChannels, bSubFrameSize, bBitResolution, bEndpointAddress, wMaxPacketSize, bInterval, bFeedbackEndpointAddress, ...) \
826+
0x09, /* bLength */ \
827+
USB_DESCRIPTOR_TYPE_INTERFACE, /* bDescriptorType */ \
828+
bInterfaceNumber, /* bInterfaceNumber */ \
829+
0x00, /* bAlternateSetting */ \
830+
0x00, /* bNumEndpoints */ \
831+
USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */ \
832+
AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */ \
833+
AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */ \
834+
0x00, /* iInterface */ \
835+
0x09, /* bLength */ \
836+
USB_DESCRIPTOR_TYPE_INTERFACE, /* bDescriptorType */ \
837+
bInterfaceNumber, /* bInterfaceNumber */ \
838+
0x01, /* bAlternateSetting */ \
839+
0x02, /* bNumEndpoints */ \
840+
USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */ \
841+
AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */ \
842+
AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */ \
843+
0x00, /* iInterface */ \
844+
0x07, /* bLength */ \
845+
AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ \
846+
AUDIO_STREAMING_GENERAL, /* bDescriptorSubtype */ \
847+
bTerminalLink, /* bTerminalLink : Unit ID of the Output Terminal*/ \
848+
0x01, /* bDelay */ \
849+
WBVAL(AUDIO_FORMAT_PCM), /* wFormatTag : AUDIO_FORMAT_PCM */ \
850+
0x08 + PP_NARG(__VA_ARGS__), /* bLength */ \
851+
AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */ \
852+
AUDIO_STREAMING_FORMAT_TYPE, /* bDescriptorSubtype */ \
853+
AUDIO_FORMAT_TYPE_I, /* bFormatType */ \
854+
bNrChannels, /* bNrChannels */ \
855+
bSubFrameSize, /* bSubFrameSize : Bytes per audio subframe */ \
856+
bBitResolution, /* bBitResolution : bits per sample */ \
857+
(PP_NARG(__VA_ARGS__)/3), /* bSamFreqType : only one frequency supported */ \
858+
__VA_ARGS__, /* tSamFreq : Audio sampling frequency coded on 3 bytes */ \
859+
0x09, /* bLength */ \
860+
USB_DESCRIPTOR_TYPE_ENDPOINT, /* bDescriptorType */ \
861+
bEndpointAddress, /* bEndpointAddress : IN endpoint 1 */ \
862+
0x05, /* bmAttributes */ \
863+
WBVAL(wMaxPacketSize), /* wMaxPacketSize */ \
864+
bInterval, /* bInterval : one packet per frame */ \
865+
0x00, /* bRefresh */ \
866+
bFeedbackEndpointAddress, /* bSynchAddress */ \
867+
0x07, /* bLength */ \
868+
AUDIO_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */ \
869+
AUDIO_ENDPOINT_GENERAL, /* bDescriptor */ \
870+
AUDIO_EP_CONTROL_SAMPLING_FEQ, /* bmAttributes AUDIO_SAMPLING_FREQ_CONTROL */ \
871+
0x00, /* bLockDelayUnits */ \
872+
0x00, /* wLockDelay */ \
873+
0x00, \
874+
0x09, /* bLength */ \
875+
USB_DESCRIPTOR_TYPE_ENDPOINT, /* bDescriptorType */ \
876+
bFeedbackEndpointAddress, /* bFeedbackEndpointAddress Revise Dir to bEndpointAddress */ \
877+
0x11, /* bmAttributes: TransferType=Isochronous SyncType=None EndpointType=Feedback */ \
878+
WBVAL(4), /* XXXX wMaxPacketSize in Bytes */ \
879+
bInterval, /* bInterval */ \
880+
0x03, /* bRefresh, 8ms */ \
881+
0x00 /* bSynchAddress */
882+
825883
#define AUDIO_AS_DESCRIPTOR_INIT_LEN(n) (0x09 + 0x09 + 0x07 + 0x08 + 3 * n + 0x09 + 0x07)
884+
#define AUDIO_AS_FEEDBACK_DESCRIPTOR_INIT_LEN(n) (0x09 + 0x09 + 0x07 + 0x08 + 3 * n + 0x09 + 0x07 + 0x09)
826885

827886
#define AUDIO_AS_ALTSETTING_DESCRIPTOR_INIT(bInterfaceNumber, bAlternateSetting, bTerminalLink, bNrChannels, bSubFrameSize, bBitResolution, bEndpointAddress, bmAttributes, wMaxPacketSize, bInterval, ...) \
828887
0x09, /* bLength */ \
@@ -1281,4 +1340,19 @@ struct audio_v2_control_range3_param_block {
12811340
#define AUDIO_SAMPLE_FREQ_4B(frq) (uint8_t)(frq), (uint8_t)((frq >> 8)), \
12821341
(uint8_t)((frq >> 16)), (uint8_t)((frq >> 24))
12831342

1343+
/* format 10.14 */
1344+
#define AUDIO_FREQ_TO_FEEDBACK_FS(freq) ((freq << 10) / 1000)
1345+
#define AUDIO_FEEDBACK_TO_BUF_FS(buf, feedback) \
1346+
buf[0] = ((feedback << 4) & 0xFFU); \
1347+
buf[1] = (((feedback << 4) >> 8U) & 0xFFU); \
1348+
buf[2] = (((feedback << 4) >> 16U) & 0xFFU)
1349+
1350+
/* format 16.16 */
1351+
#define AUDIO_FREQ_TO_FEEDBACK_HS(freq) ((freq << 13) / 1000)
1352+
#define AUDIO_FEEDBACK_TO_BUF_HS(buf, feedback) \
1353+
buf[0] = (((feedback & 0x00001FFFu) << 3) & 0xFFu); \
1354+
buf[1] = ((((feedback & 0x00001FFFu) << 3) >> 8) & 0xFFu); \
1355+
buf[2] = (((feedback & 0x01FFE000u) >> 13) & 0xFFu); \
1356+
buf[3] = (((feedback & 0x01FFE000u) >> 21) & 0xFFu)
1357+
12841358
#endif /* USB_AUDIO_H */

components/drivers/usb/cherryusb/class/cdc/usbh_cdc_ecm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,12 @@ static int usbh_cdc_ecm_disconnect(struct usbh_hubport *hport, uint8_t intf)
231231
return ret;
232232
}
233233

234-
void usbh_cdc_ecm_rx_thread(void *argument)
234+
void usbh_cdc_ecm_rx_thread(CONFIG_USB_OSAL_THREAD_SET_ARGV)
235235
{
236236
uint32_t g_cdc_ecm_rx_length;
237237
int ret;
238238

239-
(void)argument;
239+
(void)CONFIG_USB_OSAL_THREAD_GET_ARGV;
240240
USB_LOG_INFO("Create cdc ecm rx thread\r\n");
241241
// clang-format off
242242
find_class:

components/drivers/usb/cherryusb/class/cdc/usbh_cdc_ecm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void usbh_cdc_ecm_stop(struct usbh_cdc_ecm *cdc_ecm_class);
4141
uint8_t *usbh_cdc_ecm_get_eth_txbuf(void);
4242
int usbh_cdc_ecm_eth_output(uint32_t buflen);
4343
void usbh_cdc_ecm_eth_input(uint8_t *buf, uint32_t buflen);
44-
void usbh_cdc_ecm_rx_thread(void *argument);
44+
void usbh_cdc_ecm_rx_thread(CONFIG_USB_OSAL_THREAD_SET_ARGV);
4545

4646
#ifdef __cplusplus
4747
}

0 commit comments

Comments
 (0)