
Eide
Lets a solo firmware builder scan EIDE projects, pick a build config, and compile to ELF/HEX paths from the agent without manual unify_builder clicks.
Install
npx skills add https://github.com/zhinkgit/embeddedskills --skill eideWhat is this skill?
- Scans directories for EIDE projects that contain `.eide/eide.yml`
- Enumerates ConfigName build profiles before compile or rebuild
- Supports incremental compile, full rebuild, and clean targets
- Returns `elf_file` and `hex_file` paths plus ELF text/data/bss size analysis
- Parses build logs into structured errors and warnings
Adoption & trust: 1 installs on skills.sh; 340 GitHub stars; trending (+100% hot-view momentum).
Recommended Skills
Azure Kubernetesmicrosoft/azure-skills
Github Actions Docsxixu-me/skills
Deploy To Vercelvercel-labs/agent-skills
Vercel Cli With Tokensvercel-labs/agent-skills
Turborepovercel/turborepo
Docker Expertsickn33/antigravity-awesome-skills
Journey fit
Primary fit
Every capability centers on discovering EIDE workspaces and producing firmware binaries—the core Build-phase job before flash, test, or ship. Integrations fits because the skill orchestrates VS Code, the EIDE extension, and unify_builder rather than authoring application source or docs.
SKILL.md
READMESKILL.md - Eide
{ "builder_dir": "C:\\Users\\Administrator\\.vscode\\extensions\\cl.eide-3.27.0\\res\\tools\\win32\\unify_builder", "builder_exe": "unify_builder.exe", "code_exe": "code", "toolchain_prefix": "arm-none-eabi-", "operation_mode": 1 } # eide Claude Code skill,驱动 EIDE (Embedded IDE) 进行工程扫描、构建配置枚举、编译构建,并返回可交给 `jlink/openocd` 的产物路径。 ## 功能 - 扫描目录下的 EIDE 工程(含 `.eide/eide.yml` 的目录) - 枚举工程中的构建配置 (ConfigName) - 增量编译 / 全量重建 / 清理 - 返回 `elf_file` / `hex_file` 等产物路径,便于继续交给 `jlink/openocd` - ELF 大小分析(text/data/bss 和内存使用) - 解析构建日志,输出结构化错误/警告信息 ## 环境要求 - [VS Code](https://code.visualstudio.com/) — 提供 `code` CLI - [EIDE 扩展](https://marketplace.visualstudio.com/items?itemName=cl.eide) — 提供 `unify_builder` - ARM CC (AC5/AC6) 或 arm-none-eabi-gcc — 工具链 - Python 3.x — 运行脚本(需要 PyYAML) - PyYAML — `pip install pyyaml` ## 配置 ### 环境级配置(skill/config.json) 复制 `config.example.json` 为 `config.json`,根据实际安装路径修改: ```json { "builder_dir": "C:\\Users\\<user>\\.vscode\\extensions\\cl.eide-3.27.0\\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 所在目录 | | `builder_exe` | 否 | builder 可执行文件名,默认 `unify_builder.exe` | | `code_exe` | 否 | VS Code CLI 路径,默认从 PATH 查找 | | `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` | 默认工程根目录(相对 workspace,包含 `.eide/eide.yml`) | | `config` | 默认构建配置名称 | | `log_dir` | 构建日志输出目录,默认 `.embeddedskills/build` | ### 参数解析优先级 参数解析顺序(从高到低): 1. CLI 显式参数 2. 环境级配置(skill/config.json) 3. 工程级配置(.embeddedskills/config.json) 4. state.json(上次构建记录) 5. 搜索/询问 # EIDE unify_builder 参考 ## unify_builder CLI `unify_builder` 是 EIDE 扩展的统一构建后端,位于 VS Code 扩展目录下: ``` <vscode-extensions>/cl.eide-<version>/res/tools/win32/unify_builder/ ``` ### 命令 | 命令 | 说明 | |------|------| | `build` | 增量编译 | | `rebuild` | 全量重建 | | `clean` | 清理构建产物 | ### 参数 | 参数 | 说明 | |------|------| | `--params <path>` | builder.params 文件路径(必需) | ### builder.params `builder.params` 是由 EIDE 从 `eide.yml` 自动生成的 JSON 文件,包含完整构建配置: - `name`:项目名称 - `target`:配置名称(ConfigName) - `toolchain`:工具链类型(AC5/AC6/GCC) - `toolchainLocation`:工具链路径 - `sourceList`:源文件列表 - `incDirs`:include 路径 - `defines`:预定义宏 - `options`:编译/链接选项 - `env`:环境变量(含产物输出路径等) - `dumpPath` / `outDir`:构建输出目录 ### 构建产物 构建产物输出到 `build/<ConfigName>/` 目录: | 文件 | 说明 | |------|------| | `<ProjectName>.axf` | Keil 兼容调试文件 | | `<ProjectName>.elf` | ELF 可执行文件 | | `<ProjectName>.hex` | Intel HEX 烧录文件 | | `<ProjectName>.bin` | 二进制烧录文件 | | `<ProjectName>.s19` | Motorola S19 格式 | | `<ProjectName>.map` | 链接 Map 文件 | | `compiler.log` | 编译日志 | | `unify_builder.log` | 构建器日志 | | `builder.params` | 构建参数 | ### 常见编译错误 | 错误类型 | 可能原因 | |----------|----------| | `error: A1023E: missing "{" after #include` | ARM 汇编文件使用了 C 风格 include | | `error: L6218E: Undefined symbol` | 链接阶段缺少源文件或库 | | `Fatal error: L6002U: Could not open file` | 链接脚本路径不存在 | | `No such file or directory` | include 路径或源文件路径不正确 | | `command not found` | 工具链未安装或路径配置错误 | ### 与 UV4 的关系 EIDE 项目可与 Keil MDK 项目共享同一套 ARM CC 工具链。两者产出的 `.axf` 和 `.hex` 文件格式完全兼容: - EIDE `builder.params` 中的 `toolchainLocation` 指向 Keil 安装目录下的 ARM CC - `env.KEIL_OUTPUT_DIR` 环境变量指明了 Keil 期望的输出目录 - 链接脚本(scatter file)与 Keil 工程共用同一份 """EIDE build / rebuild / clean via unify_builder.""" from __future__ import annotations import argparse import json import os import re import subprocess import sys import time from pathlib import Path ROOT_DIR = Path(__file__).resolve().parents[2] if str(ROOT_DIR) not in sys.path: sys.path.insert(0, str(ROOT_DIR)) from eide_runtime import ( # noqa: E402