Преглед на файлове

[Components][Drivers][USB Device]fix ep assign bug

uestczyh222 преди 7 години
родител
ревизия
4ca2337176
променени са 1 файла, в които са добавени 1 реда и са изтрити 1 реда
  1. 1 1
      components/drivers/usb/usbdevice/core/core.c

+ 1 - 1
components/drivers/usb/usbdevice/core/core.c

@@ -1845,7 +1845,7 @@ static rt_err_t rt_usbd_ep_assign(udevice_t device, uep_t ep)
     while(device->dcd->ep_pool[i].addr != 0xFF)
     while(device->dcd->ep_pool[i].addr != 0xFF)
     {
     {
         if(device->dcd->ep_pool[i].status == ID_UNASSIGNED && 
         if(device->dcd->ep_pool[i].status == ID_UNASSIGNED && 
-            ep->ep_desc->bmAttributes == device->dcd->ep_pool[i].type)
+            ep->ep_desc->bmAttributes == device->dcd->ep_pool[i].type && (EP_ADDRESS(ep) & 0x80) == device->dcd->ep_pool[i].dir)
         {
         {
             EP_ADDRESS(ep) |= device->dcd->ep_pool[i].addr;
             EP_ADDRESS(ep) |= device->dcd->ep_pool[i].addr;
             ep->id = &device->dcd->ep_pool[i];
             ep->id = &device->dcd->ep_pool[i];