diff --git a/bsp/qemu-virt64-aarch64/applications/console.c b/bsp/qemu-virt64-aarch64/applications/console.c index b69b9b3b978..3f8be481891 100644 --- a/bsp/qemu-virt64-aarch64/applications/console.c +++ b/bsp/qemu-virt64-aarch64/applications/console.c @@ -31,30 +31,3 @@ static int console_init() return status; } INIT_ENV_EXPORT(console_init); - -static int console(int argc, char **argv) -{ - rt_err_t result = RT_EOK; - - if (argc > 1) - { - if (!rt_strcmp(argv[1], "set")) - { - rt_kprintf("console change to %s\n", argv[2]); - rt_console_set_device(argv[2]); - } - else - { - rt_kprintf("Unknown command. Please enter 'console' for help\n"); - result = -RT_ERROR; - } - } - else - { - rt_kprintf("Usage: \n"); - rt_kprintf("console set - change console by name\n"); - result = -RT_ERROR; - } - return result; -} -MSH_CMD_EXPORT(console, set console name); diff --git a/components/finsh/cmd.c b/components/finsh/cmd.c index c88895d6eea..48bbfc833aa 100644 --- a/components/finsh/cmd.c +++ b/components/finsh/cmd.c @@ -32,6 +32,7 @@ * 2022-07-02 Stanley Lwin add list command * 2023-09-15 xqyjlj perf rt_hw_interrupt_disable/enable * 2024-02-09 Bernard fix the version command + * 2023-02-25 GuEe-GUI add console */ #include @@ -60,6 +61,61 @@ static long version(void) } MSH_CMD_EXPORT(version, show RT-Thread version information); +#if defined(RT_USING_DEVICE) && defined(RT_USING_CONSOLE) +#if !defined(RT_USING_POSIX) && defined(RT_USING_POSIX_STDIO) +#include +#endif + +static int console(int argc, char **argv) +{ + if (argc > 1) + { + if (!rt_strcmp(argv[1], "set")) + { + if (argc < 3) + { + goto _help; + } + + rt_kprintf("console change to %s\n", argv[2]); + rt_console_set_device(argv[2]); + +#ifdef RT_USING_POSIX + { + rt_device_t dev = rt_device_find(argv[2]); + + if (dev != RT_NULL) + { + console_set_iodev(dev); + } + } +#elif !defined(RT_USING_POSIX_STDIO) + finsh_set_device(argv[2]); +#else + rt_posix_stdio_init(); +#endif /* RT_USING_POSIX */ + } + else + { + goto _help; + } + } + else + { + goto _help; + } + + return RT_EOK; + +_help: + rt_kprintf("Usage: \n"); + rt_kprintf("console set - change console by name\n"); + + return -RT_ERROR; +} +MSH_CMD_EXPORT(console, console setting); +#endif /* RT_USING_DEVICE && RT_USING_CONSOLE */ + rt_inline void object_split(int len) { while (len--) rt_kprintf("-");