Hi
There are some configuration parameters in USB stack, so user can achieve smaller USB EHCI footprint.
Please see usb/host/source/include/host_cnfg.h
** Maximum number of allocated QH descriptors.
** MGCT: <option type="number"/>
*/
#ifndef USBCFG_EHCI_MAX_QH_DESCRS
#define USBCFG_EHCI_MAX_QH_DESCRS (8)
#endif
/*
** Maximum number of allocated QTD descriptors.
** MGCT: <option type="number"/>
*/
#ifndef USBCFG_EHCI_MAX_QTD_DESCRS
#define USBCFG_EHCI_MAX_QTD_DESCRS (16)
#endif
MAX_QH_DESCRS: set to number of pipes (endpoints) expected for EHCI.
MAX_QTD_DESCRS: set to number of transfers scheduled in the future.
One CDC class requiring 3 endpoints (2x RX/TX Bulk Transfer + 1x Interrupt), and you also need 2 for control transfer EP0.
For your case, CDC+CDC+CDC, you need 3+3+3=11 endpoints. You can set
USBCFG_EHCI_MAX_QH_DESCRS to 11 at least.
Please modify them and try it again. And let me know whether it helps
If this post is helpful, please mark correct or helpful, thank you very much
Regards
Daniel