v2.4.1 — 命令行入口修复,增量编译恢复,F103C8 模板工程
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 全部随包:
SKILL.md 与 AGENTS.md §3.0 已同步更新:遇到 F103C8 且还没有工程时,代理会直接下载模板,不再手写。
其他
- 离线测试:114 → 128 项
- 升级方式:
git pull后重跑python install_skill.py,刷新各编辑器目录里的 skill 副本