# CPU 调试控制

> 触发词：halt、resume、step、break、断点、单步、CPU 停止、autostart
> 返回索引：[SKILL.md](../SKILL.md)

## 安全边界

这些命令会改变目标 MCU 的执行状态，执行前先确认目标板、COM 口和当前调试影响。

| 命令 | 影响 | Agent 行为 |
|------|------|------------|
| `halt` | 停止 CPU 执行 | 确认不会影响正在运行的设备流程 |
| `resume` | 恢复 CPU 执行 | 确认用户希望继续运行 |
| `step` | 单步执行一条指令 | 仅在用户明确调试上下文时执行 |
| `break` | 设置或清除 FPB 硬件断点 | 先确认目标函数/地址和 AXF 来源 |
| `autostart` | 生成上电自动启动 RTT 配置文本 | 只输出配置，不写硬件 |

## 命令说明

### 停止、恢复、单步

```bash
python -m mklink halt --port COM6
python -m mklink resume --port COM6
python -m mklink step --port COM6
```

省略 `--port` 时会自动检测 MKLink CDC 端口。

### 硬件断点

```bash
# 通过地址设置断点
python -m mklink break 0x08001234 --port COM6

# 通过 AXF 符号设置断点
python -m mklink break main --source path/to/firmware.axf --port COM6

# 列出/清除断点
python -m mklink break --list --port COM6
python -m mklink break --clear 0 --port COM6
python -m mklink break --clear all --port COM6
python -m mklink break --status --port COM6
```

硬件断点槽位有限；如设置失败，先用 `--list` 查看已占用槽位，再清理不需要的断点。

### RTT autostart 配置

```bash
python -m mklink autostart --addr 0x20000e24 --size 1024 --channel 0
```

该命令生成配置文本，不会自动写入目标板或项目文件。
