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> |
||
|---|---|---|
| .. | ||
| audio | ||
| dfu | ||
| hid | ||
| netusb | ||
| bluetooth.c | ||
| bt_h4.c | ||
| cdc_acm.c | ||
| CMakeLists.txt | ||
| Kconfig | ||
| Kconfig.bt | ||
| Kconfig.cdc | ||
| Kconfig.msc | ||
| Kconfig.template.composite_device_number | ||
| Kconfig.test | ||
| loopback.c | ||
| msc.c | ||