finsh初步

finsh初步一.finsh在RT-Thread中被设计成一个独立的线程,它试图从外部设备中获得用户的输入,然后对用户命令进行解析执行。正确使用finsh需要一个关联过程:rt_hw_board_init()函数调用串口初始化函数rt_hw_usart_init(),此函数初始化串口,并向系统注册“usart1”设备,接着系统调用rt_console_set_device()函数设置“usart1…

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

一. finsh在RT-Thread中被设计成一个独立的线程,它试图从外部设备中获得用户的输入,然后对用户命令进行解析执行。

正确使用finsh需要一个关联过程:

  1. rt_hw_board_init()函数调用串口初始化函数rt_hw_usart_init(),此函数初始化串口,并向系统注册“usart1”设备,接着系统调用rt_console_set_device()函数设置“usart1”作为console输出。
  2. rtthread_startup()函数中调用finsh_system_init()初始化finsh组件,并调用finsh_set_device(“usart1”),将“usart1”和finsh关联起来,这样usart1的输入即可被finsh读入并分析、执行。

上述过程需要正确配置如下项:

#define RT_USING_FINSH    //rt_config.h

#define RT_USING_UART1      //rt_config.h

#define RT_CONSOLE_DEVICE_NAME   “usart1”    //rtconfig.h

 

二.finsh中自定义命令、函数及变量

使用宏方式输出,需在rtconfig.h中定义FINSH_USING_SYMTAB

FINSH_FUNCTION_EXPORT()

FINSH_FUNCTION_EXPORT_ALIAS()

FINSH_VAR_EXPORT()

#include <rtthread.h>

#ifdef RT_USING_FINSH
//#ifdef FINSH_USING_SYMTAB

#include <finsh.h>     // must include
static int wang_num = 1;
void wang(int num)
{
    if(num < 10000) 
        wang_num = wang_num++ * 2;

    rt_kprintf("Param:%d\n", wang_num);
}

FINSH_FUNCTION_EXPORT(wang, just test)
FINSH_VAR_EXPORT(wang_num, finsh_type_int, just var test)

//#endif
#endif

执行结果:

finsh初步

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143215.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月11日 上午8:20
下一篇 2022年5月11日 上午8:20


相关推荐

  • 四周第1次课(2月26日)

    四周第1次课(2月26日)

    2022年3月13日
    32
  • Windows系统安装OpenClaw并使用Qwen千问接入飞书教程 烙

    Windows系统安装OpenClaw并使用Qwen千问接入飞书教程 烙

    2026年3月13日
    3
  • 51单片机最小系统电路图_51单片机最小系统介绍

    51单片机最小系统电路图_51单片机最小系统介绍单片机最小系统包括单片机,电源电路,晶振电路和复位电路。电源电路:目前主流单片机的电源分为5V和3.3V这两个标准,STC89C51需要5V的供电系统。晶振电路:晶振为11.0592MHz(可以准确得到波特率9600和115200),为单片机系统提供基准时钟信号,电容(C2、C3)的作用是帮助无源晶振起振,并维持振荡信号的稳定。复位电路:为了防止程序跑飞,当芯片工作异常时,可以按下复位键重新启动。复位电路分为高电平复位和低电平复位,89C51是高电平复位。在单片机系统中,系统上电启动的时候复位一.

    2022年8月30日
    7
  • QGIS使用之基本介绍和安装教程

    QGIS使用之基本介绍和安装教程今天,小崇想和大家介绍一下QGIS的基本知识。希望我们互相学习,共同进步!何为QGIS?QGIS(QuantumGIS)是一款免费的桌面GIS软件,可运行在Linux、Unix、MacOSX和Windows等平台。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统。它主要提供GIS数据的显示、编辑和分析、制图等功能。QGIS的主要特点有:(1)免费开源。(正版ArcGIS价格不菲)(2)支持PostGIS数据库。(3)支持从WMS,WFS服务器中获取

    2022年6月17日
    34
  • webpack dev server_webpackdevserver配置

    webpack dev server_webpackdevserver配置前言当我们使用webpack打包时,发现每次更新了一点代码,都需要重新打包,这样很麻烦,我们希望本地能搭建一个服务器,然后写入新的代码能够自动检测出来,这时候就需要用到webpack-dev-ser

    2022年7月30日
    17
  • 异步fifo的深度,如何确定?_二叉树的最小深度和最大深度

    异步fifo的深度,如何确定?_二叉树的最小深度和最大深度目录1.异步FIFO最小深度计算1.1异步FIFO最小深度计算原理1.2异步FIFO最小深度常用计算公式1.2.1假如读写FIFO是同时进行的1.2.2读写FIFO不是同时进行的情况2.异步FIFO最小深度计算实例2.1用于SDRAM中的读写FIFO2.2异步时钟数据接口3.FIFO实例1.异步FIFO最小深度计算计算FIF…

    2022年8月13日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号