summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2026-06-04 21:57:42 +0800
committersakumisu <[email protected]>2026-06-04 21:57:42 +0800
commitaf1601563b237c23df94d3b3656d9ec194815cee (patch)
tree52f6532feee8beeb9152f82c093b7881a0fa6778
parentb5789f4e687145839598677b53efd62f9cd3a209 (diff)
update(class/serial): add err log when rx overflow
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--class/serial/usbh_serial.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/class/serial/usbh_serial.c b/class/serial/usbh_serial.c
index 3e17b12f..2ea09d70 100644
--- a/class/serial/usbh_serial.c
+++ b/class/serial/usbh_serial.c
@@ -73,6 +73,7 @@ static void usbh_serial_free(struct usbh_serial *serial)
static void usbh_serial_callback(void *arg, int nbytes)
{
struct usbh_serial *serial = (struct usbh_serial *)arg;
+ uint32_t free_space;
int ret;
if (nbytes < 0) {
@@ -103,6 +104,11 @@ static void usbh_serial_callback(void *arg, int nbytes)
return;
}
+ free_space = usb_ringbuffer_get_free(&serial->rx_rb);
+ if (free_space < (nbytes - serial->driver->ignore_rx_header)) {
+ USB_LOG_ERR("serial rx ringbuffer overflow, free space: %u, rx size: %u\n", free_space, (nbytes - serial->driver->ignore_rx_header));
+ }
+
usb_ringbuffer_write(&serial->rx_rb,
&serial->iobuffer[(serial->rx_buf_index ? USBH_SERIAL_RX2_NOCACHE_OFFSET : USBH_SERIAL_RX_NOCACHE_OFFSET) + serial->driver->ignore_rx_header],
(nbytes - serial->driver->ignore_rx_header));