跳转至

STM32F103 文章素材与脱机补测 · 2026-09-20

目标 STM32F103RET6,DBGMCU_IDCODE 0x10036414、Flash 容量 512 KiB。工程 STM32F103RC,下载器 HPMLink V4,COM488。既有性能表沿用 r21 基准,不冒充本次功能演示的新测量。基准持续速率按探针时间戳计算,含批间间隙;主机端到端口径另见原始记录。

启动布局与恢复

用户工程有 Bootloader,应用入口 0x08005000。操作中曾误将入口改为 0x08000000 并烧录一次;用户指出后恢复工程设置,使用同目录 STM32F103_BOOT/MDK-ARM/boot.bin 恢复 Boot,并将应用重新下载到 0x08005000,两者均回读通过。复位后 rt_tick 从 0xA6F 递增到 0xC88。后续脱机测量前后对比前 20 KiB Boot 区,内容一致。

当前 Keil 的有效链接布局由目标配置 OCR_RVCT4 自动生成,不能仅凭未启用的 board/linker_scripts/link.sct 判断地址。完整编译有 4 条 RT-Thread libc 与新编译器注解相关的原有警告,零错误。最终应用重新链接零错误。

脱机镜像与验证

镜像 241664 字节(236 KiB),地址 0x08005000..0x0803FFFF。应用后填充确定性 SHA-256 数据。算法 STM32F10x_512.FLM;20/30 MHz 各 3 次,六次固件完整校验成功,两个末轮另做主机全量校验。镜像 SHA256:fa9ae94d35d765684c7618837c14f31139b0eacc89e001207cd73992cad00400。

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

总时间包含刷新等待,不含部署复制与建立会话。校验与写入独立计时;额外主机校验不计入表格。30 MHz 的校验耗时高于 20 MHz,本轮结果如实保留,不宣称高档必然缩短所有阶段。

PID 与媒体来源

原模型 10 ms 周期,目标每 6 s 切换 800/1200,载荷 15%,被控对象每次按目标差的 0.04 更新。前后参数分别 0.6/0.8/0.005 与 2/8/0,所有参数回读确认。每段稳定 24 s 后,记录 24 s。RMS 89.446018949 → 37.950777380,改善 57.5713%;峰值 395.761108 → 400.000366,没有宣称峰值改善。

GUI 是唯一硬件采集者,AI 订阅同一条 WebSocket 流;序号校验包括元数据帧,前后缺口均为零。图使用真实采集值,绘图每 25 点取 1 点,RMS 则使用全部样本。

BrowserAct 本地可见 Chrome 直接录制 #chart 画布,每 100 ms 保存一帧 PNG。正弦波 120 帧、约 12 秒;PID 两段各约 12 秒,保留画布原始分辨率和网页配色,不添加彩色标题,按实际帧时间合成 GIF。未生成或插值波形。透明画布按网页浅色背景合成;截图也来自同一网页。曾发现页面顶部 IDCODE 保留换板前的 H743 缓存;重新启用探针自动识别并建立会话后,已刷新为 0x1BA01477,并重新拍摄完整截图。目标身份同时由实时 DBGMCU_IDCODE、容量及 F103 地址上的回读验证确认。

完整本机证据位于目标工程 .mklink/article-20260920/:offline-results.json、boot-restore.json、boot-preserved.json、pid-before.json、pid-after.json、参数回读、浏览器逐帧 PNG 数据和编译日志。精简统计在 配套数据。