Просмотр исходного кода

fix rp2040 chapter 9 TD 9.6 test

hathach 4 лет назад
Родитель
Сommit
ab0c3e8dd0
2 измененных файлов с 9 добавлено и 7 удалено
  1. 5 1
      src/class/msc/msc_device.c
  2. 4 6
      src/portable/raspberrypi/rp2040/dcd_rp2040.c

+ 5 - 1
src/class/msc/msc_device.c

@@ -323,7 +323,11 @@ bool mscd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t
         if ( p_msc->stage == MSC_STAGE_CMD )
         {
           // part of reset recovery (probably due to invalid CBW) -> prepare for new command
-          TU_ASSERT( prepare_cbw(rhport, p_msc) );
+          // Note: skip if already queued previously
+          if ( usbd_edpt_ready(rhport, p_msc->ep_out) )
+          {
+            TU_ASSERT( prepare_cbw(rhport, p_msc) );
+          }
         }
       }
     }

+ 4 - 6
src/portable/raspberrypi/rp2040/dcd_rp2040.c

@@ -389,17 +389,15 @@ void dcd_remote_wakeup(uint8_t rhport)
 // disconnect by disabling internal pull-up resistor on D+/D-
 void dcd_disconnect(uint8_t rhport)
 {
-    pico_info("dcd_disconnect %d\n", rhport);
-    assert(rhport == 0);
-    usb_hw_clear->sie_ctrl = USB_SIE_CTRL_PULLUP_EN_BITS;
+  (void) rhport;
+  usb_hw_clear->sie_ctrl = USB_SIE_CTRL_PULLUP_EN_BITS;
 }
 
 // connect by enabling internal pull-up resistor on D+/D-
 void dcd_connect(uint8_t rhport)
 {
-    pico_info("dcd_connect %d\n", rhport);
-    assert(rhport == 0);
-    usb_hw_set->sie_ctrl = USB_SIE_CTRL_PULLUP_EN_BITS;
+  (void) rhport;
+  usb_hw_set->sie_ctrl = USB_SIE_CTRL_PULLUP_EN_BITS;
 }
 
 /*------------------------------------------------------------------*/