From 9904760950fd76e3919dc5160d3e9ef3ab5c233d Mon Sep 17 00:00:00 2001 From: yhf Date: Sat, 18 Jul 2026 15:58:29 +0800 Subject: [PATCH] docs: capture chrg long-run failure baseline --- docs/debug/apps-chrg-baseline.md | 108 +++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 docs/debug/apps-chrg-baseline.md diff --git a/docs/debug/apps-chrg-baseline.md b/docs/debug/apps-chrg-baseline.md new file mode 100644 index 0000000..35457f8 --- /dev/null +++ b/docs/debug/apps-chrg-baseline.md @@ -0,0 +1,108 @@ +# apps/chrg 长期运行修复基线 + +## 记录信息 + +- 记录时间:2026-07-18 15:53:36 +08:00 +- 当前分支:`feature` +- 当前 HEAD:`5ffc85077ee7c4ebd52178021d9ac99eed223cd6` +- 业务改动检查点:`c820aad feat: 完成项目多模块功能迭代与配置更新` +- 检查点说明:`c820aad` 包含当前 `apps/chrg` 多模块业务改动;后续 `5ffc850` 仅新增仓库 README 和死锁修复计划。当前 `apps/chrg` 相对 HEAD 无未提交差异。 +- 保留的无关工作区文件:`docs/修改计划.md` 为未跟踪文件,本任务未修改、暂存或清理该文件。 + +## Git 工作区基线 + +执行命令: + +```powershell +git status --short --branch +``` + +输出: + +```text +## feature +?? "docs/\344\277\256\346\224\271\350\256\241\345\210\222.md" +``` + +执行命令: + +```powershell +git diff --ignore-space-at-eol --stat -- apps/chrg +``` + +输出:无输出,表示 `apps/chrg` 相对当前 HEAD 没有未提交差异。 + +执行命令: + +```powershell +git log -5 --oneline --decorate +``` + +输出: + +```text +5ffc850 (HEAD -> feature) docs: 初始化HCDF MID 405充放电控制器固件仓库 +c820aad feat: 完成项目多模块功能迭代与配置更新 +250864c (origin/feature) debug north +3a413f5 (origin/master, origin/HEAD, master, agents/add-comments-to-sinkc) nor / sou roll +7e463e5 add more comments +``` + +## 修复前构建 + +执行命令: + +```powershell +scons -C apps/chrg -j4 +``` + +结果:**失败,构建环境缺失。** + +```text +scons : 无法将“scons”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 +CategoryInfo : ObjectNotFound: (scons:String) [], CommandNotFoundException +FullyQualifiedErrorId : CommandNotFoundException +``` + +环境复核结果: + +- `scons`:无法取得,未安装或未加入 `PATH`。 +- Python:系统 `PATH` 中无法取得;Codex 自带 Python 可运行,但未安装 `SCons` 模块。 +- `arm-none-eabi-gcc`:无法取得,未安装或未加入 `PATH`。 +- Keil UV4:常用路径 `C:\Keil_v5\UV4\UV4.exe` 及检查的常见安装目录中未找到。 +- 既有输出:未找到可复用的 `chrg.elf`、`rtthread.bin` 或 `chrg.axf`。 +- text/data/bss:无法取得,原因是构建未启动。 +- 镜像大小:无法取得,原因是未生成镜像。 +- 编译 warning:无法取得,原因是编译器未运行。 + +结论:Task 1 的修复前构建验收尚未通过。在具备 SCons 与 Arm GCC 或 Keil MDK 的构建机上补跑同一命令并补录产物尺寸、段大小和全部 warning 前,不应开始功能修改。 + +## 故障现场 Shell 快照 + +当前会话只有离线源码工作区,没有连接发生故障的 STM32F405 设备、串口或 USB Shell,因此不能执行板上命令。以下项目均显式记录为无法取得,避免将“未采集”误认为正常状态。 + +| 命令 | 结果 | +| --- | --- | +| `list_thread` | 无法取得:当前未连接目标板 Shell,线程状态和栈使用量未知。 | +| `list_mutex` | 无法取得:当前未连接目标板 Shell,mutex owner/suspend 未采集。 | +| `list_mailbox` | 无法取得:当前未连接目标板 Shell,邮箱 entry 数未采集。 | +| `list_event` | 无法取得:当前未连接目标板 Shell,事件状态未采集。 | +| `free` | 无法取得:当前未连接目标板 Shell,heap total/used/max-used 未采集。 | +| `list_device` | 无法取得:当前未连接目标板 Shell,设备状态未采集。 | + +## 故障特征 + +- 首次异常运行时长:无法取得:未提供对应现场运行记录。 +- 异常时仍工作的接口:无法取得:当前没有现场设备或故障时间点数据。 +- 最后 100 行日志:无法取得:仓库中未提供本次故障对应的运行日志,当前未连接目标板。 +- `com batch timeout` 是否连续出现:无法取得:没有现场串口日志。 +- `free` 的 total/used/max-used:无法取得:当前未连接目标板 Shell。 +- `thr.rollnor` 和 `thr.rollsou` 状态:无法取得:当前未连接目标板 Shell。 +- `thr.nor` 和 `thr.sou` 状态:无法取得:当前未连接目标板 Shell。 +- 最近一次复位原因:无法取得:没有启动日志或 RCC 复位标志快照。 + +## 后续补录要求 + +1. 在配置完整的构建机上重新执行 `scons -C apps/chrg -j4`,补录工具链版本、text/data/bss、镜像大小和 warning。 +2. 下次现场复现且 Shell 尚可用时,立即按上述顺序保存六条诊断命令的原始输出和最后 100 行日志。 +3. 所有后续修复必须基于 `c820aad` 已包含的业务逻辑和当前 HEAD,不得从 `origin/feature` 或 `master` 重新开始。