Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>GaryProbeNew to Visual Studio Code? Get it now.
GaryProbe

GaryProbe

Gary Technology

|
2 installs
| (0) | Free
Build STM32 / ESP32 firmware and flash with GaryProbe over BLE or remote SSH. 编译、远程烧录与校验。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GaryProbe for VS Code

在 VS Code 中编译固件、连接 GaryProbe,并选择本机 BLE 无线烧录或 SSH 现场主机远程烧录。支持 STM32F0/F1/F2/F3/F4/F7,以及 esptool 支持且通过 GaryProbe CH34x USB Host 连接的 ESP32 目标。

安装

公开下载与使用说明:GaryProbe for VS Code。

在 VS Code 的扩展面板选择 从 VSIX 安装,选择 garyprobe-vscode-0.1.1.vsix。打开受信任的固件工程,在左侧 GaryProbe 面板点击 安装 / 检查执行端。本机需要 Python 3.10+(本轮实测 Python 3.12),安装器创建独立虚拟环境并安装探针依赖。它不会安装编译器,也不会扫描、复位或烧录硬件。

插件包含探针运行库和 STM32 Host wheel,不需要 GaryCLI 源码目录,也不调用 AI 模型。Python 依赖从当前 pip 索引安装;安装需要网络。

日常使用

  1. 点击 配置工程,选择 STM32F 或 ESP32、编译方式和固件路径。
  2. 点击 连接 GaryProbe,从扫描结果选择探针;连接时验证设备公钥身份。
  3. 编辑代码,然后点击 编译并选择烧录位置。
  4. 编译成功后选择 本机 BLE 或 SSH 远程烧录。取消选择会停止,不会烧录。
  5. 查看 GaryProbe 输出面板中的执行主机、探针、镜像 SHA-256、烧录和校验结果。

编译只编译;烧录已有固件会使用当前磁盘上的构建产物,不会自动重新编译。需要保证产物对应最新代码时,使用“编译并选择烧录位置”。

编译在当前 VS Code 扩展主机执行。使用 VS Code Remote SSH 时,工作区、编译任务和本机 BLE 均位于该远程扩展主机。插件中的额外 SSH 选项可以把固件发送到另一台现场主机。本版本没有把编译任务放到 CH32V208 探针本身。

编译方式

  • ESP-IDF:使用 idf.py build。macOS/Linux 在设置 garyprobe.idfExport 中填写 ESP-IDF 的 export.sh 绝对路径。Windows 可在 ESP-IDF 环境中启动 VS Code,或选择已有编译任务。
  • Make:在工程根目录执行 make。
  • CMake:执行 cmake --build build,需预先配置构建目录。
  • 已有 VS Code 任务:选择当前工作区中的编译任务。任务必须以进程退出码 0 表示成功,不支持把持续后台监视任务当成编译完成信号。

PlatformIO 或其他工具链可以选择已有任务。ESP32 烧录需要完整 flasher_args.json;本版本不猜测 PlatformIO 的应用偏移和引导镜像。

工程配置保存在 .vscode/garyprobe.json,有 JSON Schema 提示。再次“配置工程”会打开已有配置,不覆盖。

ESP-IDF 示例:

{
  "version": 1,
  "kind": "esp32",
  "manifest": "build/flasher_args.json",
  "build": { "type": "esp-idf" }
}

STM32 示例:

{
  "version": 1,
  "kind": "stm32",
  "part": "STM32F103C8T6",
  "artifact": "build/firmware.elf",
  "base": "0x08000000",
  "build": { "type": "make" }
}

STM32 操作会驱动外部 SWD。请按实际目标填写型号并连接 GND/SWCLK/SWDIO;目标为 3.3V,不能同时让其他调试器驱动 SWD。只写目标主 Flash,保留未覆盖字节并逐字节验证;不解锁读保护,不写 option bytes/OTP。ESP32 使用官方 esptool,拒绝普通流程烧录已启用安全启动或 Flash 加密的目标,每个镜像都须通过设备 MD5 校验。ESP 引导程序、分区表和应用均从构建清单读取。

SSH 远程烧录

选择 SSH 后填写 user@host 或 ~/.ssh/config 中的主机别名。使用系统 OpenSSH,沿用 SSH 密钥和主机密钥检查;插件不保存密码、不绕过主机认证。请先在终端完成首次登录和主机密钥确认。

现场主机需要:

  • Linux 或 macOS,Python 3.10+,初次安装能下载 Python 依赖。
  • 可用的 BLE 适配器;Linux 需要运行 BlueZ/D-Bus,macOS 需要允许执行端使用蓝牙。
  • 与 GaryProbe 在蓝牙通信范围内,SSH 账号具有相应权限。

选定 SSH 执行位置后,点击 安装 / 检查执行端。插件只把公开运行库安装到该账号的 ~/.local/share/garyprobe-vscode/0.1.0/ 并创建虚拟环境,不修改系统 Python、不创建公网硬件控制接口、不配置开机服务。

云服务器如果没有现场蓝牙通道,不能直接连接远处的 GaryProbe。当前不接入 GaryCLI 小程序硬件转发协议;这里的远程端是可通过 SSH 到达的现场主机。

固件完整上传并通过 SHA-256 校验后才启动烧录。烧录由现场独立进程执行,SSH/编辑器断开不会主动终止该进程;现场主机断电、操作系统清理用户进程仍会中断任务。重新连接后使用 查询最近烧录结果,不会重复提交烧录。任何未确定结果都应先查记录,再决定是否重试。

设备身份与互斥

默认只信任本次配置的 GaryProbe-9C7F 公钥身份。其他量产设备需要制造商提供可信公开身份文件,通过全局设置 garyprobe.identityFile 指定。身份文件不应包含私钥或种子。所选探针身份在实际写入前再次验证。

同一执行主机通过 ~/.cache/garyprobe/hardware.lock 与现有 MCP/CLI 互斥。连接被其他程序占用时应先断开已有会话。烧录任务执行时,前台连接会释放,交给任务进程独占;完成后需要时重新连接。

任务文件、固件、日志及结果保存在执行主机 ~/.local/share/garyprobe-vscode/state/jobs/;不自动上传到 GaryCLI 服务器。任务可能包含私有固件,请仅将任务发送到你信任的现场主机,并按需清理已完成的任务目录。

当前边界

  • 首版包含连接、编译、烧录与结果查询,没有集成单步调试和持续串口终端。
  • 当前探针 USB 串口持续监听存在已知掉线问题;运行库保留“读取失败不自动复位目标”的修正。
  • 芯片目录覆盖不等于每个型号均做过实机测试。
  • 已实测 macOS 上 VS Code 编译、BLE 认证及 ESP32-S3 三镜像烧录校验;Linux SSH 安装、上传及 SHA-256 校验通过。当前云端测试机无蓝牙,尚未实测 SSH 现场硬件烧录,Windows 也尚未实测。

开发与打包

npm ci
npm test
python3 -m unittest discover -s test -p 'test_*.py'
npm run package

修改 GaryCLI 原生探针模块后,应同步 runtime/gp_native 中对应文件,再重建安装包。STM32 Host wheel 从 firmware/ch32v208-garyprobe-stm32f/host 构建。第三方来源见 THIRD_PARTY.md。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft