blocked: can't use ESP32S3 native USB controller with tusb CDC drivers: "usb_osglue_*_int is not multicore capable"
Posted: Tue Dec 13, 2022 1:44 pm
I'm designing the ESP32-S3 into a product and have made significant progress.
I am at the point where I need to use the built-in hardware USB (pins 19/20) as the USB controller, in CDC ACM mode. (I cannot use the UART-based USB because that serial port is in-use for a different peripheral.)
I've followed instructions here...
https://docs.espressif.com/projects/esp ... evice.html
...and have tried to get started by building the example at...
examples/peripherals/usb/device/tusb_serial_device
However, when I attempt to build the example project, I get:
components/esp_system/port/soc/esp32s3/usb_console.c:69:1: error: static assertion failed: "usb_osglue_*_int is not multicore capable"
69 | _Static_assert(SOC_CPU_CORES_NUM == 1, "usb_osglue_*_int is not multicore capable");
(as well as some other errors related to esp_usb_console_read_available)
Via Google it looks as though this problem was discussed quite a while ago, but there has been silence lately on the topic. This port is critical to my design and is one reason why the S3 was selected.
I'm running ESP-IDF v5.1-dev-2283-gc92f2394f2-dirty
Can you please point me to a branch where the USB support is implemented, so that I might be unblocked? Or is there some workaround that I can be made aware of? (The S3 is way overkill computationally for my needs and I only need to run on a single core, if that helps.)
To be super-clear, the entirety of esp-idf is an amazing development resource and I appreciate the great work you folks have done. Thank you in advance.
I am at the point where I need to use the built-in hardware USB (pins 19/20) as the USB controller, in CDC ACM mode. (I cannot use the UART-based USB because that serial port is in-use for a different peripheral.)
I've followed instructions here...
https://docs.espressif.com/projects/esp ... evice.html
...and have tried to get started by building the example at...
examples/peripherals/usb/device/tusb_serial_device
However, when I attempt to build the example project, I get:
components/esp_system/port/soc/esp32s3/usb_console.c:69:1: error: static assertion failed: "usb_osglue_*_int is not multicore capable"
69 | _Static_assert(SOC_CPU_CORES_NUM == 1, "usb_osglue_*_int is not multicore capable");
(as well as some other errors related to esp_usb_console_read_available)
Via Google it looks as though this problem was discussed quite a while ago, but there has been silence lately on the topic. This port is critical to my design and is one reason why the S3 was selected.
I'm running ESP-IDF v5.1-dev-2283-gc92f2394f2-dirty
Can you please point me to a branch where the USB support is implemented, so that I might be unblocked? Or is there some workaround that I can be made aware of? (The S3 is way overkill computationally for my needs and I only need to run on a single core, if that helps.)
To be super-clear, the entirety of esp-idf is an amazing development resource and I appreciate the great work you folks have done. Thank you in advance.