diff --git a/components/finsh/shell.c b/components/finsh/shell.c index 9793108a1707164a22884f39af13a79e967e3066..fcb34878aac6301ded33349e2624a920549d9835 100644 --- a/components/finsh/shell.c +++ b/components/finsh/shell.c @@ -308,11 +308,16 @@ void finsh_thread_entry(void* parameter) rt_kprintf(FINSH_PROMPT); /* set console device as shell device */ - shell->device = rt_console_get_device(); - if (shell->device != RT_NULL) + if (shell->device == RT_NULL) { +#ifdef RT_USING_CONSOLE + shell->device = rt_console_get_device(); + RT_ASSERT(shell->device); rt_device_open(shell->device, RT_DEVICE_OFLAG_RDWR); rt_device_set_rx_indicate(shell->device, finsh_rx_ind); +#else + RT_ASSERT(shell->device); +#endif } while (1)