跳转至

MKLink x Arm MCU:30MHz SWD + AI驱动,为调试和数据流监控带来无与伦比的体验

20.17 万次/秒单变量采集(20 秒实测)。连续 4 KiB 内存读取,1,061.56 KiB/s。

这是 STM32F103RET6 已完成验证的性能基准。通过 MKLink,你可以在程序运行时观察变量、比较调参效果,也可以调用 AI 完成采集和计算。实时数据直接进入调试流程,让你更快验证想法。

01|性能,直接看数据

采集内容 中速 10 MHz 高速 20 MHz 极速 30 MHz
单个 RAM 变量,4 B 116,901 次/秒 175,057 次/秒 201,749 次/秒
4 个连续变量,共 16 B 20,063 组/秒 28,372 组/秒 32,213 组/秒
连续 RAM,每块 4 KiB 578.965 KiB/s 881.522 KiB/s 1,061.556 KiB/s

STM32F103RET6 真机实测。性能基准与本次功能演示分别采集。表中持续采样率按探针时间戳统计,包含批间空隙。

日常观察可以先用 10 MHz、1 ms 间隔,需要捕捉更细的变化时,再提高档位和采集密度。

九路正弦波同时展开,每路幅度 100,相邻相差 22.5°,周期 4 秒。下面这段动图录自 STM32F103 实机连接的 Web GUI:

30 MHz 下九路错相正弦波的真实 Web GUI 动图

STM32F103 九路正弦波完整界面

动图直接录制网页中的波形画布,约 10 帧/秒;页面刷新帧率、变量更新频率和探针采样率是三个不同指标。九路演示与单变量性能基准分别记录。

更少的等待,更专注于设计与验证。连续采集让你能够回看变化过程,对比不同参数下的响应。需要分析时,直接使用这份数据,减少反复加打印、导出和整理文件的操作。

02|你定目标,用 AI 辅助调参

连接 MKLink 和开发板,在 AI 开发环境中装好 MKLink Skill,告诉 AI 工程位置和板型。本例使用 STM32F103RET6,主频为 72 MHz,工程基于 RT-Thread 5.1.0。

MKLink 提供桌面安装版和 Web GUI。你可以直接操作界面完成调试,也可以调用 AI 辅助分析和执行重复任务,按自己的习惯选择工作方式。

GUI 后端持有设备连接。让 AI 订阅同一条数据流后,你可以在网页观察波形,同时要求它计算误差、比较结果。调试目标和验收标准由你确定,提示词就是对 AI 的任务要求,例如:

使用这个 STM32F103 工程,保持 Web GUI 可见,以 30 MHz 观察 PID 的目标、反馈和输出。订阅同一条数据流,分析跟随误差。在采集过程中写入目标值和参数,回读确认并标记写入时刻,保持曲线连续,让我同步观察阶跃响应。

板上运行的 PID 软件模型保留原工程:目标每 6 秒在 800 与 1200 之间切换,控制周期 10 ms,反馈来自一阶模拟对象,输出为千分比;不驱动实际电机。

此前 2026-09-20 的调参验证使用 AI 完成采集与比较:先用原参数采集,再把 Kp 从 0.6 调到 2.0、Ki 从 0.8 调到 8.0,Kd 从 0.005 调到 0。每项写入都回读确认,稳定后分别采集 24 秒。

STM32F103 PID 调参前后真实采集数据对比

用真实共享流数据绘图,将两次向上阶跃的起点对齐。RMS 使用完整 24 秒数据;展示曲线每 25 个样本保留 1 个。

连续采集中写入目标值,观察完整阶跃

无需暂停曲线,在同一次采集中通过 Web GUI 将目标值从 800 写到 1200,再写回 800。写入前的历史保留,虚线标记设备实际执行写入的时间,写入结果经过回读确认。

STM32F103 连续采集中实时写入目标值的阶跃响应

真实 Web GUI 波形画布录制,约 19 秒、10 帧/秒。橙色为目标,蓝色为反馈,黄色为输出。本段关闭软件模型的自动阶跃,固定 Kp/Ki/Kd 为 2.0/8.0/0,通过网页手动写入目标值。采集全程未暂停或重启,测试结束已恢复原参数和自动阶跃。

30 MHz SWD、1 ms 采样周期下,同步记录 19,165 组三变量数据。设备时间戳严格递增,全程最大相邻采样间隔为 1.194 ms;跨越两次写入的采样间隔分别为 1.072 ms、1.068 ms。写入和回读会占用少量 SWD 时间,因此仍有短暂采样抖动。

此功能需要配套固件声明 DUMP_WRITE=1;本次升级的是开发候选固件,尚未正式发布。旧固件兼容路径仍有短暂采样间隙,但会保留曲线历史和时间轴。

以下完整截图和 24 秒调参前后统计仍来自 2026-09-20 的独立验证,与这段实时写入录像分开统计。

查看调参后的完整 Web GUI 截图

指标 调参前 AI 调参后
Kp / Ki / Kd 0.6 / 0.8 / 0.005 2.0 / 8.0 / 0
均方根误差 · 24 秒 89.45 37.95
完整三变量数据组 492,403 494,725
AI 持续接收速度 20,504 组/秒 20,612 组/秒
共享流序号缺口 0 0

均方根误差降低约 57.6%。 阶跃瞬间的峰值误差仍接近 400,改善发生在随后的跟随和收敛阶段;更快的响应也带来了轻微过冲,图中保留了这一过程。参数改在 RAM 中,复位后恢复原值;需要固化时,再回到工程修改并下载。真实设备还要结合执行器限幅、噪声和稳定裕度验证。

