ECOS Embedded SDK for VS Code
embedded-sdk-vscode 是 ECOS Embedded SDK 3.0 的 VS Code 工作区扩展。插件以
SDK 提供的 ecos CLI 为唯一业务后端,提供工程发现、工程创建、配置、构建、烧录和
串口监视入口。
当前能力
- 自动发现工作区内的
.ecos/project.yml,并在 ECOS SDK 侧栏的 Projects 视图显示
工程、Board、Target、Profile、Example 和 Component 信息。
- 支持多根工作区以及活动工程选择。
- 调用
ecos validate/configure/build/flash,解析 CLI 1.0 JSON 契约并展示错误诊断。
- 在 VS Code 集成终端中运行交互式
menuconfig 和串口监视器。
- 从 SDK Example 和兼容 Board 创建工程,并切换现有工程的 Board。
- 启动时检测已安装或已注册的 SDK,在状态栏展示版本和有效性,并支持手动重新检测。
- 从官方 GitHub Release 检查 SDK 更新,经用户确认后下载、校验并调用 SDK 安装器完成更新。
- 查询当前 SDK 信息和工具链状态。
- 状态栏提供 SoC、开发板选择,以及编译、烧录和串口监视器快捷按钮。
开发
要求 Node.js 22 或更高版本,以及 VS Code 1.96 或更高版本。
npm install
npm run compile
npm test
在 VS Code 中打开本目录并按 F5,即可启动 Extension Development Host。生成 VSIX:
npm run vsix
安装后左侧 Activity Bar 会显示单色 ECOS Logo。若该入口曾被手动隐藏或移动,可从命令面板
执行 ECOS: 打开 ECOS SDK 侧栏,或在 Activity Bar 的右键菜单中勾选“ECOS SDK”。
SDK 配置
在 VS Code 设置中搜索“ECOS Embedded SDK”,可以直接使用配置项说明中的“浏览并选择”
链接打开系统资源管理器:
ECOS CLI 可执行文件路径 选择 ecos 可执行文件;开发 SDK checkout 可选择
tools/ecos.py。插件会先验证所选文件;Python 脚本会通过平台对应的 Python 3
解释器启动,不依赖脚本执行位。Windows 已安装 SDK 也可以选择 bin/ecos.cmd,
插件会使用安装器记录的 Python 解释器启动 CLI。若已安装 SDK 的配置仍指向
tools/ecos.py,插件会自动转到同一 SDK 下的 bin/ecos 或 bin/ecos.cmd,以加载
lib/ecos/python 中的私有依赖。
SDK 路径 选择 SDK 根目录;插件会确认目录中存在 tools/sdk-manifest.json 后再导入。
也可以从命令面板运行 ECOS: 选择 ECOS CLI 文件 或 ECOS: 选择 SDK 目录。确认选择后,
插件会直接写入用户级设置。默认直接执行 ecos,手动编辑配置时格式如下:
{
"embeddedSdk.cliPath": "/path/to/embedded-sdk/tools/ecos.py",
"embeddedSdk.sdkPath": "/path/to/embedded-sdk"
}
embeddedSdk.sdkPath 会转换为 CLI 的全局 --sdk 参数,并始终位于一级命令之前。
留空时遵循 SDK 自身的工程 pin、ECOS_SDK_HOME 和 active registration 解析顺序。
若 ecos 不在 PATH 中,需要通过 embeddedSdk.cliPath 指向已安装 SDK 的 CLI。
SDK 更新
插件从 openecos-projects/embedded-sdk Releases
检查比当前已安装 Release SDK 更新的版本。可以点击 SDK 侧栏标题中的“检查 SDK 更新”,也可
保留默认的启动检查;成功检查后的 24 小时内不会重复自动检查,并且只读取 Release 元数据,不会自动
下载或安装。SDK 开发 checkout 不参与自动更新。
发现更新后,用户确认“下载并安装”才会执行以下流程:
- Windows 下载
.zip,Linux 和 macOS 下载 .tar.gz。
- 校验
SHA256SUMS、GitHub Release 资产摘要及本地文件 SHA-256;任一结果不一致即停止。
- 检查安装目录可用空间,解压到临时目录,并先运行 SDK 安装器的 dry-run。
- 调用归档自带的
tools/install.py,将新版本并行安装到当前 SDK 的父目录并设为 active;
确认安装前也可以通过系统目录选择器更改该父目录。
- 安装成功后切换
embeddedSdk.sdkPath 和 embeddedSdk.cliPath,旧版本目录保持不变。
SDK 归档不包含工具链;工具链和主机依赖仍由 SDK 安装器独立校验、复用或下载。下载中的
归档会保存在扩展全局存储目录,只有 SHA-256 仍匹配时才复用。相关设置包括:
embeddedSdk.update.checkOnStartup:是否启动检查。
embeddedSdk.update.includePrereleases:是否包含 alpha、beta、rc 等预发布版本。
embeddedSdk.update.proxy:更新代理;留空时使用 VS Code 或环境变量代理,并传递给 SDK 安装器。
embeddedSdk.update.timeoutSeconds:网络请求和安装操作超时时间。
串口配置:
{
"embeddedSdk.monitor.port": "/dev/ttyUSB0"
}
端口留空时由 ecos monitor 自动检测;embeddedSdk.monitor.baudRate 留空时使用 Board
清单中的波特率,需要临时覆盖时再填写正整数。串口值可能是 Windows COM 端口等设备名,
不属于文件系统路径,因此保留文本输入。
工程约定
插件不直接修改 SDK 的 Board、Target、Component 或构建清单。所有状态解析和写操作均
通过 ecos CLI 完成,因此插件与命令行使用相同的校验、SDK 选择和错误语义。
详细分层与 SDK 对应关系见源码目录中的 docs/architecture.md。
产品目标、功能分期、技术方案和验收标准见源码目录中的 docs/proposal.md。
需要产品和 SDK 侧确认的问题见源码目录中的 docs/open-questions.md,可直接在每项的
“回复”位置填写结论。
发布前配置
当前作者为 XH_Timmo,Marketplace Publisher ID 为 XHTimmo,
扩展 ID 为 XHTimmo.embedded-sdk。工程仍保持 private: true,首次发布前还需要填写
真实的 repository,并确认发布策略后再移除 private。