嵌入式实操----基于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] == '\n' || serial_rx_buf[position] == '\r')
							break;
						position++;
						if(position >  255)
							break;
				}
				// 主动换行。
              PRINTF("\r\n");
				// 解析串口输入数据
			  lwshell_input(serial_rx_buf,strlen(serial_rx_buf));
				// 清空本地变量以便做下一次接收入理
			  memset(serial_rx_buf,0x0,256);
			  position = 0;

    }
}

4. 实际效果

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

posted @ 2021-08-21 14:52  嵌入式实操  阅读(171)  评论(0编辑  收藏  举报