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]

Reply via email to