大家好,又见面了,我是你们的朋友全栈君。
RT-Thread 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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143149.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...