外观
控制台示例
2025-10-29
概述
本文介绍了如何在 RuiChing Studio 中创建一个 msh_example 示例工程,并将其编译后在开发板上调试运行。旨在帮助读者进一步熟悉 RuiChing Studio 开发环境,掌握控制台的运用。
控制台作用
在 RT-Thread 中,控制台提供一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息。用户在控制终端输入命令,控制终端通过串口、USB、 网络等方式将命令传给设备里,解析并自动扫描内部函数表,寻找对应函数名,执行函数后输出回应,回应通过原路返回,将结果显示在控制终端上。
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

在弹出新建向导中选择 开发版 、BSP: 、示例 、 调试器/下载器。选择好之后点击 “完成”。

点击 “完成” 后,等待工程创建完成。

创建完成。

构建工程点击展开
单击工程使工程进入 Active-Debug 模式。

点击工具栏上的构建按钮进行工程编译。

构建成功后,会显示构建成功的信息。

固件下载点击展开
固化设备树

固化 APP

核心代码
applications/msh_example.c
static void msh_example(int argc, char **argv)
{
const char *cmd = argv[1];
if (argc < 2)
{
LOG_E("Error: missing arguments.");
LOG_I("Usage: msh_example [test1|test2|option value|help]");
return;
}
if (rt_strcmp(cmd, "test1") == 0)
{
LOG_I("Executing Test 1...");
}
else if (rt_strcmp(cmd, "test2") == 0)
{
LOG_I("Executing Test 2...");
}
else if (rt_strcmp(cmd, "option") == 0)
{
if (argc < 3)
{
LOG_E("Error: option requires a value.");
return;
}
LOG_I("Option value: %s\n", argv[2]);
}
else if (rt_strcmp(cmd, "help") == 0)
{
LOG_I("Help:");
LOG_I(" msh_example test1 - Execute test 1");
LOG_I(" msh_example test2 - Execute test 2");
LOG_I(" msh_example option [value] - Print option value");
LOG_I(" msh_example help - Show help");
}
else
{
LOG_E("Error: unknown command '%s'.\n", cmd);
LOG_I("Usage: msh_example [test1|test2|option value|help]");
}
}运行示例
操作步骤
- 将程序下载到开发板
- 打开串口终端连接开发板
- 输入
msh_example命令 - 输入
msh_example help命令 - 输入
msh_example test1命令 - 输入
msh_example test2命令 - 输入
msh_example option 1命令 - 输入
msh_example test命令
预期结果
程序执行后会触发数据访问异常,系统将生成核心转储信息并显示在终端上。
rtt 控制台
msh />msh_example
[E/example.msh] Error: missing arguments.
[I/example.msh] Usage: msh_example [test1|test2|option value|help]
msh />msh_example help
[I/example.msh] Help:
[I/example.msh] msh_example test1 - Execute test 1
[I/example.msh] msh_example test2 - Execute test 2
[I/example.msh] msh_example option [value] - Print option value
[I/example.msh] msh_example help - Show help
msh />msh_example test1
[I/example.msh] Executing Test 1...
msh />msh_example test2
[I/example.msh] Executing Test 2...
msh />msh_example option 1
[I/example.msh] Option value: 1
msh />msh_example test
[E/example.msh] Error: unknown command 'test'.
[I/example.msh] Usage: msh_example [test1|test2|option value|help]