MicroShell 微型嵌入式Shell microshell

ESP32 3/5 已发布
marcinbor85 358 Stars MIT BOM 完整度: 0/5 教程完整度: 0/5
MicroShell 微型嵌入式Shell

项目简介

MicroShell是轻量级纯C的shell模拟器,专用于嵌入式裸机系统。


MicroShell 是一个轻量级的纯 C 语言虚拟终端实现,专为资源受限的裸机嵌入式系统设计。它兼容 VT100 终端标准,能够在 Arduino、AVR、PIC、STM32、ESP32 乃至 x86 和树莓派等不同硬件平台上开箱即用。项目核心解决的是在小型微控制器上提供交互式命令行界面的难题,传统 shell 往往因资源消耗大、依赖操作系统而无法部署,而 MicroShell 凭借异步非阻塞架构,仅需在主循环中调用一个非阻塞函数即可运行,不会阻塞其他任务,非常适合内存和算力有限的场景。

标签

项目特点

**名称自动补全**:支持类似 bash 的 TAB 键自动补全功能。
**无动态内存分配**:避免内存泄漏问题。
**硬件无关性**:可在 AVR、PIC、STM32、ESP32 以及 x86 或 Raspberry Pi 上运行。
**丰富的示例**:可通过 Arduino 库管理器获取。
**纯 C 源码**:兼容多种编译器。
**退格键支持**:简单易用。
**VT100 兼容**:默认的 putty 配置即可使用。
**易于扩展**:添加新功能非常简单。
**内置命令**:支持 LS、CAT、PWD、HELP、XXD、ECHO 等基本命令。
**可扩展配置**:允许排除不需要的模块以减小体积。
**支持翻译**:可轻松实现多语言支持。
**无内部缓冲区**:支持无限长度的数据流。
**无静态变量**:可在单个系统中使用多个独立的 Shell 实例。
**面向对象架构**:使用函数指针实现。
**支持根目录树**:包含带回调的静态虚拟文件,可完全自定义。
**极简集成**:只需一个简单的 I/O 操作接口。
**异步架构**:静态回调不是问题。
**非阻塞 API**:只需在主循环中调用一个非阻塞函数。
**单元测试和功能测试**:确保代码稳定性。

技术规格

编程语言 纯 C
目标平台 嵌入式裸机系统(AVR, PIC, STM32, ESP32, x86, RPi)
终端兼容性 VT100
架构 异步、非阻塞
内存分配 无动态分配
静态变量
内置命令 LS, CAT, PWD, HELP, XXD, ECHO
输入缓冲区大小 可配置(示例中为 32 字节)
输出缓冲区大小 可配置(示例中为 32 字节)
路径最大长度 可配置(示例中为 32 字节)

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
MicroShell 源码 1 从 GitHub 仓库获取
微控制器开发板 1 如 Arduino、STM32、ESP32 等
USB 转串口模块 1 用于与 PC 通信(如开发板自带则无需)
串口终端软件 1 如 PuTTY、screen、minicom 等

能力画像

⚪ 记忆与知识检索: 1/5
🔵 逻辑推演: 2/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 1/5
🔵 数理与计算: 3/5
🔵 动手与操作: 3/5
⚪ 狂热与坚持: 1/5
⚪ 创造与创新: 2/5

所需技能

🔧 **动手能力**:需要能够将 MicroShell 集成到嵌入式项目中,包括配置 I/O 接口、初始化 Shell 实例、挂载目录等。对于 Arduino 用户,操作相对简单。 💻 **编程能力**:需要具备 C 语言编程基础,理解函数指针、结构体、回调等概念。能够阅读和修改示例代码。 ⚡ **电子电路**:需要了解基本的串口通信(UART),能够将微控制器与 PC 连接。

适用场景

为嵌入式设备提供一个交互式命令行界面,用于调试、配置或监控。
在资源受限的微控制器上实现一个轻量级的 Shell 环境,替代传统的串口调试方式。
作为嵌入式系统教学工具,帮助学生理解 Shell 的工作原理和嵌入式编程。