Replies: 3 comments 2 replies
-
Before trying to use FIFO based API, how did you configure IF that's indeed what you need you can start with #1064 |
Beta Was this translation helpful? Give feedback.
-
In fact you can try dwc2 driver, esp32s3 should be supported
#1064 should working as not much thing has changed. |
Beta Was this translation helpful? Give feedback.
-
I'm not very familiar to dwc2 internal structure, for me it's rather a check to ensure there is enough space in the FIFO to prevent one packet divided by half, than talking about he last packet. You may reach the original author @duempel for more details.
Fo the moment the need of high bandwidth is rather rare, the stack is not in the phase of performance optimisation. (That's why #1064 was stalled, besides Re-split FIFO each time an endpoint is opened needs some complexe routine which yield little. And ISO endpoints open at runtime so if there are no more FIFO space the driver will fail (the new dcd_edpt_iso_alloc() will help in this case but only supported by uac2 class and stm32_fsdev driver at the moment) |
Beta Was this translation helpful? Give feedback.
-
I was investigating why the current implementation for esp32s3 only achieved up to 550kiB/s transmission instead of the possible 1MB/s (as cdc device).
I noticed, that the current cdc device, does not use the FIFO based API, see here:
tinyusb/src/class/cdc/cdc_device.c
Line 201 in 723e21a
Does that mean, we are supposed to modify the class drivers, here cdc device, if we want to use the FIFO based API?
Currently, even if dcd_edpt_xfer_fifo were implemented, it would not be called.
Beta Was this translation helpful? Give feedback.
All reactions