According to the UART API documentation, implementation must block when the transceiver is full. For CDC ACM UART, TX ringbuffer can be considered as transceiver buffer/FIFO. Blocking when the USB subsystem is not ready is considered highly undesirable behavior. Blocking may also be undesirable when CDC ACM UART is used as a logging backend. Change the behavior of CDC ACM poll out to: - Block if the TX ring buffer is full, hw_flow_control property is enabled, and called from a non-ISR context. - Do not block if the USB subsystem is not ready, poll out implementation is called from an ISR context, or hw_flow_control property is disabled. Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no> |
||
|---|---|---|
| .. | ||
| class | ||
| bos.c | ||
| CMakeLists.txt | ||
| Kconfig | ||
| os_desc.c | ||
| os_desc.h | ||
| usb_descriptor.c | ||
| usb_descriptor.h | ||
| usb_device.c | ||
| usb_transfer.c | ||
| usb_transfer.h | ||
| usb_work_q.c | ||
| usb_work_q.h | ||