The USB Host stack works perfectly well on RT 4.1.1
When using the same identical code on RT 5.0.2 I noticed that now the device never enumerates. The fault is not in the driver routine which always loop, but is due to the fact that now the Endpoint IN interrupt routine is never reached (HCD_HC_IN_IRQHandle ).
Why thi shappens is a bt difficult at the momnet to understand.
ANy sugegstion is welcome.
/* Handle Host channel Interrupt */
if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_HCINT))
{
interrupt = USB_HC_ReadInterrupt(hhcd->Instance);
for (i = 0U; i < hhcd->Init.Host_channels; i++)
{
if ((interrupt & (1UL << (i & 0xFU))) != 0U)
{
if ((USBx_HC(i)->HCCHAR & USB_OTG_HCCHAR_EPDIR) == USB_OTG_HCCHAR_EPDIR)
{
** HCD_HC_IN_IRQHandler(hhcd, (uint8_t)i);**
}
else
{
HCD_HC_OUT_IRQHandler(hhcd, (uint8_t)i);
}
}
}
__HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_HCINT);
}