maxikrie commented on PR #7558: URL: https://github.com/apache/nuttx/pull/7558#issuecomment-6428063239
@acassis I think this can be closed as superseded. The receive loop it changes (`cdcacm_recvpacket()` calling `cdcuart_rxflowcontrol()` and breaking out) no longer exists: RX now goes through `cdcuart_recvbuf()` / `uart_recvchars_dma()` (or `cdcacm_rcvpacket()` with `CONFIG_CDCACM_DISABLE_RXBUF`). `cdcuart_rxflowcontrol()` sends a SerialState notification only when DSR actually changes, and a packet the serial buffer can't take stays in `rxpending` with its offset, so nothing is dropped. Checked on an nRF52840-DK, master b9d1d6a834, `nrf52840-dk:cdcacm` + `SERIAL_TERMIOS`, `SERIAL_IFLOWCONTROL`, `CDCACM_IFLOWCONTROL`, `examples/flowc` as receiver (64-byte reads every 100 ms), the host writing the full flowc pattern (97,280 bytes) to the CDC ACM port as fast as it can: all received, no errors, at the receiver's rate (166 s). With GDB breakpoints on `cdcuart_rxflowcontrol()` and `cdcacm_serialstate()` during a 2,850-byte transfer: one upper crossing -> one SerialState with DSR cleared, one lower -> one with DSR set. (The CMake build of examples/flowc was broken; fixed in apache/nuttx-apps#3927.) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
