FinSH(Fin Shell)是一款嵌入式Shell(命令行接口),主要用于RT-Thread实时操作系统。RT-Thread是一个开源的轻量级实时操作系统,广泛应用于各种嵌入式设备中。FinSH作为其组件之一,提供了一个非常实用的命令行界面,允许开发者和系统管理员通过命令行直接与操作系统交互,极大地提高了调试和维护的效率。 在RT-thread开发过程...
FinSH 的函数名字长度有一定限制,它由 finsh.h 中的宏定义 FINSH_NAME_MAX 控制,默认是16 字节,这意味着 FinSH 命令长度不会超过 16 字节。这里有个潜在的问题:当一个函数名长度超过FINSH_NAME_MAX 时,使用 FINSH_FUNCTION_EXPORT 导出这个函数到命令表中后,在 FinSH 符号表中看到完整的函数名,但是完整输入执...
第一步:配置FinSH 在一个项目工程中打开env,输入menuconfig,选中finsh shell选项即可,一般默认都是打开的。 如果你不知道menuconfig怎么使用,可以在下面这个链接查看。 Menuconfig使用方法:https://www.rt-thread.org/document/site/programming-manual/env/env/#bsp-menuconfig 使能串口1,这个如果没有修改过的话,也是默...
一、finsh组件初始化函数finsh_system_init(),并且添加了INIT_COMPONENT_EXPORT(finsh_system_init),支持组件初始化; 这个函数会初始化finsh组件,包括一些finsh变量以及相关数据结构。 然后它会创建一个线程,代码如下: 代码语言:javascript 复制 result=rt_thread_init(&finsh_thread,"tshell",finsh_thread_entry,RT_...
第一步:配置FinSH 在一个项目工程中打开env,输入menuconfig,选中finsh shell选项即可,一般默认都是打开的。 如果你不知道menuconfig怎么使用,可以在下面这个链接查看。 Menuconfig使用方法:https://www.rt-thread.org/document/site/programming-manual/env/env/#bsp-menuconfig ...
finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试、查看系统信息。在大部分嵌入式系统中,一般开发调试都使用硬件调试器和printf日志打印,在有些情况下,这两种方式并不是那么好用。比如对于RT-Thread这个多线程系统,我们想知道某个时刻系统中的线程运行状态、手动控制系统状态。如果...
FinSH 组件使用有三种种方式,如下: 通过rt_hw_console_getchar() 函数获取控制台数据 FinSH 线程的使用方式主要是通过实现rt_hw_console_getchar()函数,获取控制台输入的数据,具体方式看我之前的笔记,STM32 移植 RT-Thread 标准版的 FinSH 组件。 通过外设驱动中的数据流(stm32_getc函数)获取控制台数据 ...
可执行的命令是git,子命令是reset,使用的选项是--head,参数是HEAD~1。 再举个例子: 复制 systemctlenable--now firewalld 1. 可执行的命令是systemctl,子命令是enable,选项是--now,参数是firewalld。 想象一下,你想用 RT-Thread 编写一个符合 GNU 标准的命令行程序。FinSH 拥有你所需要的一切,并且会按照...
finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试、查看系统信息。在大部分嵌入式系统中,一般开发调试都使用硬件调试器和printf日志打印,在有些情况下,这两种方式并不是那么好用。比如对于RT-Thread这个多线程系统,我们想知道某个时刻系统中的线程运行状态、手动控制系统状态。如果...
5.使用J-Link或其他Tools Download编译成功的Hex文件到目标板卡。 6.打开串口调试工具,验证finsh shell功能是否配置成功。 A.通过键盘【TAB】输出msh Commands list,通过指令【exit】退出msh模式,进入c-style模式。 B.通过键盘【TAB】输出c-style Commands list,通过指令【msh()】退出c-style模式,进入msh模式。