基于 Rust + ratatui 的终端交互工具(TUI),用于快速创建和配置嵌入式 C 的 CMake 工程。
- 新建项目 — 交互式填写配置后一键生成标准 CMake 工程骨架
- 打开已有项目 — 解析
cmake/config.cmake,支持编辑所有set()变量 - 基本配置 — 项目名、MCU 型号、工具链前缀、构建类型
- 编译选项 — 管理
COMPILE_FLAGS列表(增删) - 链接配置 — 指定链接脚本路径
- 编译宏 — 管理
COMPILE_DEFINITIONS列表(增删) - 自定义变量 — 展示并编辑
config.cmake中的未知变量(如 Telink 私有宏) - 构建 — 调用系统
cmake完成配置 + 编译,输出日志实时滚动显示
<project_dir>/
├── CMakeLists.txt # 通用根 CMake,自动引入配置和工具链
├── cmake/
│ ├── config.cmake # 所有可配置变量(唯一需要手动维护的文件)
│ ├── toolchain.cmake # 根据 TOOLCHAIN_PREFIX 自动生成的工具链配置
│ └── functions.cmake # check_vars() 等辅助函数
└── src/
└── main.c # 空白入口文件
config.cmake 示例:
set(PROJECT_NAME my_project)
set(MCU_CORE cortex-m4)
set(TOOLCHAIN_PREFIX arm-none-eabi-)
set(BUILD_TYPE Debug)
set(LINKER_SCRIPT "")
set(COMPILE_FLAGS
-Wall
-O2
-ffunction-sections
)
set(COMPILE_DEFINITIONS
NDEBUG
)┌─ Embedded Project Container ──────────────────────────────────┐
│ 菜单 (22列) │ 基本配置 │
│──────────────────────│────────────────────────────────────── │
│ 新建项目 │ 项目名称 [my_project ] │
│ 打开项目 │ MCU型号 [cortex-m4 ] │
│ ──────────── │ 工具链前缀 [arm-none-eabi- ] │
│ >基本配置 │ 构建类型 [Debug ] │
│ 编译选项 │ 链接脚本 [ ] │
│ 链接配置 │ │
│ 编译宏 │ │
│ 自定义变量 │ │
│ ──────────── │ │
│ 构建 │ │
│ 退出 │ │
│──────────────────────┴────────────────────────────────────── │
│ [↑↓] 导航 [Enter] 编辑 [s] 保存 [a] 新增 [d] 删除 [q] 退出│
└───────────────────────────────────────────────────────────────┘
| 按键 | 说明 |
|---|---|
↑ / ↓ |
菜单导航 / 列表项选择 |
Enter |
进入编辑 / 确认 |
Tab |
切换到下一个字段 |
Esc |
取消编辑 |
a |
在列表中新增条目 |
d |
删除选中条目 |
s |
保存配置到 config.cmake |
q / Ctrl-C |
退出程序 |
推荐使用 GNU 工具链(避免依赖 MSVC + Windows SDK):
# 安装 64-bit MinGW-w64(Scoop 方式)
scoop install mingw
# 或 MSYS2 方式
# pacman -S mingw-w64-x86_64-gcc
# 切换 Rust 默认工具链
rustup default stable-x86_64-pc-windows-gnu注意:如果在 Git Bash 下使用 MSVC 工具链,
/usr/bin/link.exe(GNU coreutils) 会遮蔽 MSVC 的链接器,导致链接失败。切换为 GNU 工具链可彻底规避此问题。
也可以继续使用 MSVC 工具链,但需要确保:
- Visual Studio 已安装 "Desktop development with C++" 工作负载
- 勾选 Windows 11 SDK 组件
- 通过 "x64 Native Tools Command Prompt" 或在 PATH 中正确配置好 MSVC 链接器
工具链由用户自行安装并配置 PATH,TUI 只负责管理 config.cmake 内容。
例如 ARM Cortex-M 项目:
# Scoop
scoop install gcc-arm-none-eabi
# 或从 ARM 官网下载并解压,将 bin/ 目录加入 PATH# Scoop
scoop install cmake
# 或从 https://cmake.org/download/ 安装git clone https://github.com/viys/embedded_project_container
cd embedded_project_container
cargo build --release
cargo run- 启动 TUI,选择「新建项目」
- 输入项目目录路径(如
C:/workspace/my_fw) - TUI 自动生成项目骨架并跳转到「基本配置」
- 填写 MCU 型号、工具链前缀等信息
- 按
s保存到cmake/config.cmake
- 选择「打开项目」
- 输入包含
cmake/config.cmake的项目根目录路径 - TUI 自动解析配置,已知变量填入对应面板,未知变量显示在「自定义变量」中
- 选择「构建」(或在菜单上导航至「构建」后按
Enter) - TUI 依次执行
cmake -S . -B build和cmake --build build - 输出日志在右侧面板滚动显示,错误行以红色高亮
src/
├── main.rs # 终端初始化、panic hook、事件循环、退出清理
├── app.rs # App 状态、Screen/InputMode 枚举、按键处理逻辑
├── ui.rs # ratatui 渲染(布局、各面板)
└── cmake.rs # config.cmake 解析/写入、项目文件生成
MIT