在 STM32 实现命令行
内容提要
本文介绍了在工作中使用基于Linux命令行的开发环境,并分享了移植nr shell的过程。通过对比Finsh和nr_micro_shell两个项目,选择了资源占用较少的nr作为命令行交互工具。文章详细介绍了代码下载、STM32 CubeMX工程配置、代码修改和移植现象等步骤。最后提到了处理效率有待优化,并推荐关注公众号“良许Linux”获取更多Linux相关知识。
关键要点
-
在工作中使用基于Linux命令行的开发环境。
-
对比Finsh和nr_micro_shell,选择资源占用较少的nr作为命令行工具。
-
移植nr shell的过程包括代码下载、STM32 CubeMX工程配置、代码修改和移植现象。
-
从GitHub下载nr_micro_shell的代码。
-
配置STM32L431 UART外设中断数据收发,开启FreeRTOS,生成Makefile工程。
-
修改STM32 CubeMX的串口重映射,将输出关联到nr shell打印函数。
-
创建信号量用于同步接收状态,开启空闲中断接收。
-
nr shell的基本收发交互功能完成,但处理效率有待优化。
-
推荐关注公众号“良许Linux”获取更多Linux相关知识。
延伸问答
如何在STM32上实现命令行交互?
可以通过移植nr shell来实现命令行交互,具体步骤包括代码下载、STM32 CubeMX工程配置、代码修改等。
为什么选择nr而不是Finsh作为命令行工具?
nr占用的MCU资源较少,适合资源有限的环境,而Finsh功能丰富但资源占用较高。
如何配置STM32 CubeMX以支持nr shell?
需要配置STM32L431的UART外设中断数据收发,并开启FreeRTOS,生成Makefile工程。
移植nr shell的过程中需要注意哪些代码修改?
需要修改串口重映射,将输出关联到nr shell的打印函数,并创建信号量用于同步接收状态。
nr shell的处理效率如何?
nr shell的基本收发交互功能完成,但处理效率有待优化,一条简单指令的响应时间约为10毫秒。
在哪里可以找到nr_micro_shell的代码?
可以在GitHub上找到nr_micro_shell的代码,地址是github.com/Nrusher/nr_micro_shell。