Explorar o código

Merge pull request #4797 from Guozhanxin/usleep

[update] usleep supports calling in interrupts.
guo %!s(int64=4) %!d(string=hai) anos
pai
achega
302c8bf23f
Modificáronse 1 ficheiros con 8 adicións e 1 borrados
  1. 8 1
      components/libc/compilers/common/unistd.c

+ 8 - 1
components/libc/compilers/common/unistd.c

@@ -55,7 +55,14 @@ RTM_EXPORT(sleep);
 
 int usleep(useconds_t usec)
 {
-    rt_thread_mdelay(usec / 1000u);
+    if (rt_thread_self() != RT_NULL)
+    {
+        rt_thread_mdelay(usec / 1000u);
+    }
+    else
+    {
+        rt_hw_us_delay(usec / 1000u);
+    }
     rt_hw_us_delay(usec % 1000u);
     return 0;
 }