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

pic32mz: Fix remote_wakeup without OS

Remote wakeup requires 10ms of delay when RESUME bit
is toggled.
It was covered for OS build.
For non-OS build simple delay based on board_millis() is
used to wait required amount of time.
Without this remote wakup may not work.
Jerzy Kasenberg 4 лет назад
Родитель
Сommit
168c7095e8
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      src/portable/microchip/pic32mz/dcd_pic32mz.c

+ 4 - 0
src/portable/microchip/pic32mz/dcd_pic32mz.c

@@ -163,6 +163,10 @@ void dcd_remote_wakeup(uint8_t rhport)
   USB_REGS->POWERbits.RESUME = 1;
 #if CFG_TUSB_OS != OPT_OS_NONE
   osal_task_delay(10);
+#else
+  // TODO: Wait in non blocking mode
+  unsigned cnt = 2000;
+  while (cnt--) __asm__("nop");
 #endif
   USB_REGS->POWERbits.RESUME = 0;
 }