# Eide

EIDE (Embedded IDE) 工程构建工具，用于扫描 .eide/eide.yml 工程、枚举构建 配置 (ConfigName)、执行...

- Repository: https://github.com/zhinkgit/embeddedskills (777 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-20
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add zhinkgit/embeddedskills --skill eide -g -a claude-code -y`
Codex: `npx skills add zhinkgit/embeddedskills --skill eide -g -a codex -y`
Cursor: `npx skills add zhinkgit/embeddedskills --skill eide -g -a cursor -y`
Gemini CLI: `npx skills add zhinkgit/embeddedskills --skill eide -g -a gemini-cli -y`

## Description

EIDE (Embedded IDE) 工程构建工具，用于扫描 .eide/eide.yml 工程、枚举构建 配置 (ConfigName)、执行 build/rebuild/clean 并解析构建日志，返回可供 jlink/openocd 复用的产物路径。当用户提到 EIDE、Embedded IDE、eide.yml、 unify_builder、VS Code EIDE 扩展、Cl.eide 时自动触发，也兼容 /eide 显式调用。 即使用户只是说"用 EIDE 编译一下"或"EIDE 烧录到板子上"，只要上下文涉及 EIDE 嵌入式工程就应触发此 skill。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# EIDE 嵌入式工程构建

本 skill 提供 EIDE (Embedded IDE) 工程的发现、构建配置枚举、增量编译、全量重建、清理和 ELF 大小分析能力，并返回可供 `jlink/openocd` 继续使用的固件产物路径。

EIDE 是 VS Code 下的嵌入式开发扩展，使用 ARM CC (AC5/AC6) 或 GCC 工具链，通过 `unify_builder` 统一构建后端驱动。

## 配置

### 环境级配置（skill/config.json）

skill 目录下的 `config.json` 包含环境级配置，首次使用前确认 `builder_dir` 路径正确：

```json
{
  "builder_dir": "C:\\Users\\<user>\\.vscode\\extensions\\cl.eide-<version>\\res\\tools\\win32\\unify_builder",
  "builder_exe": "unify_builder.exe",
  "code_exe": "code",
  "toolchain_prefix": "arm-none-eabi-",
  "operation_mode": 1
}
```

- `builder_dir`：EIDE unify_builder 所在目录（必填，位于 VS Code 扩展目录下）
- `builder_exe`：builder 可执行文件名，Windows 默认 `unify_builder.exe`
- `code_exe`：VS Code CLI 路径，默认从 PATH 查找 `code`
- `toolchain_prefix`：用于 size 分析的工具链前缀，默认 `arm-none-eabi-`
- `operation_mode`：`1` 直接执行 / `2` 输出风险摘要但不阻塞 / `3` 执行前确认

### 工程级配置（workspace/.embeddedskills/config.json）

工程级共享配置统一保存在工作区的 `.embeddedskills/config.json` 中：

```json
{
  "eide": {
    "project": "",
    "config": "",
    "log_dir": ".embeddedskills/build"
  }
}
```

- `project`：默认 EIDE 工程根目录（包含 `.eide/eide.yml` 的目录），构建成功后会自动更新
- `config`：默认构建配置名称（对应 eide.yml 中的 ConfigName），构建成功后会自动更新
- `log_dir`：构建日志输出目录，默认 `.embeddedskills/build`

### 参数解析优先级

参数解析顺序（从高到低）：
1. CLI 显式参数
2. 环境级配置（skill/config.json）
3. 工程级配置（.embeddedskills/config.json）
4. `.embeddedskills/state.json`（上次构建记录）
5. 搜索/询问

## 子命令

| 子命令 | 用途 | 风险 |
|--------|------|------|
| `scan` | 搜索当前目录下的 EIDE 工程（含 `.eide/eide.yml` 的目录） | 低 |
| `configs` | 枚举工程中的构建配置 | 低 |
| `build` | 增量编译 | 中 |
| `rebuild` | 全量重建 | 中 |
| `clean` | 清理构建产物 | 高 |
| `size` | 分析 ELF 文件大小（text/data/bss 和内存使用） | 低 |

## 执行流程

1. 读取 `config.json`，确认 `builder_dir` 路径有效
2. 未指定子命令时默认执行 `scan`
3. 未提供工程路径时先执行 `scan` 搜索工程
4. 同时发现多个工程或多个配置时，列出选项让用户选择，绝不自动猜测
5. `build/rebuild/clean` 按 `operation_mode` 决定是否需要确认
6. `build/rebuild` 成功后，从构建目录解析 `elf_file` / `hex_file` 等产物路径
7. 所有构建命令基于 `builder.params` 调用 `unify_builder`，输出到日志文件后解析
8. `size` 默认分析最近一次构建产物的 .elf 文件

## 脚本调用

The rest: https://github.com/zhinkgit/embeddedskills/blob/HEAD/eide/SKILL.md
