Closed Huckies closed 1 year ago
Hello @Huckies than you for the bug report.
I couldn't reproduce this issue, so I need some more information in order to help you debug this. Could you please provide the following?:
idf.py menconfig
and set Component config->TinyUSB Stack->TinyUSB log level
to 3. Then run idf.py flash monitor
tud_hid_n_report()
)Thanks!
And just an FYI: with tud_hid_n_ready()
you check readiness of an interface rather than an endpoint.
Closing due to lack of feedback. Please feel free to reopen
Environment
git describe --tags
to find it): v4.4.1xtensa-esp32-elf-gcc --version
to find it): xtensa-esp32-elf-gcc (crosstool-NG esp-2021r2-patch3) 8.4.0Problem Description
In device mode, some interrupt IN endpoints can get stuck if multiple endpoints are fed simultaneously.
Expected Behavior
Multiple HID endpoints works independently, they can be loaded by separate tasks and data is fetched according to the host.
Actual Behavior
If multiple (each endpoint is confirmed "ready" using
tud_hid_n_ready()
) endpoints are loaded in a single task, some of them can get "unready" forever.Information that might help
The OTG peripheral is initialized by calling
I've also refer to the TinyUSB example that set the task invoking
tud_task()
with a higher priority than the one loading endpoints. Due to the ESP32-S3 TRM describes the OTG peripheral in one stroke and inexpertness on usb registers, I'm unable to check thedcd_esp32sx.c
.I leave a log below, seems that there is some "crosstalk" between endpoints.
It's a definite issue, please reply if more information is needed. I'm looking forward to the solution
log.txt .