From fb27ae96b0197d4f072d3e5b825c8ef132903a96 Mon Sep 17 00:00:00 2001 From: hathach Date: Sat, 7 Apr 2018 15:04:01 +0700 Subject: [PATCH] fix cdc_device flush send zero bytes --- tinyusb/class/cdc/cdc_device.c | 6 +++++- tinyusb/class/cdc/cdc_device.h | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tinyusb/class/cdc/cdc_device.c b/tinyusb/class/cdc/cdc_device.c index 4144dc018..f08f208ae 100644 --- a/tinyusb/class/cdc/cdc_device.c +++ b/tinyusb/class/cdc/cdc_device.c @@ -289,7 +289,11 @@ bool tud_n_cdc_flush (uint8_t rhport) VERIFY( !dcd_edpt_busy(rhport, edpt) ); uint16_t count = fifo_read_n(&_tx_ff, _tmp_tx_buf, sizeof(_tmp_tx_buf)); - TU_ASSERT( dcd_edpt_xfer(rhport, edpt, _tmp_tx_buf, count) ); + + if ( count ) + { + TU_ASSERT( dcd_edpt_xfer(rhport, edpt, _tmp_tx_buf, count) ); + } return true; } diff --git a/tinyusb/class/cdc/cdc_device.h b/tinyusb/class/cdc/cdc_device.h index 9fb8cc075..2fcf1abec 100644 --- a/tinyusb/class/cdc/cdc_device.h +++ b/tinyusb/class/cdc/cdc_device.h @@ -79,10 +79,10 @@ static inline uint32_t tud_cdc_write (void const* buffer, uint32_t bufsize) static inline bool tud_cdc_flush (void) { return tud_n_cdc_flush(0); } //--------------------------------------------------------------------+ -// APPLICATION CALLBACK API +// APPLICATION CALLBACK API (WEAK is optional) //--------------------------------------------------------------------+ //void tud_cdc_line_coding_changed_cb(uint8_t rhport, cdc_line_coding_t* p_line_coding); -void tud_cdc_rx_cb(uint8_t rhport); +void tud_cdc_rx_cb(uint8_t rhport) ATTR_WEAK; //--------------------------------------------------------------------+ // USBD-CLASS DRIVER API