LiteOS----shell应用(2)用户shell
【摘要】 上一文讲到了LiteOS有很多非常有用的系统shell功能,今天说一下,用户如何自己定义shell用来和交互使用。
0、前沿
上一文讲到了LiteOS有很多非常有用的系统shell功能,今天说一下,用户如何自己定义shell用来和交互使用。
1、定义命令函数
首先要有一个功能函数还处理命令,需要在头文件中声明功能函数原型。
比如这里定义
int osShellCmdLs(int argc, const char **argv);
一般这里函数需要包过两个参数,argc 和argv字符串指针。argc:Shell命令的参数个数。个数中是否包括命令关键字,和注册命令时的命令类型有关。argv:为指针数组,每个元素指向一个字符串,该字符串就是执行shell命令时传入命令处理函数的参数。参数中是否包括命令关键字,和注册命令时的命令类型有关。
2、注册命令名称。
LiteOS shell有静态注册命令和系统运行时动态注册命令两种注册方式。两种方式主要是内存设定和释放不同,静态注册要求在编译器和设置中打开相关的支持才能生效。一般建议采用动态shell注册,这样简单好操作。
3、用例
1️⃣定义一个shell 功能名称为 pf_best,功能是打印“We r best” ,首先定义他的功能
#include "shell.h"
#include "shcmd.h"
int cmd_pfbest(void)
{
printf("We r best!\n");
return 0;
}
因为不需要出入参数,这里的函数为void空类型。
2️⃣注册命令
按照动态注册的要求。
#include "shell.h"
void cmd_init(void)
{
osCmdReg(CMD_TYPE_EX, "pf_best", XARGS, (CMD_CBK_FUNC)cmd_pfbest);
}
编译下载后就可以使用这个命令进行交互了。
说完了shell ,大家是不是感觉很简单呢,都来试试吧
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)