FinSH控制台「建议收藏」

2022-08-25 17:32:57 浏览数 (1)

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

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文件中定义:

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

0 人点赞