usb: Fixed RX buffer min size

Closes https://github.com/espressif/esp-idf/issues/9040
pull/9179/head
Tomas Rezucha 2022-06-01 20:36:03 +02:00
rodzic b264d46d20
commit d1d9b8f8f6
3 zmienionych plików z 6 dodań i 9 usunięć

Wyświetl plik

@ -125,6 +125,7 @@ menu "TinyUSB Stack"
depends on TINYUSB_MSC_ENABLED depends on TINYUSB_MSC_ENABLED
int "MSC FIFO size" int "MSC FIFO size"
default 512 default 512
range 64 10000
help help
MSC FIFO size, in bytes. MSC FIFO size, in bytes.
endmenu # "Massive Storage Class" endmenu # "Massive Storage Class"
@ -148,6 +149,7 @@ menu "TinyUSB Stack"
depends on TINYUSB_CDC_ENABLED depends on TINYUSB_CDC_ENABLED
int "CDC FIFO size of RX channel" int "CDC FIFO size of RX channel"
default 64 default 64
range 64 10000
help help
CDC FIFO size of RX channel. CDC FIFO size of RX channel.

Wyświetl plik

@ -79,7 +79,6 @@ void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts)
} }
} }
/* Invoked when CDC interface received data from host */ /* Invoked when CDC interface received data from host */
void tud_cdc_rx_cb(uint8_t itf) void tud_cdc_rx_cb(uint8_t itf)
{ {
@ -157,8 +156,6 @@ void tud_cdc_rx_wanted_cb(uint8_t itf, char wanted_char)
} }
} }
esp_err_t tinyusb_cdcacm_register_callback(tinyusb_cdcacm_itf_t itf, esp_err_t tinyusb_cdcacm_register_callback(tinyusb_cdcacm_itf_t itf,
cdcacm_event_type_t event_type, cdcacm_event_type_t event_type,
tusb_cdcacm_callback_t callback) tusb_cdcacm_callback_t callback)
@ -188,7 +185,6 @@ esp_err_t tinyusb_cdcacm_register_callback(tinyusb_cdcacm_itf_t itf,
} }
} }
esp_err_t tinyusb_cdcacm_unregister_callback(tinyusb_cdcacm_itf_t itf, esp_err_t tinyusb_cdcacm_unregister_callback(tinyusb_cdcacm_itf_t itf,
cdcacm_event_type_t event_type) cdcacm_event_type_t event_type)
{ {
@ -273,7 +269,6 @@ esp_err_t tinyusb_cdcacm_read(tinyusb_cdcacm_itf_t itf, uint8_t *out_buf, size_t
return ESP_OK; return ESP_OK;
} }
size_t tinyusb_cdcacm_write_queue_char(tinyusb_cdcacm_itf_t itf, char ch) size_t tinyusb_cdcacm_write_queue_char(tinyusb_cdcacm_itf_t itf, char ch)
{ {
if (!get_acm(itf)) { // non-initialized if (!get_acm(itf)) { // non-initialized
@ -282,13 +277,13 @@ size_t tinyusb_cdcacm_write_queue_char(tinyusb_cdcacm_itf_t itf, char ch)
return tud_cdc_n_write_char(itf, ch); return tud_cdc_n_write_char(itf, ch);
} }
size_t tinyusb_cdcacm_write_queue(tinyusb_cdcacm_itf_t itf, const uint8_t *in_buf, size_t in_size) size_t tinyusb_cdcacm_write_queue(tinyusb_cdcacm_itf_t itf, const uint8_t *in_buf, size_t in_size)
{ {
if (!get_acm(itf)) { // non-initialized if (!get_acm(itf)) { // non-initialized
return 0; return 0;
} }
return tud_cdc_n_write(itf, in_buf, in_size); const uint32_t size_available = tud_cdc_n_write_available(itf);
return tud_cdc_n_write(itf, in_buf, (in_size < size_available) ? in_size : size_available);
} }
static uint32_t tud_cdc_n_write_occupied(tinyusb_cdcacm_itf_t itf) static uint32_t tud_cdc_n_write_occupied(tinyusb_cdcacm_itf_t itf)

Wyświetl plik

@ -179,12 +179,12 @@ uint8_t const descriptor_cfg_kconfig[] = {
# if CFG_TUD_CDC # if CFG_TUD_CDC
// Interface number, string index, EP notification address and size, EP data address (out, in) and size. // Interface number, string index, EP notification address and size, EP data address (out, in) and size.
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, 64), TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, CFG_TUD_CDC_EP_BUFSIZE),
# endif # endif
# if CFG_TUD_CDC > 1 # if CFG_TUD_CDC > 1
// Interface number, string index, EP notification address and size, EP data address (out, in) and size. // Interface number, string index, EP notification address and size, EP data address (out, in) and size.
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC1, 4, 0x83, 8, 0x04, 0x84, 64), TUD_CDC_DESCRIPTOR(ITF_NUM_CDC1, 4, 0x83, 8, 0x04, 0x84, CFG_TUD_CDC_EP_BUFSIZE),
# endif # endif
# if CFG_TUD_MSC # if CFG_TUD_MSC