当前位置:网站首页>RT-Thread 添加 msh 命令
RT-Thread 添加 msh 命令
2022-06-23 09:41:00 【小辉_Super】
本文参考《RT-Thread编程手册》https://www.bookstack.cn/read/rtthread-manual-doc/10.6.md
如何添加命令
在使用 FinSH 时,系统提供了一些很实用的命令,比如:

其实我们也可以自己添加一些命令到 msh 中,方法如下:
MSH_CMD_EXPORT(command, desc);
command 是需要添加的命令(函数名),desc 是命令的描述。
简单测试
下面用一个简单的 my_hello 命令来做测试,在工程中添加如下代码:
void my_hello(void)
{
rt_kprintf("hello world\n");
}
MSH_CMD_EXPORT(my_hello, msh cmd test);
在 msh 命令行上输入 help 命令,可以看到我们的 my_hello 命令已经添加到了命令列表之中:

输入 my_hello 命令,成功运行了 my_hello() 函数:

可变参数的命令
函数一般都是可以带参数的,msh 命令也可以带参数,并且 msh 还支持添加可变参数的命令,定义的格式为:
void my_cmd(int argc, char **argv)
同样,我们写一个简单的测试例子:(记得打开 MicroLIB)
#include <string.h>
#include <stdio.h>
void led_ctrl(int argc, char **argv)
{
if(argc != 3)
{
rt_kprintf("正确格式:led_ctrl LEDx ON/OFF\n");
return;
}
if(!strcmp(argv[1] , "LED0"))
{
if(!strcmp(argv[2] , "ON"))
{
rt_kprintf("led0 on!\n");
}
else if(!strcmp(argv[2] , "OFF"))
{
rt_kprintf("led0 off!\n");
}
}
else if(!strcmp(argv[1] , "LED1"))
{
if(!strcmp(argv[2] , "ON"))
{
rt_kprintf("led1 on!\n");
}
else if(!strcmp(argv[2] , "OFF"))
{
rt_kprintf("led1 off!\n");
}
}
}
MSH_CMD_EXPORT(led_ctrl, "LEDx ON/OFF"); // 不加双引号,ON/OFF 会显示为1/0
测试结果:(参数不同,运行的内容也不同)

边栏推荐
- UEFI source code learning 4.1 - pcihostbridgedxe
- Copilot免费时代结束!正式版67元/月,学生党和热门开源项目维护者可白嫖
- High performance computing center nvme / nvme of nvme of overview
- Common English explanations in arm
- Go language JSON processing
- [plugin:vite:import-analysis]Failed to resolve import “@/“ from ““.Does the file exist
- Gorm 高级查询
- ThinkPHP 2.x/3.0 漏洞复现
- Navagation navigation
- 多线程习题
猜你喜欢
随机推荐
How should junior programmers who enter a small company improve themselves?
UEFI source code learning 4.1 - pcihostbridgedxe
Typora set up image upload service
AI系统前沿动态第38期:谷歌已放弃TensorFlow?;训练大模型的四种GPU并行策略;LLVM之父:模块化设计决定AI前途
swagger UI :%E2%80%8B
[GYCTF2020]Blacklist
ICLR 2022 | dynamic convolution tadaconv in video and efficient convolution video understanding model tadaconvnext
快速排序的简单理解
Chain implementation of stack -- linear structure
J. Med. Chem. | Release: a new drug design model for deep learning based on target structure
Redis learning notes - single key management
Playing with nanopi 2 bare metal tutorial programming-01 lighting user led difficulty analysis
ThinkPHP 2.x/3.0 漏洞复现
J. Med. Chem. | RELATION: 一种基于靶标结构的深度学习全新药物设计模型
Copilot免费时代结束!正式版67元/月,学生党和热门开源项目维护者可白嫖
[GXYCTF2019]BabySQli
使用base64,展示图片
map的下标操作符
NiO example
[極客大挑戰 2019]HardSQL

![[GXYCTF2019]BabyUpload](/img/82/7941edd523d86f7634f5532ab97717.png)







