Why is USB0 endpoint interrupt handler only written to handle endpoint 0 status when 8 end points are/were configured in USBLIB project (usbdenum.c)?
Seemingly It can not be guaranteed INT control status always occurs on endpoint 0. Verified multiple bulk or HID client end points may connect via multiple launched instances of the CDC class driver. Windows plug & play manager handles USB client requests using the same vendor UUID via multiple instances. The endpoint enumeration process simply bumps the CDC address to the next available from calls to (lmusbdll.dll / lib).
Existing Tivaware usblib INT function does not seem to be written to handle each enumerated (8) endpoints return status. Does not the added handlers (below) seem necessary for return status occurring from any other endpoint connected above endpoint 0?
void USBDeviceEnumHandler(tDCDInstance *pDevInstance) { uint32_t ui32EPStatus, ui32DataSize; // // Get the end point 0 status. // ui32EPStatus = MAP_USBEndpointStatus(USB0_BASE, USB_EP_0);
// Perhaps following are required for other enumerate endpoints returning USB status??? //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_1); //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_2); //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_3); //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_4); //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_5); //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_6); //ui32EPStatus |= MAP_USBEndpointStatus(USB0_BASE, USB_EP_7);