Lettershell之移植篇

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值