From aa80ba25d40f086c64497cd2453f1cd7879fb709 Mon Sep 17 00:00:00 2001 From: LiuKang <44889940+liukangcc@users.noreply.github.com> Date: Tue, 15 Mar 2022 16:56:59 +0800 Subject: [PATCH] [update] fix finsh bug (#5676) * [update] fix finsh bug * [update] format code --- components/finsh/shell.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/components/finsh/shell.c b/components/finsh/shell.c index 824c60392d..3304733496 100644 --- a/components/finsh/shell.c +++ b/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