前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FinSH控制台「建议收藏」

FinSH控制台「建议收藏」

作者头像
全栈程序员站长
发布2022-08-25 17:32:57
8990
发布2022-08-25 17:32:57
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

RT-Thread FinSH使用

  • 一、FinSH内置命令
  • 二、自定义FinSH命令
    • 2.1 自定义msh命令
    • 2.2 自定义C-style命令
  • 三、FinSH功能配置

  shell是用户与操作系统间接口的程序,它允许用户向操作系统输入需要执行的命令,并将操作系统的运行结果返回给用户。   FinSH就是RT-Thread的shell(命令行组件),在读取输入命令后,解析并自动扫描内部函数表,寻找对应函数名,执行函数后输出回应,回应通过原路返回,将结果显示在控制终端上。   FinSH 支持两种输入模式,分别是msh(module shell)模式和C 语言解释器模式。

一、FinSH内置命令

  在RT-Thread 中默认内置了一些FinSH 命令,在FinSH 中输入help 后回车或者直接按下Tab 键,就可以打印当前系统支持的所有命令。

代码语言:javascript
复制
RT-Thread shell commands:
version - show RT-Thread version information
list_thread - list thread
list_sem - list semaphore in system
list_event - list event in system
list_mutex - list mutex in system
list_mailbox - list mail box in system
list_msgqueue - list message queue in system
list_timer - list timer in system
list_device - list device in system
exit - return to RT-Thread shell mode.
help - RT-Thread shell help.
ps - List threads in the system.
time - Execute command with time.
free - Show the memory usage in the system.

二、自定义FinSH命令

2.1 自定义msh命令

  自定义的msh 命令,可以在msh模式下被运行,用以下宏接口:

代码语言:javascript
复制
MSH_CMD_EXPORT(name, desc);
//name为要导出的命令,即函数名称
//desc命令描述和提示

  导出有参数的命令时(函数带参),则使用:

代码语言:javascript
复制
static void atcmd(int argc, char**argv)
{ 
   
… …
}
MSH_CMD_EXPORT(atcmd, atcmd sample: atcmd <server|client>);

2.2 自定义C-style命令

  将自定义命令导出到C-Style 模式可以使用如下接口:

代码语言:javascript
复制
//导出命令
FINSH_FUNCTION_EXPORT(name, desc);
//导出变量
FINSH_VAR_EXPORT(name, type, desc);

三、FinSH功能配置

  FinSH功能可以裁剪,宏配置选项在rtconfig.h文件中定义:

FinSH控制台「建议收藏」
FinSH控制台「建议收藏」

rtconfig.h中的配置示例参考如下,可以根据实际功能需求情况进行配置:

代码语言:javascript
复制
/* 开启 FinSH */
#define RT_USING_FINSH

/* 将线程名称定义为 tshell */
#define FINSH_THREAD_NAME "tshell"

/* 开启历史命令 */
#define FINSH_USING_HISTORY
/* 记录 5 行历史命令 */
#define FINSH_HISTORY_LINES 5

/* 开启使用 Tab 键 */
#define FINSH_USING_SYMTAB
/* 开启描述功能 */
#define FINSH_USING_DESCRIPTION

/* 定义 FinSH 线程优先级为 20 */
#define FINSH_THREAD_PRIORITY 20
/* 定义 FinSH 线程的栈大小为 4KB */
#define FINSH_THREAD_STACK_SIZE 4096
/* 定义命令字符长度为 80 字节 */
#define FINSH_CMD_SIZE 80

/* 开启 msh 功能 */
#define FINSH_USING_MSH
/* 默认使用 msh 功能 */
#define FINSH_USING_MSH_DEFAULT
/* 最大输入参数数量为 10 个 */
#define FINSH_ARG_MAX 10

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143149.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RT-Thread FinSH使用
  • 一、FinSH内置命令
  • 二、自定义FinSH命令
    • 2.1 自定义msh命令
      • 2.2 自定义C-style命令
      • 三、FinSH功能配置
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档