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
}
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) {
uint32_t cnt = CDCACM_PACKET_SIZE;
if (cnt > len)
cnt = len;
for (size_t offset = 0; offset < len; offset += CDCACM_PACKET_SIZE) {
const size_t count = MIN(len - offset, CDCACM_PACKET_SIZE);
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);
data += cnt;
len -= cnt;
}
}