嵌入式实操----基于RT1170移植lwshell库实现简单的shell功能(九)
2021/8/22 7:06:41
本文主要是介绍嵌入式实操----基于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]为第一个参数,依此类推。
这篇关于嵌入式实操----基于RT1170移植lwshell库实现简单的shell功能(九)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)