[update] fix finsh_getchar() 未对 shell->device 为空处理的问题

This commit is contained in:
liukangcc 2021-10-13 18:04:46 +08:00
parent e3045389d0
commit c99dfc3147
1 changed files with 6 additions and 2 deletions

View File

@ -151,15 +151,19 @@ char finsh_getchar(void)
char ch = 0; char ch = 0;
RT_ASSERT(shell != RT_NULL); RT_ASSERT(shell != RT_NULL);
if (shell->device == RT_NULL)
{
return -RT_ERROR;
}
while (rt_device_read(shell->device, -1, &ch, 1) != 1) while (rt_device_read(shell->device, -1, &ch, 1) != 1)
rt_sem_take(&shell->rx_sem, RT_WAITING_FOREVER); rt_sem_take(&shell->rx_sem, RT_WAITING_FOREVER);
return ch; return ch;
#endif #endif /* RT_USING_POSIX */
#else #else
extern char rt_hw_console_getchar(void); extern char rt_hw_console_getchar(void);
return rt_hw_console_getchar(); return rt_hw_console_getchar();
#endif #endif /* RT_USING_DEVICE */
} }
#if !defined(RT_USING_POSIX) && defined(RT_USING_DEVICE) #if !defined(RT_USING_POSIX) && defined(RT_USING_DEVICE)