[finsh][cmd] add 'console' command to config console

Signed-off-by: GuEe-GUI <2991707448@qq.com>
This commit is contained in:
GuEe-GUI
2025-12-09 12:00:48 +08:00
committed by R b b666
parent 4f154d8207
commit b61f8b410b
2 changed files with 56 additions and 27 deletions

View File

@@ -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 <name> - change console by name\n");
result = -RT_ERROR;
}
return result;
}
MSH_CMD_EXPORT(console, set console name);

View File

@@ -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 <rthw.h>
@@ -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 <posix/stdio.h>
#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 <name> - 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("-");