소스 검색

[update] fix finsh bug (#5676)

* [update] fix finsh bug

* [update] format code
LiuKang 3 년 전
부모
커밋
aa80ba25d4
1개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  1. 10 1
      components/finsh/shell.c

+ 10 - 1
components/finsh/shell.c

@@ -168,8 +168,17 @@ int finsh_getchar(void)
     }
 
     while (rt_device_read(device, -1, &ch, 1) != 1)
+    {
         rt_sem_take(&shell->rx_sem, RT_WAITING_FOREVER);
-
+        if (shell->device != device)
+        {
+            device = shell->device;
+            if (device == RT_NULL)
+            {
+                return -1;
+            }
+        }
+    }
     return ch;
 #endif /* RT_USING_POSIX_STDIO */
 #else