[components][drivers][usb][usb_device][cdc_vcom]: Add 'RT_VCOM_TX_TIMEOUT' to configure TX_TIMEOUT whick may block vcom tx thread for a long time. Add 'RT_VCOM_TASK_STK_SIZE', 'RT_VCOM_TX_USE_DMA', 'RT_VCOM_SERNO', 'RT_VCOM_SER_LEN', 'RT_VCOM_TX_TIMEOUT' to Kconfig
This commit is contained in:
parent
f97e19c509
commit
328a697c1d
|
@ -392,6 +392,23 @@ menu "Using USB"
|
||||||
bool "Enable to use device as winusb device"
|
bool "Enable to use device as winusb device"
|
||||||
default n
|
default n
|
||||||
endif
|
endif
|
||||||
|
if RT_USB_DEVICE_CDC
|
||||||
|
config RT_VCOM_TASK_STK_SIZE
|
||||||
|
int "virtual com thread stack size"
|
||||||
|
default 512
|
||||||
|
config RT_VCOM_TX_USE_DMA
|
||||||
|
bool "Enable to use dma for vcom tx"
|
||||||
|
default n
|
||||||
|
config RT_VCOM_SERNO
|
||||||
|
string "serial number of virtual com"
|
||||||
|
default "32021919830108"
|
||||||
|
config RT_VCOM_SER_LEN
|
||||||
|
int "serial number length of virtual com"
|
||||||
|
default 14
|
||||||
|
config RT_VCOM_TX_TIMEOUT
|
||||||
|
int "tx timeout(ticks) of virtual com"
|
||||||
|
default 1000
|
||||||
|
endif
|
||||||
if RT_USB_DEVICE_WINUSB
|
if RT_USB_DEVICE_WINUSB
|
||||||
config RT_WINUSB_GUID
|
config RT_WINUSB_GUID
|
||||||
string "Guid for winusb"
|
string "Guid for winusb"
|
||||||
|
|
|
@ -22,7 +22,12 @@
|
||||||
|
|
||||||
#ifdef RT_USB_DEVICE_CDC
|
#ifdef RT_USB_DEVICE_CDC
|
||||||
|
|
||||||
#define TX_TIMEOUT 1000
|
#ifdef RT_VCOM_TX_TIMEOUT
|
||||||
|
#define VCOM_TX_TIMEOUT RT_VCOM_TX_TIMEOUT
|
||||||
|
#else /*!RT_VCOM_TX_TIMEOUT*/
|
||||||
|
#define VCOM_TX_TIMEOUT 1000
|
||||||
|
#endif /*RT_VCOM_TX_TIMEOUT*/
|
||||||
|
|
||||||
#define CDC_RX_BUFSIZE 128
|
#define CDC_RX_BUFSIZE 128
|
||||||
#define CDC_MAX_PACKET_SIZE 64
|
#define CDC_MAX_PACKET_SIZE 64
|
||||||
#define VCOM_DEVICE "vcom"
|
#define VCOM_DEVICE "vcom"
|
||||||
|
@ -880,7 +885,7 @@ static void vcom_tx_thread_entry(void* parameter)
|
||||||
|
|
||||||
rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request);
|
rt_usbd_io_request(func->device, data->ep_in, &data->ep_in->request);
|
||||||
|
|
||||||
if (rt_completion_wait(&data->wait, TX_TIMEOUT) != RT_EOK)
|
if (rt_completion_wait(&data->wait, VCOM_TX_TIMEOUT) != RT_EOK)
|
||||||
{
|
{
|
||||||
RT_DEBUG_LOG(RT_DEBUG_USB, ("vcom tx timeout\n"));
|
RT_DEBUG_LOG(RT_DEBUG_USB, ("vcom tx timeout\n"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue