FinSH控制台


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

一、FinSH内置命令

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

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模式下被运行,用以下宏接口:

MSH_CMD_EXPORT(name, desc);
//name为要导出的命令,即函数名称
//desc命令描述和提示

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

static void atcmd(int argc, char**argv)
{
    
    
… …
}
MSH_CMD_EXPORT(atcmd, atcmd sample: atcmd <server|client>);

2.2 自定义C-style命令

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

//导出命令
FINSH_FUNCTION_EXPORT(name, desc);
//导出变量
FINSH_VAR_EXPORT(name, type, desc);

三、FinSH功能配置

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

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

/* 开启 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

猜你喜欢

转载自blog.csdn.net/qq_33604695/article/details/105823400
今日推荐