usb_serial: Refactored debug_uart_send_stdout() and cleaned up

This commit is contained in:
dragonmux 2022-08-18 23:40:39 +01:00 committed by Piotr Esden-Tempski
parent 3af03c0778
commit 13209385f8
1 changed files with 5 additions and 8 deletions

View File

@ -172,16 +172,13 @@ void usb_serial_set_config(usbd_device *dev, uint16_t value)
#endif #endif
} }
void debug_uart_send_stdout(const uint8_t *data, size_t len) void debug_uart_send_stdout(const uint8_t *const data, const size_t len)
{ {
while (len) { for (size_t offset = 0; offset < len; offset += CDCACM_PACKET_SIZE) {
uint32_t cnt = CDCACM_PACKET_SIZE; const size_t count = MIN(len - offset, CDCACM_PACKET_SIZE);
if (cnt > len)
cnt = len;
nvic_disable_irq(USB_IRQ); nvic_disable_irq(USB_IRQ);
cnt = usbd_ep_write_packet(usbdev, CDCACM_UART_ENDPOINT, data, cnt); /* XXX: Do we actually care if this fails? Possibly not.. */
usbd_ep_write_packet(usbdev, CDCACM_UART_ENDPOINT, data + offset, count);
nvic_enable_irq(USB_IRQ); nvic_enable_irq(USB_IRQ);
data += cnt;
len -= cnt;
} }
} }