请选择 进入手机版 | 继续访问电脑版

12360技术网 - 专业IT技术发表平台

 立即注册  找回密码
查看: 8455|回复: 5

shell | LiteOS 物联网操作系统中的 shell 组件使用分享

[复制链接]

19

主题

34

帖子

382

积分

中级会员

Rank: 3Rank: 3

积分
382
发表于 2020-1-26 06:15:01 | 显示全部楼层 |阅读模式
1. 为什么使用shell组件

2. LiteOS中的shell组件

2.1. 源码

LiteOS中的shell组件源码如图:

这三个C文件是shell组件的实现文件,使用时只需要包含头文件即可,shell.h的位置如下:

2.2. 组件自动初始化

shell组件在使用前需要调用shell_init()函数进行组件初始化,该函数在shell_main.c中,源码如下:
  1. /*******************************************************************************function     :this is the  shell module initialize functionparameters   :instruction  :if you want use shell,you should do two things              1,make CFG_SHELL_ENABLE true in target_config.h              2,call shell_init in your process:make sure after the system has                been initialized*******************************************************************************/void shell_init(){    shell_cmd_init();    osal_task_create("shell_server",shell_server_entry,NULL,\                      CN_SHELL_STACKSIZE+CN_CMD_CACHE*CN_CMDLEN_MAX,NULL,10);}
复制代码
在link_main.c文件中,可以看到,如果使能了宏定义CONFIG_SHELL_ENABLE,则shell组件会自动进行初始化:

2.3. 使用方法

shell组件目前目前支持tab补全(找到最像的一条),支持上下键切换历史命令,用户可以进行下面的两个操作:
添加全局变量

可以添加全局变量,可以使用shell入口为全局变量赋值,添加方法如下:
  1. OSSHELL_EXPORT_VAR(var,varname,varhelp)
复制代码
其中:

  • var为需要添加的全局变量
  • varname为该全局变量的名字
  • varhelp为该全局变量的描述
添加shell命令
  1. OSSHELL_EXPORT_CMD(cmdentry,cmdname,cmdhelp)
复制代码
其中:

  • cmdentry:shell命令入口函数,函数模型为typedef int (*fn)(int argc, const char *argv[]);
  • cmdname:shell命令名字(执行该命令时需要输入的字符串);
  • cmdhelp,:shell命令的帮助信息;
3. shell组件使用示例

3.1. 编写测试文件

编写测试文件:
[code]#include #include static uint32_t shell_test_var = 0x01234567;int shell_test_func(int argc, const char *argv[]){    int i = 0;    printf("argc:%d\r\n",argc);    for(i=0;i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




上一篇:SECS/GEM:PLC与MES间处理
下一篇:ARM Mbed OS 5.15 + Mbed CLI 搭建实战
回复

使用道具 举报

0

主题

20

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
发表于 2020-1-28 15:57:10 | 显示全部楼层
既然你诚信诚意的推荐了,那我就勉为其难的看看吧![www.12360.co]
回复

使用道具 举报

0

主题

21

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
发表于 2020-2-3 01:33:18 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U![www.12360.co]
回复

使用道具 举报

0

主题

28

帖子

598

积分

高级会员

Rank: 4

积分
598
发表于 2020-2-9 06:35:22 | 显示全部楼层
楼主,大恩不言谢了![www.12360.co]
回复

使用道具 举报

12

主题

30

帖子

424

积分

中级会员

Rank: 3Rank: 3

积分
424
发表于 2020-2-17 21:58:27 | 显示全部楼层
这东西我收了!谢谢楼主![www.12360.co]
回复

使用道具 举报

0

主题

27

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2020-2-20 05:17:42 | 显示全部楼层
我看不错噢 谢谢楼主![www.12360.co]
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12360技术网

GMT+8, 2020-2-29 14:01 , Processed in 0.091736 second(s), 33 queries .

本网站内容收集于互联网,Www.12360.Co不承担任何由于内容的合法性及健康性所引起的争议和法律责任。 欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。

© 2019-2020 Www.12360.Co

快速回复 返回顶部 返回列表