# Mklink-AI-Probe
**Repository Path**: lgy1234/Mklink-AI-Probe
## Basic Information
- **Project Name**: Mklink-AI-Probe
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-27
- **Last Updated**: 2026-06-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MKLink AI Probe
**嵌入式一站式调试工具** — 固件烧录 · RTT 可视化 · 内存读写 · HardFault 解码 · Modbus RTU · 远程 GUI
[](https://python.org)
[](https://tauri.app)
[](https://vuejs.org)
[](LICENSE)
[功能概览](#功能概览) · [快速开始](#快速开始) · [高速内存协议](#高速内存协议-dump-memory--flush-memory) · [探针固件](#探针固件-mk-firmware) · [命令速查](#命令速查) · [架构](#架构)
---
## 功能概览
| 功能 | 说明 |
|------|------|
| **固件烧录** | 一键烧录 Keil/IAR 工程产物(HEX/BIN),自动检测 MCU 与 FLM |
| **RTT 实时捕获** | SEGGER RTT 数据流捕获,内置波形可视化(RTT View / VOFA+) |
| **SuperWatch** | 高频变量连续采样与实时 Web 波形图(支持 `--dump-mem` 高速协议) |
| **高速内存协议** | `dump-memory` 二进制帧采集(固件 B1 自动分块);`flush-memory` 静默写入 |
| **内存读写** | RAM / Flash / 寄存器读写,十六进制查看器 |
| **探针固件管理** | 内置 V3/V4 匹配 `.uf2`,连接时自动版本检查与升级指引 |
| **符号与类型** | 通过 DWARF/ELF 解析 AXF 符号表、结构体、枚举定义 |
| **HardFault 解码** | Cortex-M Fault 寄存器自动解码,addr2line 源码定位 |
| **Modbus RTU** | 完整 Modbus 调试:扫描、读写、轮询、点表生成、Web Dashboard |
| **串口调试** | 通用 UART 终端,支持自定义协议 Profile |
| **远程 GUI** | FastAPI 后端 + Vue 3 SPA,浏览器即用 |
| **Tauri 桌面** | Rust 桌面应用,Python sidecar,原生窗口体验 |
| **AI Agent 集成** | Claude / Cursor / OpenAI Agent 通过 Skill + CLI 直接操控硬件 |
## Screenshots
| ConfigView — 工程配置与设备连接 |
Dashboard — RTT 实时波形可视化 |
 |
 |
| SuperWatch — 高频变量实时监控 |
 |
## 快速开始
本仓库是一个 **AI Agent Skill**,不需要手动逐条执行安装命令。把 `Mklink-AI-Probe/` 目录交给 AI,它会自动读取 Skill 并完成环境配置。
### 给 AI 的一句话
> 请读取 `Mklink-AI-Probe/` 目录,安装 Mklink AI Probe Skill,并帮我初始化嵌入式调试环境。
### AI 会做什么
1. 读取 [`Mklink-AI-Probe/SKILL.md`](Mklink-AI-Probe/SKILL.md) — Skill 入口、命令路由、Agent 约束
2. 按 [`Mklink-AI-Probe/references/install.md`](Mklink-AI-Probe/references/install.md) 安装 `mklink` Python 包及可选依赖
3. 根据你的意图查阅 `references/` 下的命令文档,执行 `python -m mklink `
### 典型工作流(由 AI 代劳)
```bash
python -m mklink project-init # 自动检测 Keil/IAR 工程、MCU、COM 口
python -m mklink flash # 烧录固件
python -m mklink rtt --duration 10 # 捕获 RTT 数据
```
启动 GUI:`python -m mklink gui`(浏览器)或 `cd Mklink-AI-Probe/gui && npx tauri dev`(桌面应用)。
> 手动安装说明见 [Mklink-AI-Probe/references/install.md](Mklink-AI-Probe/references/install.md)。
## 高速内存协议(dump-memory / flush-memory)
V3.3.1 / V4.3.1 探针固件新增 `cmd.dump_memory` 与 `cmd.flush_memory` 公共 API。
### dump-memory — 高速采集(固件侧自动分块)
调用 `cmd.dump_memory(addr, size, ..., period)`,返回 `MPMDMPMD` 二进制帧:
| 协议 | 触发条件 | 说明 |
|------|----------|------|
| **OLD** | 单次总量 ≤ 2048 B | 单帧返回全部数据 |
| **B1** | 单次总量 > 2048 B | 固件按 **2048 B/block** 自动分块;CLI 重组后计为 1 个完整样本 |
- 单次上限 **32 KiB**(多 region 合计);支持最多 16 个 region(`ADDR:SIZE`)
- SuperWatch `--dump-mem` 优先走此协议,不支持时回退 `read_ram` 轮询
```bash
python -m mklink dump-memory 0x20000000:16 # OLD 帧
python -m mklink dump-memory 0x08020000:2049 # 触发 B1 分块
python -m mklink dump-memory 0x20000000:16 --period 0.01 --frames 10
```
### flush-memory — 静默写入(适合与 dump 并发)
成功时**不输出 hexdump**,不会污染 `dump-memory` 二进制流(`write-ram` 会打断帧解析)。
| 场景 | 推荐边界 |
|------|----------|
| 单地址 `ADDR:BYTE,...` | 1~16 字节稳定(varargs 上限约 20 B) |
| 多地址一次提交 | ≤ 8 个地址项,单块 ≤ 12 KB |
```bash
python -m mklink flush-memory 0x20010000:0xDE,0xAD,0xBE,0xEF
python -m mklink flush-memory 0x20010000:0x11,0x22 0x20010100:0x44,0x55 --verify
```
> 边界详情:[references/flush-memory.md](Mklink-AI-Probe/references/flush-memory.md) · 命令总览:[references/commands-memory.md](Mklink-AI-Probe/references/commands-memory.md)
## 探针固件(MK-Firmware)
| 文件 | 适用探针 |
|------|----------|
| `MK-Firmware/MicroLink_V3.3.1.uf2` | MicroLink V3 |
| `MK-Firmware/MicroLink_V4.3.1.uf2` | MicroLink V4 |
`firmware_check.py` 在 `project-init` 和 GUI 连接时自动比对探针版本,过低时提示拖入同 major 号的 `.uf2` 升级。`dump-memory` / `flush-memory` 需 V3.3.1 / V4.3.1 及以上固件。
```bash
python -m mklink version # 查看当前探针固件版本
```
可通过 `MKLINK_FIRMWARE_DIR` 环境变量覆盖固件目录。
## 命令速查
| 命令 | 说明 |
|------|------|
| `project-init` / `project-info` | 初始化 / 查看项目配置 |
| `flash` | 一站式烧录(连接 → IDCODE → FLM → 烧录) |
| `version` | 读取烧录器固件版本 |
| `rtt` / `rtt-integrate` / `rtt-find` | RTT 捕获 / 源码集成 / 地址查找 |
| `read-ram` / `write-ram` / `read-flash` / `read-reg` | 内存与寄存器读写 |
| `dump-memory` (`dump`) | 高速二进制帧采集(B1 自动分块) |
| `flush-memory` | 静默写 RAM,适合与 dump 并发 |
| `vofa` / `watch` / `superwatch` | 变量观测与高频采样 |
| `symbols` / `typeinfo` / `memmap` | AXF 符号、DWARF 类型、段表分析 |
| `hardfault` | Cortex-M Fault 寄存器解码 |
| `modbus` / `serial` | Modbus RTU / 通用串口调试 |
| `resources` | 本地资源管理(释放 stale 串口锁) |
| `serve` / `gui` | 远程 API 服务 / Web GUI |
| `discover` / `test` | 发现探针端口 / 连接测试 |
| `halt` / `resume` / `step` / `break` | CPU 调试控制 |
完整命令文档见 [Mklink-AI-Probe/references/](Mklink-AI-Probe/references/) 目录。
## 架构
```
┌─────────────────────────────────────────────┐
│ Tauri 桌面应用 / 浏览器 GUI │
│ (Vue 3 + TypeScript SPA) │
├─────────────────────────────────────────────┤
│ FastAPI 服务 (REST + SSE + WS) │
│ port 8765 │
├─────────────────────────────────────────────┤
│ Device / DeviceDispatcher │
│ MKLinkSerialBridge (pyserial) │
│ 进程级 SerialLock │
├─────────────────────────────────────────────┤
│ MKLink 探针 (USB CDC) │
│ SWD / JTAG │
├─────────────────────────────────────────────┤
│ 目标 MCU (ARM Cortex 内核) │
└─────────────────────────────────────────────┘
```
**两种使用方式:**
- **CLI 模式** — `python -m mklink `,适合脚本化和 AI Agent 集成
- **GUI 模式** — 浏览器或 Tauri 桌面窗口,可视化操作
## 开发构建
工作目录为 `Mklink-AI-Probe/`(含 `pyproject.toml` 的 Skill 根目录)。
### Python 包
```bash
cd Mklink-AI-Probe
pip install -e . # 基础安装
pip install -e ".[gui]" # 含 GUI 依赖
python -m mklink serve --port 8765 # 启动 API 服务
```
### Tauri 桌面应用
```bash
cd Mklink-AI-Probe/gui
npm install
npx tauri dev # 开发模式
npx tauri build # 生产构建(MSI + NSIS)
```
> Tauri 构建需要 Rust 工具链和 MSVC Build Tools,详见 [references/install.md](Mklink-AI-Probe/references/install.md)。
### 测试
```bash
cd Mklink-AI-Probe
pytest # Python 单元测试
cd gui && npm test # 前端单元测试
```
## 可选依赖
| 工具 | 用途 | 安装 |
|------|------|------|
| `arm-none-eabi-readelf` | AXF 符号解析、DWARF 类型查询、HardFault 源码定位 | `winget install Arm.GnuArmEmbeddedToolchain` |
| Node.js | Tauri 桌面应用、Vue 前端构建 | `winget install OpenJS.NodeJS.LTS` |
| Rust | Tauri v2 桌面应用编译 | [rustup.rs](https://rustup.rs) |
## 支持的 MCU
支持所有 **ARM Cortex 内核** MCU(Cortex-M / Cortex-A 等),通过 MKLink 探针的 SWD/JTAG 接口连接,不限于特定厂商或型号。
- 探针自动读取芯片 IDCODE,匹配烧录算法(FLM)
- 内存映射、Flash 参数等通过 `mklink/mcu_profiles.json` 配置,可按需扩展
- 已内置多厂商常用型号配置(ST、Nationstech、GD、MM32 等),新芯片只需添加对应 profile
## 项目结构
```
Mklink-AI-Probe/ # 本仓库根目录
└── Mklink-AI-Probe/ # Skill 与 Python 包根目录
├── SKILL.md # AI Agent Skill 入口
├── agents/ # OpenAI Agent 配置
├── mklink/ # 核心 Python 包
│ ├── cli.py # CLI 命令调度
│ ├── dump_memory.py # dump_memory 二进制帧解析(OLD + B1)
│ ├── firmware_check.py # 探针固件版本检查
│ ├── flash.py / rtt.py / superwatch.py
│ ├── remote/ # FastAPI 远程服务
│ ├── modbus/ # Modbus RTU
│ └── serial/ # 串口通信
├── gui/ # Vue 3 + Tauri GUI
├── references/ # 命令与安装文档(AI 按需读取)
├── MK-Firmware/ # MicroLink 烧录器固件 (.uf2)
└── scripts/ # 示例脚本
```
## License
MIT License