Skip to content

v2.4.1 — 命令行入口修复,增量编译恢复,F103C8 模板工程

Choose a tag to compare

@TaoCosmo-Dev TaoCosmo-Dev released this 27 Sep 11:11
· 5 commits to main since this release

Important

v2.3.0 至 v2.4.0 的命令行入口无法运行,请升级到本版本。 这些版本里,run_autodebug.py 的任何命令都会在启动时直接报 UnboundLocalError 退出。

本版的问题全部是在用真实 Keil 工程端到端编译时发现的,而不是读代码读出来的。它们都通过了原有测试,因为测试用的夹具比 µVision 实际生成的文件简单。

修复

问题 影响 修复
--project 参数从未赋值给 proj_path v2.3.0 起,任何命令都在启动时崩溃 补上赋值,新增真正调用命令行入口的测试
--add-include / --install-tracer 把包含路径写进了 <TargetCommonOption><IncludePath> 那是 Folder Setup 用的路径,编译器看不到;命令却提示「已加入」,随后编译报 #5: cannot open source input file 改为写入 C 编译器的 <Cads> 节;--add-define 同样处理
µVision 日志中的 AC5 错误格式 main.c(17): error: #5: ... 没有被解析 编译失败时报告里没有任何错误条目,只有「未生成镜像」,AI 无从下手 新增该格式的解析;原先断言「应忽略这一行」的测试已更正

性能:增量编译恢复

工程里的 <pCCUsed>(上次使用的编译器版本)缺失或与本机不符时,UV4 -b 每次都会重编所有文件:µVision 在内存中更正了版本,但批处理模式从不保存。从别的电脑拷来的工程、手写的工程都会触发这个问题。

现在每次编译后,套件会把 UV4 实际使用的编译器写回工程(auto_sync_compiler,默认开启)。在 F103C8 模板上实测:

修复前 修复后
源码无改动时再编译 29 个文件 0 个文件
只改 main.c 29 个文件 1 个文件

如果工程里记录的版本与本机一致、只是目录写法不同,套件不会改动,因为那可能是对方机器上的正确写法。

新增:STM32F103C8 模板工程

首次实战复盘里,接入耗时的约一半花在从零手写 .uvprojx 上。现在提供一个开箱即可编译的模板,已接好崩溃追踪器和通过令牌,标准库与 CMSIS 全部随包:

STM32F103C8 标准库模板工程 v1.0

SKILL.md 与 AGENTS.md §3.0 已同步更新:遇到 F103C8 且还没有工程时,代理会直接下载模板,不再手写。

其他

  • 离线测试:114 → 128 项
  • 升级方式:git pull 后重跑 python install_skill.py,刷新各编辑器目录里的 skill 副本