Delete Adafruit's DCD, add stubs for missing DCD functions, use ESP32 core DCD

This commit is contained in:
2026-06-23 23:44:30 +00:00
parent 12b0d3c2c5
commit f4e7e6a64c
2 changed files with 53 additions and 0 deletions
+22
View File
@@ -1,3 +1,25 @@
Import("env")
import os
# Keep allow-multiple-definition for core TinyUSB symbol overlaps
env.Append(LINKFLAGS=["-Wl,--allow-multiple-definition"])
# Delete the Adafruit library's generic DCD so the ESP32 core's
# patched version from libarduino_tinyusb.a is used instead.
# We provide stubs (src/dcd_stubs.c) for the few ISO/SOF functions
# the ESP32 core's older DCD doesn't implement.
lib_path = os.path.join(
env.subst("$PROJECT_DIR"),
".pio", "libdeps", env.subst("$PIOENV"),
"Adafruit TinyUSB Library", "src"
)
dcd_path = os.path.join(lib_path, "portable", "synopsys", "dwc2", "dcd_dwc2.c")
backup = dcd_path + ".bak"
if os.path.exists(dcd_path):
# Rename .c -> .bak so the build system doesn't compile it
os.rename(dcd_path, backup)
print("[extra_script] Renamed dcd_dwc2.c -> dcd_dwc2.c.bak (using ESP32 core DCD + project stubs)")
else:
print("[extra_script] dcd_dwc2.c not found at:", dcd_path)