zoukankan      html  css  js  c++  java
  • 嵌入式实操----基于RT1170移植lwshell库实现简单的shell功能(九)

    本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发

      在MCUXpresso SDK 框架下让调试串口支持shell功能
    学习链接:https://github.com/MaJerle/lwshell.git
    参考文档:https://docs.majerle.eu/projects/lwshell/en/latest/get-started/index.html#
    本人使用的是FreeRTOS,所以通过创建一个任务用来接收调试串口的数据,然后调用lwshell_input将串口数据进行解析,内部会调用命令处量回调函数。

    1. 添加相关的文件

    按如下操作移植lwshell工程。

    在这里插入图片描述
    结果如下图所示:
    在这里插入图片描述
    然后注册相应的命令及处理函数。

    2 串口数据接收处理任务代码

    static void TestTask(void *param) {
       // 初始化shell,并注册相关的命令及命令处理回调。
    	  example_minimal();
        uint8_t  serial_rx_buf[256]={0};
    	int position = 0;
        while(1) {		 
    			  // 打印前缀
    			  PRINTF("shell->>>");
    			  // 获取串口输入数据
    			  while(1){
    						serial_rx_buf[position]= GETCHAR();
    					  PRINTF("%c",serial_rx_buf[position]);
    					  if(serial_rx_buf[position] == '
    ' || serial_rx_buf[position] == '
    ')
    							break;
    						position++;
    						if(position >  255)
    							break;
    				}
    				// 主动换行。
                  PRINTF("
    ");
    				// 解析串口输入数据
    			  lwshell_input(serial_rx_buf,strlen(serial_rx_buf));
    				// 清空本地变量以便做下一次接收入理
    			  memset(serial_rx_buf,0x0,256);
    			  position = 0;
    
        }
    }
    

    4. 实际效果

    在这里插入图片描述
    命令回调的处理函数如下所示, argv[0] 为命令,argv[1]为第一个参数,依此类推。
    在这里插入图片描述

  • 相关阅读:
    C# WM_NCMOUSELEAVE 消息触发
    C#常用集合的使用(转载)
    关于直播,所有的技术细节都在这里了(转载)
    C# Winform 窗体美化
    正则表达式符号全解析
    C#中List<T>转DataTable
    C#中的Queue集合
    C#中Stack集合
    智能信息处理
    Mysql
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/15169561.html
Copyright © 2011-2022 走看看