summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorGuEe-GUI <[email protected]>2025-12-09 12:00:48 +0800
committerR b b666 <[email protected]>2025-12-15 12:51:30 +0800
commitb61f8b410bde2e96358eda5eafd1a8aab65ce79c (patch)
tree97338a77ddf5839872d5d907a7f70b9ce16095ea /components
parent4f154d8207be7320be07477fe3857523b1704977 (diff)
[finsh][cmd] add 'console' command to config console
Signed-off-by: GuEe-GUI <[email protected]>
Diffstat (limited to 'components')
-rw-r--r--components/finsh/cmd.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/components/finsh/cmd.c b/components/finsh/cmd.c
index c88895d6ee..48bbfc833a 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 <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("-");