Skip to content

Commit af16015

Browse files
committed
update(class/serial): add err log when rx overflow
Signed-off-by: sakumisu <1203593632@qq.com>
1 parent b5789f4 commit af16015

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

class/serial/usbh_serial.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ static void usbh_serial_free(struct usbh_serial *serial)
7373
static void usbh_serial_callback(void *arg, int nbytes)
7474
{
7575
struct usbh_serial *serial = (struct usbh_serial *)arg;
76+
uint32_t free_space;
7677
int ret;
7778

7879
if (nbytes < 0) {
@@ -103,6 +104,11 @@ static void usbh_serial_callback(void *arg, int nbytes)
103104
return;
104105
}
105106

107+
free_space = usb_ringbuffer_get_free(&serial->rx_rb);
108+
if (free_space < (nbytes - serial->driver->ignore_rx_header)) {
109+
USB_LOG_ERR("serial rx ringbuffer overflow, free space: %u, rx size: %u\n", free_space, (nbytes - serial->driver->ignore_rx_header));
110+
}
111+
106112
usb_ringbuffer_write(&serial->rx_rb,
107113
&serial->iobuffer[(serial->rx_buf_index ? USBH_SERIAL_RX2_NOCACHE_OFFSET : USBH_SERIAL_RX_NOCACHE_OFFSET) + serial->driver->ignore_rx_header],
108114
(nbytes - serial->driver->ignore_rx_header));

0 commit comments

Comments
 (0)