从波形中既能看到跟随误差的改善,也能看到过冲。你可以据此决定是否保留参数,或要求 AI 继续验证其他工况。采集、回读和计算交给工具,方案选择由你掌握。

MKLink 提供了对人和 AI 都友好的调试底座。界面便于你观察和操作,共享数据接口便于你使用 AI 完成自动化任务。少做重复操作,就能把更多时间用在控制策略和产品功能上。这才是 AI 时代,调试器应该有的样子。

03|下载、看日志、查异常,在一套工作流里完成

下载后,检查程序是否正常运行

AI提示词:把程序编译并下载,看看系统节拍和任务计数有没有在走。

Codex 通过 MKLink 编译下载并检查系统节拍和任务计数

按这条指令,你可以让 AI 完成下载、校验和运行检查:从工程中找到系统节拍与任务计数,间隔读取并比较变化。系统节拍递增,说明节拍中断正在执行;任务计数递增,则能进一步确认应用仍在运行。

手动下载时,进入在线烧录页面,核对器件、固件和镜像地址后开始。需要协助时,可以让 AI 根据当前工程查找地址与符号文件。

不接串口,也能用命令行调试

MKLink 调试线也能用于收日志、发命令,无需额外连接 USB 转串口,也不占用 UART 引脚。打开 RTT View 即可与板上的命令行交互。

AI提示词:把工程的命令行接到 RTT,发个 help,看看有哪些命令能用。

工程接好 RTT 命令行后,在 RTT View 点击“开始”,在底部输入 help,选择 CRLF 换行并发送,查看可用命令;输入 version,查看程序回显。

通过 RTT View 与板上命令行交互

查状态、改参数、触发一次操作,都可以沿用工程已有的命令。你可以直接在网页输入,也可以告诉 AI 要做什么,让它发送命令、读取返回结果。

读取内存,核对变量值

找到这个变量,看看值和类型对不对。需要试写的话,先备份,读回来确认后再恢复。

在 Memory 填入变量地址和长度,点击读取;也可以让 AI 从符号文件中查找地址。需要试写时,选择工程预留的测试数组,写入后回读确认。

测试数组写入与回读

只改工程里明确预留的测试区域。重新编译后让 AI 重新查地址;要长期保存的参数,回到工程修改,不能只改一次 RAM。

发生 HardFault 时定位源码

AI提示词:看看程序为什么进异常,找到对应代码,先保存现场再恢复运行。

打开 HardFault,点击检查。界面会显示异常原因、故障函数和源码位置,供你回到工程中排查。

异常现场定位到函数和源码行

先看出错指令,再让 AI 结合源码解释。保存现场后可以复位继续工作;要解决问题,还得修改触发异常的代码。栈扫描的候选位置也应结合源码核对。

查看线程运行时间线

AI提示词:把任务时间线采下来,看看这几个线程什么时候运行。

在 RTOS Trace 开始采集,展开任务列表,查看各线程的运行片段和切换关系。

任务运行时间线

发现异常片段时,可以暂停采集,让 AI 对照代码分析。同时留意丢失和溢出计数,避免只凭不完整的时间线判断调度问题。

验证程序后,保存为脱机任务

AI提示词:把这个程序准备成脱机任务,下次接上板子就能重复下载。

打开脱机烧录页面,核对器件、固件和下载配置,生成任务并部署到 MKLink。先执行一次,确认完成状态和目标运行情况,再用于重复下载。完整步骤见脱机下载说明。

脱机烧录工作区

本次脱机补测保留工程原有 Bootloader:Boot 位于 0x08000000,应用从 0x08005000 开始。使用配置中 236 KiB 的应用分区构造大镜像,按先擦除、再写入、最后完整校验执行,Boot 区保持不变。

236 KiB 应用镜像 20 MHz 30 MHz
擦除 2.684 s 2.677 s
写入 7.904 s 7.841 s
完整回读校验 0.419 s 0.516 s
总时间 · 含进度刷新 13.993 s 14.001 s
单独写入速度 29.86 KiB/s 30.10 KiB/s
擦除+写入+校验综合速度 16.87 KiB/s 16.86 KiB/s

20/30 MHz 各三轮均通过,表中取平均值。每档最后一轮另做完整主机回读校验;表中校验时间为固件内部校验,额外主机核对不计入。总时间包含进度每变化 1% 时的刷新等待,不含复制文件和建立会话。KiB = 1024 字节。

RAM 读取很快,Flash 写入为什么只有约 30 KiB/s?这次使用标准 STM32F10x_512.FLM。MKLink 把算法和页数据送进目标 RAM,再让目标 CPU 调用擦除、编程函数,等待片内 Flash 控制器完成。这里的主要耗时是目标算法执行;提高 SWD 时钟,对整次下载的影响有限。

借助通用 FLM 接口,不同 Arm Cortex 器件可以复用厂商或 Pack 提供的算法,沿用同一套下载流程。具体芯片仍需匹配兼容算法、RAM 与 Flash 布局,并完成适配验证。

从波形到日志,从异常现场到源码,你可以在同一套工作流中推进排查,也可以随时调用 AI 协助分析。MKLink 将高性能读写、可视化操作与自动化接口结合起来,让工具配合你的思路,减少重复劳动,把精力用在解决问题和实现新功能上。

接入 MKLink · 功能总览 · 原有例程与性能基准 · 本次动图与脱机补测记录