lettershell项目链接 https://github.com/NevermindZZT/letter-shell
更多精彩内容欢迎关注微信公众号:码农练功房

letter shell是一个C语言编写的,可以嵌入在程序中的嵌入式shell。主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数。
letter-shell为调试单片机程序提供了极大的便利。它使得开发者能够在不连接调试器的情况下通过命令行界面与单片机进行交互,这对于快速迭代和调试非常有用。
目录
物理结构
本文基于letter-shell 3.x版本。
.
├── demo
│ ├── esp-idf
│ ├── segger-rtt
│ ├── stm32-freertos
│ └── x86-gcc
├── doc
│ └── img
├── extensions
│ ├── cpp_support
│ ├── fs_support
│ ├── game
│ ├── log
│ ├── shell_enhance
│ └── telnet
├── LICENSE
├── README.md
├── src
│ ├── shell.c
│ ├── shell_cfg.h
│ ├── shell_cmd_list.c
│ ├── shell_companion.c
│ ├── shell_ext.c
│ ├── shell_ext.h
│ └── shell.h
└── tools
demo目录下提供了各个平台移植示例,使用者根据需要可以参考。
extensions目录下是一些拓展功能。
src目录下的文件为letter-shell的核心源码。
STM32裸机移植
demo/stm32-freertos提供了基于freertos的移植示例。裸机移植与之类似,将src下的文件全部拷贝到MDK工程下,同时新建shell_port.h、shell_port.c文件,加入工程:

移植其实就是配置shell_cfg.h中定义的宏、针对具体平台实现shell读写函数,如果我们需要使用单片机的串口实现shell的功能:
// shell_port.c
#include "shell.h"
#include "shell_port.h"
#include "stm32f10x_usart.h"
/* 1. 创建shell对象,开辟shell缓冲区 */
Shell shell;
char shell_buffer[512];
/* 2. 自己实现shell写函数 */
signed short User_Shell_Write(char *data, unsigned short size)
{
for(int i = 0;i <size;++i)
{
USART_SendData(USART1,data[i]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE

最低0.47元/天 解锁文章
946

被折叠的 条评论
为什么被折叠?



