1.#defineMSH_CMD_EXPORT(command, desc) FINSH_FUNCTION_EXPORT_CMD(command, __cmd_##command, desc)//嵌套一层宏定义,把两个参数变成3个参数,command用##与__cmd_连接起来,那么它的第二参数就变成__cmd_command2.#pragmasection("FSymTab$f",read)#defineFINSH_FUNCTION_EXPORT_CMD(name, cmd, desc) ...
总体上,FinSH(msh)和Linux在使用功能上非常相似 FinSH(Fin Shell)是一款嵌入式Shell(命令行接口),主要用于RT-Thread实时操作系统。RT-Thread是一个开源的轻量级实时操作系统,广泛应用于各种嵌入式设备中。FinSH作为其组件之一,提供了一个非常实用的命令行界面,允许开发者和系统管理员通过命令行直接与操作系统交互,极大...
传统的命令行模式,称为 msh(模块 shell)。 在C 语言解释器模式下,FinSH 可以解析执行大部分 C 语言的表达式,并使用函数调用访问系统上的函数和全局变量。它还可以从命令行创建变量。 在msh 模式下,FinSH 的操作与 Bash 等传统 shell 类似。 GNU 命令标准 当我们在开发 FinSH 时,我们了解到,在编写命令行应用程...
FINSH_FUNCTION_EXPORT(name,desc); 与msh类似,不赘述。 3.3、自定义命令重命名 FinSH 的函数名字长度有一定限制,它由 finsh.h 中的宏定义 FINSH_NAME_MAX 控制,默认是16 字节,这意味着 FinSH 命令长度不会超过 16 字节。这里有个潜在的问题:当一个函数名长度超过FINSH_NAME_MAX 时,使用 FINSH_FUNCTION_EXPOR...
这个函数里只是简单的释放信号量。也就是说,当串口硬件上接收到一个字节,就会调用finsh_rx_ind函数来释放一个信号量。 三、finsh线程函数的工作流程概述 代码语言:javascript 复制 voidfinsh_thread_entry(void*parameter){char ch;/* normal is echo mode */shell->echo_mode=1;#ifndefFINSH_USING_MSH_ONLYfins...
【finsh同时支持:c-style模式 与 msh模式,但是默认进入c-style模式,执行[ msh() ]即可切换到msh模式。在msh 模式下执行[ exit ]后即退回到c-style模式】--->由于RT-Thread BSP 默认配置 Finsh 仅为msh模式,想要同时拥有c-style 模式 和 msh 模式,需要按照如下方法进行配置。 二、配置环境...
1、RT-Thread FinSH控制台添加自定义msh命令原理 FinSH 是 RT-Thread 的命令行组件,提供一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息。它可以使用串口 / 以太网 / USB 等与 PC 机进行通信。 FinSH 提供了多个宏接口来导出自定义命令,导出的命令可以直接在 FinSH 中执行。 自定义的 msh 命令,...
/* 开启系统 FinSH 时:定义该宏开启 MSH 功能 */ #defineFINSH_USING_MSH /* 开启系统 FinSH 时:开启 MSH 功能时,定义该宏默认使用 MSH 功能 */ #defineFINSH_USING_MSH_DEFAULT /* 开启系统 FinSH 时:定义该宏,仅使用 MSH 功能 */ #defineFINSH_USING_MSH_ONLY ...
传统的命令行模式,称为 msh(模块 shell)。 在C 语言解释器模式下,FinSH 可以解析执行大部分 C 语言的表达式,并使用函数调用访问系统上的函数和全局变量。它还可以从命令行创建变量。 在msh 模式下,FinSH 的操作与 Bash 等传统 shell 类似。 GNU 命令标准 ...
2. 传统命令行模式,此模式又称为msh(module shell)。C语言表达式解释模式下, finsh能够解析执行大部分C语言的表达式,并使用类似C语言的函数调用方式访问系统中的函数及全局变量,此外它也能够通过命令行方式创建变量。在msh模式下,finsh运行方式类似于dos/bash等传统shell。