docs(任务规划): 瘦身为只留待办,波次条目改用语义名
任务规划目录只保留将来要做的事:删掉已完成的证据链与已作废的历史快照, 并把波内条目的 C/D 短码全部换成语义名。 为什么删 C/D 短码:它们同字母不同义——C 组在 UI_界面制作流程.md 里是 UI 设计约束(屏幕/字符集/文本/编码),D 组在控制台单写者日志设计说明.md 与配置文件设计说明.md 里是决策记录。同一串短码在三处指三件事,读的人 只能猜,所以条目一律改用一行短语作标识。 - 排期详述.md 重写为「结构债与验证常态」,条目全语义名,出处列留冻结号 - README.md 删修订记录块(本文件自述不留变更记录),波次行改语义描述 - W1-采集保护收尾.md 67→30 行,只留 M3 送检与 B10 卡 - 基线与待确认.md 73→15 行,删已作废的旧栈表与旧余量数字 - 登记簿.md 逐行收缩到未闭环残余,N-29 的 .git 订正为实测 233 MB - 测试与架构专项.md 删 S1-c(106 例已落地,且被覆盖率总闸覆盖) - 并行分道方案.md 删批 0,修两处会返回 rc=3 的 new 命令形态 - 覆盖率口径:套件 16→33、未挂钩子 12→17、墙钟 25s→67s(实测) - 同步 10 处跨文档引用,指向合并或删除后的新位置
This commit is contained in:
@@ -70,5 +70,5 @@
|
||||
- 上层用法:`docs/网络/BSD_Socket_API_使用指南.md`
|
||||
- 内部调用关系:`docs/网络/BSD_Socket_API_函数调用关系.md`
|
||||
- 架构设计:`docs/网络/Net层阻塞模型架构设计.md`(阻塞等待 / pending 请求模型)
|
||||
- ACCEPT 挂起化设计基线:`docs/任务规划/基线与待确认.md` §2.1
|
||||
- ACCEPT 挂起化不实施的判据:`docs/网络/Net层阻塞模型架构设计.md` §10
|
||||
- 测试:`docs/测试说明/CH395F_Test_Guide.md`、`docs/测试说明/FTP_Test_Guide.md`
|
||||
|
||||
+1
-1
@@ -1209,7 +1209,7 @@ runner 的日志走 **stderr**,于是上面两个日志文件都栽在这两
|
||||
`commit-msg` stage 的钩子(gitlint)不在其中,靠 `ci_gitlint_range.ps1` 单独守(见 §7);
|
||||
- **`@build` / L1 / L2**:永远留在本地,不要往 CI 加(需 Keil 授权与真机);
|
||||
- **runner 长时间不可用**时:CI 只是"多一道网",**提交前的本地 `ci_local.py` 仍是 L0 的唯一保障**,
|
||||
不能因"已经配了 CI"放宽(见 [docs/任务规划/登记簿.md](../任务规划/登记簿.md) 的 T-7「CI runner 未就绪(部署前置)」条)。
|
||||
不能因"已经配了 CI"放宽(见 [docs/任务规划/登记簿.md](../任务规划/登记簿.md) 的 T-7「CI 远端闭环未验证(runner 本机已就绪)」条)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
+1
-1
@@ -236,7 +236,7 @@ docs/
|
||||
|
||||
| 位置 | 内容 |
|
||||
|---|---|
|
||||
| [`任务规划/`](任务规划/README.md) | **统一待办登记簿(文件夹)**——`README.md` = 排序权威(波次 W1~W8)+ 编号空间 + 维护约定;`W1-采集保护收尾.md` = 当前波次任务卡(里程碑 × 并行道 × 五字段);`W8-数据可信.md` = 下一波次(通道标定 → 遥测链 → 运行参数,2026-10-23 定项);`登记簿.md` = N/S/T-x 长期观察;`排期详述.md` / `暂缓-RS485.md` / `测试与架构专项.md` / `基线与待确认.md` = 波内详表 / 冻结簇 / 专项 / 基线;**`并行分道方案.md` = 待办横向归道(写域 域1~域8 + 道A~道H + 批次 + 合并次序)**;只保留未闭环项,完成即删 |
|
||||
| [`任务规划/`](任务规划/README.md) | **统一待办登记簿(文件夹)**——`README.md` = 排序权威(波次 W1~W8)+ 编号空间 + 维护约定;`W8-数据可信.md` = **当前波次**(通道标定 → 遥测链 → 运行参数,14 张卡);`W1-采集保护收尾.md` = W1 剩余(只剩 M3 送检);`登记簿.md` = N/S/T-x 长期观察;`排期详述.md` / `暂缓-RS485.md` / `测试与架构专项.md` = 波内详表 / 冻结簇 / 专项;`基线与待确认.md` = 待确认(开放问题,OQ 族属主);**`并行分道方案.md` = 待办横向归道(写域 域1~域8 + 道A~道H + 批次 + 合并次序)**;只保留未闭环项,完成即删 |
|
||||
| `硬件平台/` | 网表详细分析报告与语义图(V0.0 / V0.1);**[`ADC通道映射说明.md`](硬件平台/ADC通道映射说明.md)——V0.1 十七路 ADC 语义/网名/通道号权威映射表(固件取数、UI 显示、自检注入以此为准)** |
|
||||
| `芯片手册/` | 外部芯片数据手册转录(CH395F / GD5F2GQ5UE / SD2506 / TPAFE5160 / RTL8305NBI 等) |
|
||||
| `images/` | 文档技术配图(`.svg` 产物,由 `tools/arch_diagram/`、`tools/refgraph/` 生成) |
|
||||
|
||||
@@ -43,7 +43,7 @@ MCU **无物理屏幕**:LVGL 做 160×160 **1bpp 单色离屏渲染**,帧缓
|
||||
|
||||
### 1.4 硬约束(改 UI 必须遵守)
|
||||
|
||||
1. **RAM 紧张**:新增页面/控件/缓冲前必须核算 LVGL 池(16KB,实测峰值 6,568 B)与任务栈余量(见 `docs/任务规划/基线与待确认.md` §4 内存预算)
|
||||
1. **RAM 紧张**:新增页面/控件/缓冲前必须核算 LVGL 池(16KB,实测峰值 6,568 B)与任务栈余量(见 `docs/内存管理/RAM预算台账.md`)
|
||||
2. **新增汉字必须重新生成字体**(`tools/font_gen/` 两步),否则显示空白
|
||||
3. 文本一律用静态字符串(`lv_label_set_text_static`),不 strdup
|
||||
4. UI 相关文件为 **UTF-8 带 BOM**(`Drivers/BSP/UI/*`、`ui_task.c`、`Lib/lv_conf.h`),其余源码无 BOM;禁止 PowerShell 整文件重写(编码铁律,见 AGENTS.md)
|
||||
|
||||
+29
-41
@@ -8,16 +8,16 @@
|
||||
> | 文件 | 内容 | 变更频率 / 写者 |
|
||||
> |---|---|---|
|
||||
> | `README.md`(本文件) | 编号空间(§0)· 未闭环一览(§1)· **推进顺序权威(§2)** · 维护约定(§3) | 低频;仅主工作树 |
|
||||
> | `W1-采集保护收尾.md` | 当前波次:里程碑 / 并行道 / 任务卡(DoD·依赖·资源·写范围·状态) | **高频**——状态流转只改它;Lead 在 claim/完成时更新 |
|
||||
> | `W8-数据可信.md` | **下一波次(2026-10-23 用户定项)**:通道标定 → 遥测链 → 运行参数段;含事实基线、折算模型、**14 张任务卡**(含"已知电压注入验证"与"端子变比确认"两卡)、前置决策 | **高频**——开工后状态流转只改它 |
|
||||
> | `W1-采集保护收尾.md` | W1 剩余:只剩 M3 送检(B10) | 低频——送检窗口前后改 |
|
||||
> | `W8-数据可信.md` | **当前波次(2026-10-23 用户定项)**:通道标定 → 遥测链 → 运行参数段;含事实基线、折算模型、**14 张任务卡**(含"已知电压注入验证"与"端子变比确认"两卡)、前置决策 | **高频**——开工后状态流转只改它 |
|
||||
> | `排期详述.md` | W4 结构债 / W5 验证常态 波内详表 | 低频 |
|
||||
> | `并行分道方案.md` | **待办横向归道**:文件级写域(域1~域8)· 八条道(道A~道H)· 批次与合并次序 · 不能并行的事项 | 低频——分道或批次变化时改;**明细不复制**,只做归道 |
|
||||
> | `暂缓-RS485.md` | B2 RS-485 整簇冻结清单(用户决定) | 极少 |
|
||||
> | `登记簿.md` | N-x / S-x / T-x 长期登记(网络 / 存储 / 硬件 / 测试 / 报告并轨) | 中频——新发现进对应表 |
|
||||
> | `测试与架构专项.md` | P1-10 收尾 + S1x / A-x 专项 | 低频 |
|
||||
> | `基线与待确认.md` | 待确认 · 设计基线(ACCEPT pending 化 / 错误码四要素)· 诊断基线 · 内存预算 | 参考,少改 |
|
||||
> | `基线与待确认.md` | **只放还没答案的问题**(OQ 族属主登记处);基线类内容已移出到模块文档 | 参考,少改 |
|
||||
>
|
||||
> **怎么用**:想知道"现在该做什么、按什么顺序" → 本文件 **§2**;想知道"当前波次任务卡状态 / 验收判据 / 并行道" → `W1-采集保护收尾.md`;
|
||||
> **怎么用**:想知道"现在该做什么、按什么顺序" → 本文件 **§2**;想知道"当前波次任务卡状态 / 验收判据 / 并行道" → `W8-数据可信.md`;
|
||||
> 想知道"某条待办的来龙去脉" → 按编号查 `登记簿.md` / `测试与架构专项.md`;想知道"还差哪些验证" → `排期详述.md` §2。
|
||||
>
|
||||
> **只保留待办**:已完成条目直接删除,不留变更记录(历史见 `git log` 与各模块文档);
|
||||
@@ -26,16 +26,6 @@
|
||||
>
|
||||
> **不在本文件夹范围**:`../问题记录/项目审查与优化建议报告.md`(体系层评审报告)、
|
||||
> `../测试说明/实机测试实施指南.md`(执行流程)。
|
||||
>
|
||||
> **修订**:2026-10-04 四档合并;2026-10-11 统一排序 + 审查报告并轨;
|
||||
> **2026-10-12 按用户决定 RS-485(B2)整簇暂缓,波次重排为 W1~W7,清除已销项残留**;
|
||||
> **2026-10-12 W1-0 台账三件套落地(N-27 前半闭环,`mem-budget` 钩子),N-23 钩子落地残余并入 C5**;
|
||||
> **2026-10-12 B4/B5 销项——W1 功能主线代码侧全部完成**;
|
||||
> **2026-10-12 用户决定:新 W1 = ADC 采集 + 保护相关功能收尾闭环(B6~B10 + N-33),W2~W7 顺延**,
|
||||
> 波次切换为「里程碑 × 并行道 × 任务卡(五字段)」模式(方法论 → `../环境与部署/并行任务工作树方案.md` §7.3);
|
||||
> **2026-10-12 解耦为 `docs/任务规划/` 文件夹**(README 索引 + 6 个职责单一文件;编号空间与 §2 排序权威不变);
|
||||
> **2026-10-23 新增 W8「数据可信」**(用户定项:通道标定先于 UI 页面与结构债;14 张卡见 `W8-数据可信.md`),
|
||||
> 执行序紧随 W1、排在 W3/W4 之前(W2/W3 槽位保留不复用的规则不变)。
|
||||
|
||||
---
|
||||
|
||||
@@ -70,26 +60,25 @@
|
||||
| P1 收尾 | 1 | P1-10 测试固件构建实测(`测试与架构专项.md` §1) |
|
||||
| 网络 | 4 | N-2(49s 日志静默,**低风险观察项**)· N-3(L5 基线重验)· N-16(A2/A4 负向台架)· N-17(探针窗口心跳缺口) |
|
||||
| 存储 / 日志 | 3 | **S-3(USART1 TX-only 根治)** · S-4(dhara 重试自旋)· S-5(可选全序列卷锁) |
|
||||
| 结构 / 健壮性 | 5 | N-22(写回 flush)· N-23(注册校验残余白名单)· N-25(性能/语义簇)· N-28(Flash 死代码簇)· **N-33(栈余量收口,W1)** |
|
||||
| 仓库 | 1 | N-29(`.git` **235 MB**,**已决策暂不处理、登记观察**) |
|
||||
| 结构 / 健壮性 | 4 | N-22(写回 flush)· N-23(注册校验残余白名单)· N-25(性能/语义簇)· N-28(uvprojx 空 TU 观察) |
|
||||
| 仓库 | 1 | N-29(`.git` **233 MB**,**已决策暂不处理、登记观察**) |
|
||||
| 硬件 | 1 | N-18(V0.2 改版项) |
|
||||
| 测试 / 基础设施 | 5 | T-7(CI runner + 推送闭环 + 第二机交叉验证)· S12(断言宏)· A-4(采集链路测试约束,RS485 侧随 B2 暂缓)· A-5 残余(CI 体积门禁盲区)· D7(串口助手 A6/A7 待 CH340) |
|
||||
| UI | 1 簇 | U 簇(27 页标准化,**本轮不排期**) |
|
||||
| **暂缓** | 2 簇 | **B2 RS-485 整簇**(2026-10-12 用户决定,`暂缓-RS485.md`)· **N-27 内存优化簇剩余部分**(2026-10-15 用户裁定:R-2 后半 / R-3 / R-4 / R-6 不排期,理由与重开条件见 `../问题记录/项目审查与优化建议报告.md` §5.3;**已落地的 R-9 与 `mem-budget` 门禁、台账、趋势、观测不回退也不暂缓**) |
|
||||
| 测试 / 基础设施 | 5 | T-7(CI 远端两 job 闭环 + 第二机交叉验证)· S12(断言宏)· A-4(采集链路测试约束,RS485 侧随 B2 暂缓)· A-5 残余(CI 体积门禁盲区)· 串口助手 A6/A7 补验(待 CH340) |
|
||||
| UI | 1 | U5 页面落地(**未排期**,最早 W8 M4 之后) |
|
||||
| **暂缓** | 2 簇 | **B2 RS-485 整簇**(`暂缓-RS485.md`)· **N-27 内存优化簇剩余**(R-2 后半 / R-3 / R-4 / R-6;重开条件见 `../问题记录/项目审查与优化建议报告.md` §5.3)。⚠ 已落地的 R-9 与 `mem-budget` 门禁/台账/趋势**不回退** |
|
||||
| **数据可信(W8)** | 1 簇 · **14 张卡** | 已知电压注入验证 · 端子变比确认 · 通道标定系数与折算 · 标定落盘 · 未标定即闭锁 · 下游三常数重定 · 量纲回归 · 遥测快照 200 ms · 运行参数段 · 频率点绑定(详表 `W8-数据可信.md`) |
|
||||
|
||||
> **网络侧 E-xx 存量项**(历史编号族,属主文档已于 2026-10-15 删除,编号冻结见
|
||||
> `docs/编号规范.md` §4.3):E-27 / E-28 挂 C1(net 层跨上下文收口,见 `排期详述.md` §1);
|
||||
> `docs/编号规范.md` §4.3):E-27 / E-28 挂「net 层跨上下文收口」(见 `排期详述.md` §1);
|
||||
> E-47 待 CH395F 驱动侧定案;E-12 为 `FF_FS_LOCK` / 单写者纪律记录项;E-31 后续与 E-62
|
||||
> 为回归监督项(纪律已固化于 `AGENTS.md`,无需改动)。
|
||||
> UI 标准化簇与 lftpd 主机测试缺口为整簇排期项,见 §2 W6(dhara 移植层主机单测已随登记簿
|
||||
> N-21 销项落地 `test/host/nand_port/`,2026-10-15)。
|
||||
> UI 标准化只剩 U5 页面落地,见 §2 W6;lftpd 主机测试缺口为整簇排期项。
|
||||
|
||||
### 1.1 结构性判断(排序依据)
|
||||
|
||||
1. **用户决定(2026-10-12):先把 ADC 采集、保护等相关功能完成**——"转发 + 保护"两环代码已落地(B4/B5,2026-10-12),但**尚未台架闭环、功能面不完整**(定值不落盘、无频率保护、无动作记录/SOE、栈安全线两处 FAIL)。新 W1 = 采集→相量→保护→上送链路的**收尾与闭环**(B6~B10 + N-33,见 `W1-采集保护收尾.md`),其余波次顺延。**RS-485 对下采集(B2)按用户决定暂缓(2026-10-12,`暂缓-RS485.md`),主线不再等它**。
|
||||
2. **内存预算红线已机械化(2026-10-12,W1-0)**:`mem-budget` 钩子拦 RW_IRAM1/RW_CCM >92%,子系统配额 / CCM 台账 / 趋势基线 → `docs/内存管理/RAM预算台账.md`。实际优化只做了 **R-9(2026-10-15 落地,SRAM1 74.9% → 56.1%)**;**R-2 后半与 R-3 / R-4 / R-6 已按用户裁定 2026-10-15 整簇暂缓**(当前 CCM 只剩 **7,904 B**,重开条件见 `../问题记录/项目审查与优化建议报告.md` §5.3)——**门禁与台账继续常开,它们正是"何时该重开"的传感器**。
|
||||
3. **验证债仅剩窗口性事项**(D2/D5/D6/D7 + P1-10 收尾),不单独排期、逢窗口顺手做。
|
||||
1. **功能主线优先(用户决定 2026-10-12)**:把"采集→相量→保护→上送"链路收口到"台架闭环 + 功能面完整 + 可送检"。前两项已达成,W1 只剩 M3 送检(`W1-采集保护收尾.md`)。**RS-485 对下采集(B2)暂缓**(`暂缓-RS485.md`),主线不等它。
|
||||
2. **内存预算红线已机械化**:`mem-budget` 钩子拦 RW_IRAM1/RW_CCM >92%,子系统配额 / CCM 台账 / 趋势基线 → `docs/内存管理/RAM预算台账.md`。**R-2 后半与 R-3 / R-4 / R-6 整簇暂缓**(CCM 只剩 **7,904 B**,重开条件见 `../问题记录/项目审查与优化建议报告.md` §5.3)——**门禁与台账继续常开,它们正是"何时该重开"的传感器**。
|
||||
3. **验证债仅剩窗口性事项**(L5 基线重锁 / A2-A4 负向台架 / 探针窗口心跳 / 串口助手补验 + P1-10 收尾),不单独排期、逢窗口顺手做。
|
||||
|
||||
---
|
||||
|
||||
@@ -104,36 +93,35 @@
|
||||
|
||||
| 波次 | 内容 | 为什么在这 |
|
||||
|---|---|---|
|
||||
| **W1 采集+保护收尾** | **里程碑制 + 并行道**:M1 台架闭环 ✅ 达成(B6 ✅→N-33 ✅)∥ M2 功能面(代码道 B7 ✅→{B8∥B9})→ M3 送检(B10,Fixed Date)——任务卡/判据/写范围见 `W1-采集保护收尾.md` | **用户决定(2026-10-12):先把 ADC 采集、保护等相关功能完成**。B4/B5 代码已落地但未台架闭环、功能面不完整(定值不落盘 / 无频率保护 / 无动作记录 / 栈两处 FAIL)——本波收口到"可用 + 可验收";真约束只有**台架**与**送检窗口**两个稀缺资源,其余任务按写范围切分并行 |
|
||||
| **W1 采集+保护收尾** | **只剩 M3 送检**(B10,Fixed Date)——任务卡与判据见 `W1-采集保护收尾.md` | 收口目标"台架闭环 + 功能面完整 + 可送检"的前两项已达成;**真约束只剩送检窗口**,窗口一到全道让路、窗口前 2 日特性冻结 |
|
||||
| **W8 数据可信** | **通道标定 → 遥测链 → 运行参数**:M4 系数与量纲 / M5 遥测链 / M6 运行参数与点表;14 张卡与事实基线见 `W8-数据可信.md` | **用户决定(2026-10-23):下一步做通道标定,先于 UI 页面与结构债**。它是唯一"改一处、全链受益"的入口(`App/task/adc_task.c:335` 是码值→工程量的唯一位置),也是 W6 页面与 104 遥测的共同前置——先做页面则 `ui_data_feed` 组装的码值帧要返工。**编号是分配序,执行序以本表从上到下为准**:本波紧随 W1,排在 W3/W4 之前。⚠ 2026-10-23 补记:ADC 至今**从未采过已知电压**(连极性都没验过,见 `W8-数据可信.md` §2.6),故第一张卡是"已知电压注入验证"——只需一块万用表,不需要信号源/示波器,是开工的第一刀 |
|
||||
| **W3 预算与内存** | ⏸ **整簇暂缓**(用户裁定 2026-10-15):~~缩堆 56→32 KB → R-2 后半(29.5 KB→CCM)→ R-3 / R-4 / R-6 逐项评估~~。本簇已落地的只有 **R-9 ✅(2026-10-15)**;R-5 已判定不可行 | **不再排期**:没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测。**W3 槽位保留、不重编号**(避免全库改 W4~W7 引用)。重开条件 → `../问题记录/项目审查与优化建议报告.md` §5.3 |
|
||||
| **W4 结构债** | **C6(S-3)→ C3(N-2)→ C1 net 层跨上下文收口 → C5(含 N-23 残余)→ N-22/N-25/N-28**(详表 `排期详述.md` §1) | 无紧急,按性价比排:C6 灭 IWDG 误复位机制根源;C1 消化 E-27/E-28(原 ACCEPT+SEND pending 化已收口),体量大、验证重,放后(N-23 钩子已落地 2026-10-12,残余并入 C5)。⚠ 原挂 C3 的 **N-24(日志逐条开关)已于 2026-10-15 单独修复销项**,C3 只剩 N-2 观察项 |
|
||||
| **W5 验证常态** | P1-10 收尾 · T-7 CI · D2 N-3 · D5 N-16 · D6 N-17 · D7 串口助手 · S12 · A-5(详表 `排期详述.md` §2) | 窗口性,逢机顺带,不单独排期 |
|
||||
| **W6 UI 扩展** | U4 残余(golden + 字符集差集挂门禁)→ U1 令牌层 → U2/U3 → **27 页**落地 | 产品驱动、体量大,需单独立项(顺序按 `docs/问题记录/项目审查与优化建议报告.md` §6.5)。**2026-10-15 用户裁定启动**(覆盖 2026-10-11 的「本轮不排期」):已开智能体团队,第一波 **U1 令牌层 ∥ U4 门禁补强** 并行进行中;U3 为地基串行段(独占注册文件),U2/U5 排在 U3 之后 ⚠ **U5 暂缓(2026-10-20 用户裁定)**:剩余页面**已出规划(`docs/UI设计/页面补齐规划.md`,2026-10-23:27 个空叶子归并为 7 模块 + 2 项前置能力),但仍未排期**,本轮不补页 —— 现存 7 个 `ui_page_*.c` 即当前全部内容,报告"27 页"是目标数不可当差集清单。U1–U4 已全部落地,故 U5 未来开工时是纯增量活(实测新增一页 = 3 处人工 + 1 条生成器命令,且 `ui-golden` 已在提交门禁兜像素)。**2026-10-23 补充**:U5 的 `ui_data` / `ui_data_feed` 需要真数据才有意义,故 **U5 最早在 W8 的 M4 之后开工**(依据见 `W8-数据可信.md` §10) |
|
||||
| **W7 仓库决策** | **N-29** `.git` **235 MB** + 图片 36.3 MB | **已决策(2026-10-11):暂不处理、登记观察**——推送/协作前重评(`git filter-repo` 历史重写影响未推送提交与协作者) |
|
||||
| **W3 预算与内存** | ⏸ **整簇暂缓**:R-2 后半(缩堆 56→32 KB → 29.5 KB 迁 CCM)· R-3 · R-4 · R-6;R-5 已判定不可行 | **不再排期**:没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测。**W3 槽位保留、不重编号**(避免全库改 W4~W7 引用)。重开条件 → `../问题记录/项目审查与优化建议报告.md` §5.3 |
|
||||
| **W4 结构债** | **USART1 改为只发不收 → 日志管线与 S8 合并评估 → net 层跨上下文收口 → 注册校验白名单清理 → 写回 flush / 性能语义簇 / 空 TU**(详表 `排期详述.md` §1) | 无紧急,按性价比排:USART1 那条灭 IWDG 误复位的机制根源;net 层收口体量大、验证重,放后 |
|
||||
| **W5 验证常态** | P1-10 收尾 · T-7 CI · L5 基线重锁 · A2/A4 负向台架 · 探针窗口心跳 · 串口助手 A6/A7 · S12 · A-5(详表 `排期详述.md` §2) | 窗口性,逢机顺带,不单独排期 |
|
||||
| **W6 UI 扩展** | **U5 页面落地**——27 是目标数不是差集(现存 7 个页面实现;27 个空叶子已归并为 7 模块 + 2 项前置能力) | **未排期**(2026-10-20 用户裁定暂缓)。地基已齐(U1~U4 落地、`ui-golden` 与字符集差集检查已挂 pre-commit),新增一页 = 3 处人工 + 1 条生成器命令。**最早在 W8 的 M4 之后开工**——`ui_data` / `ui_data_feed` 需要真数据(`W8-数据可信.md` §10)。逐页规格见 `../UI设计/页面扩充详细方案.md` |
|
||||
| **W7 仓库决策** | **N-29** `.git` **233 MB** + 图片 36.3 MB | **已决策(2026-10-11):暂不处理、登记观察**——推送/协作前重评(`git filter-repo` 历史重写影响未推送提交与协作者) |
|
||||
| **暂缓** | **B2 RS-485 整簇**(`暂缓-RS485.md`) | **用户决定(2026-10-12):当前不处理 RS-485** |
|
||||
| **硬件改版** | N-18 8 路电气量全接 TPAFE(V0.2) | 下一版硬件;固件侧已用语义映射隔离,改版只动映射表 |
|
||||
|
||||
> ✅ **W2 数据正确性已清空销项(2026-10-15)**:登记簿 N-21(dhara `dhara_nand_is_free()` 只查页首 64 B / HAL 越界无校验)已修复并配主机侧移植层单测 `test/host/nand_port/` → 实施记录 `../架构设计/STM32F4-Base存储架构说明.md` §5.3、验证链 `../问题记录/项目审查与优化建议报告.md` 变更记录。**W2 槽位与 W3 同理保留、不复用也不重编号 W3~W7**(避免全库改引用)。
|
||||
> **W2 / W3 槽位保留、不复用也不重编号 W3~W7**(避免全库改引用)。
|
||||
|
||||
### 2.1 顺序一图
|
||||
|
||||
```
|
||||
W1 收尾 台架道: B6✅→N-33✅(M1 ✅ 2026-10-12) ∥ 代码道: B7✅→B8✅→B9✅(M2 ✅ 2026-10-12) → B10 送检(M3, Fixed Date) 详表 W1-采集保护收尾.md
|
||||
(B4 IEC104 ✅ / B5 protectTask ✅ / B6 台架复测 ✅ / B7 定值持久化+软压板 ✅ / N-33 栈收口 ✅ / B8 频率保护 ✅ / B9 SOE 动作记录 ✅ 2026-10-12 均已销项;台账三件套 ✅)
|
||||
W1 收尾 只剩 B10 送检(M3, Fixed Date) 详表 W1-采集保护收尾.md
|
||||
↓
|
||||
W8 数据可信 通道标定 → 遥测链 → 运行参数(M4 系数与量纲 → M5 遥测链 → M6 运行参数与点表) 详表 W8-数据可信.md
|
||||
关键路径: 量程口径 → 标定模块 → 落盘 → 未标定即闭锁 → 量纲回归;W6 可在 M4 后开工
|
||||
↓
|
||||
W3 预算 ⏸ 整簇暂缓(2026-10-15 用户裁定);R-9 池瘦身 ✅ 已落地不回退
|
||||
W3 预算 ⏸ 整簇暂缓(重开条件见 项目审查与优化建议报告 §5.3)
|
||||
↓
|
||||
W4 结构 C6(S-3) → C3(N-2) → C1 net 层跨上下文收口 → C5(含 N-23 残余) → N-22/25/28
|
||||
W4 结构 USART1 只发不收 → 日志管线与 S8 → net 层收口 → 白名单清理 → 写回/性能/空TU
|
||||
↓
|
||||
W5 验证 P1-10 · T-7 CI · D2/D5/D6/D7 · S12 · A-5
|
||||
W5 验证 P1-10 · T-7 CI · L5 基线重锁 · A2/A4 负向台架 · 探针心跳 · 串口助手 · S12 · A-5
|
||||
↓
|
||||
W6 UI U4 残余 → U1 令牌层 → U2/U3 → 27 页(单独立项,本轮不排期)
|
||||
W7 仓库 N-29 .git 149MB(已决策暂不处理) 硬件:N-18 V0.2
|
||||
暂缓 B2 RS-485 整簇(2026-10-12 用户决定,见 暂缓-RS485.md)
|
||||
W6 UI U5 页面落地(未排期,最早 W8 M4 之后)
|
||||
W7 仓库 N-29 .git 233MB(已决策暂不处理) 硬件:N-18 V0.2
|
||||
暂缓 B2 RS-485 整簇(见 暂缓-RS485.md)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -153,6 +141,6 @@ W7 仓库 N-29 .git 149MB(已决策暂不处理) 硬件:N-18 V0.2
|
||||
报告并轨项用本登记簿新编号(N-19~N-29 + U 簇),出处列保留报告编号。
|
||||
- **§2 是全项目唯一的推进顺序权威**:`产品需求设计文档.md` 等文档中的路线图只留指针,顺序变更只改 §2.0(详表文件跟着挪,不改顺序)。
|
||||
- **暂缓不是销项**:条目仍在簿,只是不占波次。有独立清单文件的(`暂缓-RS485.md` = B2)重启或关闭时更新该文件与 §1/§2.0;**只在原处标注的**(N-27 内存优化簇,2026-10-15 用户裁定,理由与重开条件挂在 `../问题记录/项目审查与优化建议报告.md` §5.3)重启时改 `登记簿.md` 该行 + 本文件 §1/§2.0 三处。
|
||||
- 新增发现按既有惯例分流:能立即修的进 §2 波次(W4 C5);需排期的进 `登记簿.md` / `测试与架构专项.md` 对应编号空间;跨版本观察的进 `登记簿.md`。
|
||||
- 新增发现按既有惯例分流:能立即修的进 §2 波次(结构债);需排期的进 `登记簿.md` / `测试与架构专项.md` 对应编号空间;跨版本观察的进 `登记簿.md`。
|
||||
- 上游引用关系:`问题记录/项目审查与优化建议报告.md`(体系层评审)、
|
||||
`测试说明/实机测试实施指南.md`(执行流程)——两者均不在本文件夹合并范围。
|
||||
|
||||
+14
-51
@@ -1,67 +1,30 @@
|
||||
# W1 采集 + 保护收尾(当前波次任务卡)
|
||||
# W1 采集 + 保护收尾(只剩 M3 送检)
|
||||
|
||||
> **本文件是全文件夹改动最频繁的规划文件**:当前波次的里程碑 / 并行道 / 任务卡。
|
||||
> 状态变更(⬜ 未开始 → 🟦 进行中 → 销项删行)只改本文件;**排序权威(波次总览)在 `docs/任务规划/README.md` §2**。
|
||||
> 方法论出处与执行层映射(工作树 / 锁 / 并行道)→ `../环境与部署/并行任务工作树方案.md` §7.3。
|
||||
> **本波只剩余一项未开工的事**:M3 可送检(B10)。M1 台架闭环与 M2 功能面完整已于 2026-10-12
|
||||
> 达成并销项,本文件不再保留其任务卡与证据链(证据在模块文档与 `git log`)。
|
||||
> 排序权威(波次总览)在 `docs/任务规划/README.md` §2;并行 / 工作树 / 两把锁的机制见
|
||||
> `docs/任务规划/并行分道方案.md`。
|
||||
|
||||
## 1. 背景(已闭环,只留指针)
|
||||
## 1. W1 目标(用户决定 2026-10-12)
|
||||
|
||||
B0 产品定义 2026-10-10 确认——上行 **IEC 60870-5-104**(以太网 TCP 2404,遥测短浮点系数 1)/
|
||||
持续采集 / **1000 Hz(20 点/周波)** / RS-485 对下 ModBus RTU,结论详见
|
||||
`../算法/继电保护功能复现规划.md` §1.5 与 `../产品需求/产品需求设计文档.md` §5.9/§5.10/§9;
|
||||
B1 ADC 采集链路已 `@test` 实机闭环;B3 纪律门禁已固化进 `AGENTS.md`;
|
||||
**B4/B5 已销项(2026-10-12)**——证据见 `../子系统设计/IEC104上行设计说明.md`(82 断言 + 钩子)与
|
||||
`../算法/继电保护功能复现规划.md` §7 变更记录(protectTask 20 ms 判据节拍 + L5-4 采样闭锁 +
|
||||
IWDG bit8 + 堆 48→56 KB + prot_elm 28 用例);
|
||||
**B6/B7 已销项(2026-10-12)**——B6 证据 = `../测试说明/boot_log_data/README.md` §3
|
||||
(@test PASS + 门控缺陷 MISS→FIX 快照 + PC 主站 18/18,工具 `test/host/iec104_master.py`);
|
||||
B7 证据 = `../子系统设计/IEC104上行设计说明.md` §3.4 + boot_log_data B7 行
|
||||
(定值/压板跨复位保持 + YK12→YX 联动,主站 42+8 判据 + 主机 63+94 断言);
|
||||
**N-33 已销项(2026-10-12)**——证据 = `../内存管理/RAM预算台账.md` §6 +
|
||||
`../内存管理/RAM使用分析与优化方案.md` §2.3(抬栈 +1536 B,`stack_report` 9 任务 0 FAIL,
|
||||
`@test` 复测 PASS,min_ever 实测 8464 与预算吻合);
|
||||
**B8 已销项(2026-10-12,merge `37f74f0`)**——证据 = `../算法/继电保护功能复现规划.md`
|
||||
变更记录 B8 行 + `App/algo/README.md` §3.7(自适应窗测频 J1~J6 判据,扫频最坏 0.0101 Hz;
|
||||
定值 32→40、blob VER 1→2、prot_elm 7→9;freq 46 + prot_set 90 + prot_elm 47 断言);
|
||||
**B9 已销项(2026-10-12,merge `6cbf400`)**——证据 = `../算法/继电保护功能复现规划.md`
|
||||
变更记录 B9 行 + `App/log/README.md` soe 节 + `../子系统设计/IEC104上行设计说明.md` §3.2/§7
|
||||
(`/log/soe.log` 64 B 定长 + 自发 M_SP_TB_1 带时标 + protectTask 链 872 B 不变;
|
||||
soe 32 + iec104 97 断言;台架 sync 重跑 21/21+13/13 + SOE 56 条解码 PASS)。
|
||||
把"采集→相量→保护→上送"链路从"代码落地"收口到**台架闭环 + 功能面完整 + 可送检**。
|
||||
前两项已达成,**本文件只剩"可送检"**。
|
||||
|
||||
**本波目标(用户决定 2026-10-12)**:把"采集→相量→保护→上送"链路从"代码落地"收口到
|
||||
**"台架闭环 + 功能面完整 + 可送检"**。规划方式 = **里程碑(时间驱动、判据退出)×
|
||||
并行道(按资源约束切分)× 任务卡(五字段)**。
|
||||
|
||||
## 2. 里程碑(时间驱动:功能可顺延,里程碑不拖延)
|
||||
## 2. 里程碑
|
||||
|
||||
| 里程碑 | 退出判据(全部满足才算完成,随后销项) | 服务分类 |
|
||||
|---|---|---|
|
||||
| **M1 台架闭环 ✅ 达成(2026-10-12)** | B6 `@test` PASS ✅ + N-33 `stack_report` 9 任务 0 FAIL ✅ + `@test` 复测腿 PASS ✅——判据全满足 | Standard |
|
||||
| **M2 功能面完整 ✅ 达成(2026-10-12)** | B8 ✅ 已合入(`37f74f0`)+ B9 ✅ 已合入(`6cbf400`,sync 追平后重跑台架腿)+ `ci_local` 全绿(L0.5 15 runner 951/951)+ PC 客户端往返含"SOE 时标"(自发 YX = M_SP_TB_1 带 CP56 ts + `/log/soe.log` FTP 下载解码 PASS;"定值掉电保持" ✅ B7 台架 2026-10-12)——判据全满足 | Standard |
|
||||
| **M3 可送检** | B10 注入判据 + 第三方主站全流程通过,证据归档 | **Fixed Date**(送检窗口一到全道让路;窗口前 2 日特性冻结,只修稳定——Zephyr RC 语义) |
|
||||
|
||||
## 3. 并行道(台架 = 约束资源永不空转;代码道 = worktree 并行、绿即合)
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
M1((M1 ✅)) --> B10[B10 送检窗口 🟡 Fixed Date]
|
||||
M2((M2 ✅)) --> B10
|
||||
```
|
||||
|
||||
## 4. 任务卡(五字段:DoD / 硬依赖 / 资源 / 写范围 / 状态;完成即销项删行)
|
||||
## 3. 任务卡(五字段:DoD / 硬依赖 / 资源 / 写范围 / 状态;完成即销项删行)
|
||||
|
||||
> 资源图例:🔴 台架(COM6/ST-LINK,`bench.lock` 独占)· 🟡 外部(标准源/第三方主站)· 🟢 纯软件(可并行)。
|
||||
> 状态:⬜ 未开始 · 🟦 进行中(销项行直接删除,见 `docs/任务规划/README.md` §3 维护约定)。
|
||||
> ⚠ **写范围**:B7/B8/B9 已全部合入(2026-10-12)——`App/algo/`、`App/cfg/prot_set_store.*`、`App/log/`、`App/protocol/iec104/`、`App/task/protect_task.c` 均已释放;B9 sync 实测零冲突(`iec104_test.c` 改动区不重叠,自动合并干净)。
|
||||
|
||||
| 序 | 任务 | DoD(可验证验收判据) | 硬依赖 | 资源 | 写范围 | 状态 | 出处 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| **B10** | **标准源注入 + 第三方 104 主站往返(送检窗口)** | 标准源注入:L1-5 标定复核 / L1-7 等周波 / P1 过流·过负荷 / P2 电压 + 频率类判据全通过;第三方主站总召/周期/变位/遥控全流程(`../子系统设计/IEC104上行设计说明.md` §7/§8 核对单);证据归档 | M1 + M2(✅ 双达成) | 🟡 | —(窗口内缺陷修复走 Expedite 类) | ⬜ | 保护规划 §7 P1/P2 验收;`../子系统设计/IEC104上行设计说明.md` §7/§8 |
|
||||
| **B10** | **标准源注入 + 第三方 104 主站往返(送检窗口)** | 标准源注入:L1-5 标定复核 / L1-7 等周波 / P1 过流·过负荷 / P2 电压 + 频率类判据全通过;第三方主站总召/周期/变位/遥控全流程(`../子系统设计/IEC104上行设计说明.md` §7/§8 核对单);证据归档 | M1 + M2(均已达成) | 🟡 | —(窗口内缺陷修复走 Expedite 类) | ⬜ | 保护规划 §7 P1/P2 验收;`../子系统设计/IEC104上行设计说明.md` §7/§8 |
|
||||
|
||||
## 5. 并行规则(执行层映射 → `../环境与部署/并行任务工作树方案.md` §7.3)
|
||||
|
||||
> ① **WIP ≤ 2**:每道最多 1 个进行中(台架道 + 代码道各一),先完再开(Kanban);
|
||||
> ② worktree 分支**存活 ≤2 天、绿即合**(`done` 预演合并;32 钩子强门禁是并行安全底座);
|
||||
> ③ 写范围相交必须声明合并次序(见 §4 表注);
|
||||
> ④ **里程碑不拖延、功能顺延下一轮**(时间驱动,Zephyr 发布语义);
|
||||
> ⑤ 台架道永不空转:代码道在跑时,为下一个台架任务备料(约束优先,TOC)。
|
||||
> ⚠ **B10 与 W8 的依赖**:B10 的"L1-5 标定复核"依赖 W8 的通道标定卡(卡 12),即 **W8 是 B10 的前置**。
|
||||
> 该依赖已在 `docs/任务规划/W8-数据可信.md` §10 登记,两边不要各写一套;送检窗口若早于 W8 M4,
|
||||
> 先按卡 0 的注入结果对齐口径。
|
||||
|
||||
@@ -45,7 +45,7 @@ frame[s] = (float)code;
|
||||
|---|---|
|
||||
| **W8 数据可信(本波)** | 它是 W6 页面与 104 遥测的**共同前置**:先做页面,`ui_data_feed` 组装出的是码值帧,标定落地后组装逻辑要重写一遍 = 纯返工 |
|
||||
| W6 剩余 27 页 | 依赖 W8 的产出(`ui_data_rt_t.eng` 才能填 1);现在做只能继续塞占位值 |
|
||||
| W4 结构债 | 无人在等;C1 net 层收口体量大、验证重 |
|
||||
| W4 结构债 | 无人在等;net 层跨上下文收口体量大、验证重 |
|
||||
| 录波 + 104 文件传输 | 独立立项,且依赖工程量(录波通道必须有物理量含义) |
|
||||
|
||||
**代价对比**:本波 S 段约 200 行(系数表 + 折算 + 落盘),W6 那 30 页次是几千行。
|
||||
|
||||
+11
-69
@@ -1,73 +1,15 @@
|
||||
# 基线与待确认(设计参考,少改动)
|
||||
# 待确认(开放问题清单)
|
||||
|
||||
> 本文件是**参考基线**,不是待办池:待确认项(§1)、设计基线(§2)、诊断基线(§3)、内存预算(§4)。
|
||||
> 待办的排序与登记在 `docs/任务规划/README.md` §2 与 `docs/任务规划/登记簿.md`;**同一事实以内存管理文档为权威**(§3/§4 只是快照指针)。
|
||||
> 本文件是 **OQ 族(待确认 / 开放问题)的属主登记处**,见 `docs/编号规范.md` §4.2。
|
||||
> **只放还没有答案的问题**——有答案的立刻删行,答案落进对应模块文档。
|
||||
> ⚠ 文件名沿用旧称「基线与待确认」,但**基线类内容已全部移出**:设计基线在模块文档里
|
||||
> (net pending 化 → `docs/网络/Net层阻塞模型架构设计.md` §10;错误码四要素 →
|
||||
> `docs/产品需求/产品需求设计文档.md` §7.1),内存数字的权威在 `docs/内存管理/RAM预算台账.md`。
|
||||
|
||||
## 1. 待确认(需手册/硬件/产品定义,暂不直接改码)
|
||||
## 1. 待确认
|
||||
|
||||
1. TPAFE5160 是否有自动扫描模式(**已不影响**:1 kHz 硬件定时器触发已于 2026-10-10 由 **TIM3 更新中断**方案落地,不依赖自动扫描,见 `docs/子系统设计/ADC采样节拍设计说明.md`)。
|
||||
2. 要不要引入**真实**的功能裁剪门控——原 `APP_ADC_ENABLE` / `APP_RS485_ENABLE` 占位宏已于 2026-10-22 删除(零消费点),当前没有开关;此处要确认的是**是否需要在真实初始化点接入门控**(B1 取数不依赖它;**RS-485 侧随 B2 暂缓,见 `暂缓-RS485.md`**)。
|
||||
3. RS-485 PD0 DE 的半双工方向语义需硬件实测确认(本次仅静态审查)——**随 B2 暂缓(`暂缓-RS485.md`)**。
|
||||
1. **功能裁剪门控是否要在真实初始化点接入**——原 `APP_ADC_ENABLE` / `APP_RS485_ENABLE` 占位宏
|
||||
已于 2026-10-22 删除(零消费点),当前没有任何开关。要确认的是**是否需要**在真实初始化点
|
||||
接入门控;B1 取数不依赖它。RS-485 侧随 B2 暂缓(`暂缓-RS485.md`)。
|
||||
|
||||
## 2. 设计基线(供后续接入参考)
|
||||
|
||||
### 2.1 net 层阻塞模型 pending 化(状态)
|
||||
|
||||
> **来源**:`docs/网络/Net层阻塞模型架构设计.md`(现状架构;演进史查 git 历史)。
|
||||
|
||||
- **recv 挂起 / send 挂起已落地**:`net_recv` 阻塞不占 netTask(登记 + 每轮 tick 唤醒);
|
||||
`net_send` 快路径有界自旋(`NET_SEND_SPIN_MS` = 2 ms),超预算登记挂起、由 `net_send_pending_tick`
|
||||
按主循环节拍分块推进(2026-10-14 落地)。
|
||||
- **ACCEPT pending 化决定不实施(2026-10-15)**:ACCEPT 是**调用方轮询**问题、执行者零占用
|
||||
(`net_accept_locked` 单次 `net_poll` 即返回,0 停滞)——pending 化只换 RPC 开销与延迟抖动,
|
||||
不解队头阻塞;判据见 `docs/网络/Net层阻塞模型架构设计.md` §10。
|
||||
- 原 ACCEPT 设计基线(扩展点 / 门禁清单 / 改动量估算)随该决策作废,不再保留。
|
||||
|
||||
### 2.2 错误码通道四要素(CH395F 范式)
|
||||
|
||||
> **来源**:错误码通道四要素方法论(2026-09 错误码传播审计确立,属主文档已于 2026-10-15 删除)。
|
||||
> GD5F 错误通道统一即按此骨架落地
|
||||
> (2026-10-03,套件回归 16/16 PASS,见 `../问题记录/GD5F2GQ5UE_Trap_Records.md`)。**后续任何驱动 / 子系统建立错误通道时应沿用。**
|
||||
|
||||
```
|
||||
① 分类:区分「超时 / 真故障 / 参数错」——不得混为一个返回码
|
||||
② 透传:底层错误码逐层上报,不吞不猜(禁 `(void)ret`)
|
||||
③ 分级:可恢复(重试)/ 不可恢复(上报自检 + 降级)显式判定
|
||||
④ 留痕:不可恢复项写 syslog selftest,可恢复项计数并在 UI / 日志可见
|
||||
```
|
||||
|
||||
**关键纪律**(呼应 `AGENTS.md` 已有铁律):**自愈逻辑严禁把"名字 / 参数类错误码"
|
||||
归入"卷损坏触发集"**——`.fschk` 无限重格式化事故即此类(2026-09-20)。
|
||||
|
||||
## 3. 诊断基线(供后续对照)
|
||||
|
||||
> **2026-10-10 重采(栈)/ 2026-10-04 重采(堆)**:栈 = **运行时高水位 + armlink 静态最坏链双口径**
|
||||
> (产品构建 `suite=NONE`,开机 + 空闲采样,串口 `[STACK]` + `stack_report.py`);静态区 = `.map` 受管快照。
|
||||
> 栈水位口径:2026-10-10 削链后 defaultTask 实测 **2152 B**、静态最坏链 **2776 B**,**未抬栈**即达标
|
||||
> (完整核算见 `docs/内存管理/RAM使用分析与优化方案.md`)。
|
||||
> ⚠ 下表为**历史快照**(2026-10-04/10-10 口径);**现行权威数字**看 `docs/内存管理/RAM预算台账.md`
|
||||
> 与 `docs/内存管理/内存内容分配策略.md` §6(2026-10-12 B5 后:堆 56 KB、RW_CCM 87.9%)。
|
||||
|
||||
| 项 | 当前值(栈:2026-10-10;其余:2026-10-04) | 出处 |
|
||||
|---|---|---|
|
||||
| 产品构建 Flash (ER_IROM1) | 266,632 B / 1024 KB(25.4%);ROM 合计 **267,372 B** | `.map` 受管快照 |
|
||||
| 产品构建 RW_IRAM1 | **84,960 / 131,072 B(64.8%)** | `.map` 受管快照(`RAM使用分析与优化方案.md` §2.1) |
|
||||
| 产品构建 RW_CCM | 49,184 / 65,280 B(75.3%,历史当时值。2026-10-12 B5 后堆 56 KB / 87.9%) | 同上 |
|
||||
| 实测堆 | free=8,664 / **min_ever=4,728 B**(历史当时值,48 KB 堆时代) | V5 串口 `[STACK] heap` |
|
||||
| **defaultTask 栈峰值** | **2152 / 4096(余 1944 B = 47%);静态最坏链 2776 B(余 32%)** | `[STACK]` + `stack_report.py`(产品构建) |
|
||||
| netTask 栈峰值 | 920 / 3840(余 76%);静态 1872 B | 同上 |
|
||||
| ftpTask 栈峰值 | 740 / 4096(余 81%);静态 1216 B | 同上 |
|
||||
| uiTask 栈峰值 | 4016 / 16384(余 75%);静态 1336 B | 同上 |
|
||||
| timeSyncTask 栈峰值 | 792 / 2048(余量 61%) | 同上 |
|
||||
| adcTask 栈峰值(B1,2026-10-10 新建) | **496 / 2048**(余 1552 B / 75%,台架 `@test` 实测);静态最坏链 504 B | 台架 `@test` + `stack_report.py` |
|
||||
| testTask 栈峰值(产品态空转) | 496 / 8192(余量 93%) | 同上 |
|
||||
| 队列响应性(挂起客户端) | 92.5ms(recv 挂起落地后) | `e02_probe.py` |
|
||||
| M3 压力档帧周期 | med 60.1 / p95 66.4 / max 69.3ms,零尖峰 | `链路延迟测试说明.md` |
|
||||
|
||||
## 4. 内存预算(支撑 §3 与定栈规则)
|
||||
|
||||
现行权威数据 = `docs/内存管理/RAM使用分析与优化方案.md` v1.2(2026-09-21,§2.1 受管快照):
|
||||
任务栈在 CCM 堆(defaultTask 1024w / netTask 960w / ftpTask 1024w / testTask 2048w / uiTask 4096w / timeSyncTask 512w / **adcTask 512w**);
|
||||
产品构建 RW_IRAM1 84,960/131,072 B(64.8%)+ RW_CCM 49,184/65,280 B(75.3%,历史当时值。2026-10-12 B5 后堆 56 KB / 87.9%);
|
||||
实测堆 `free=8,664 / min_ever=4,728` B(历史当时值,48 KB 堆时代);台账工具 `scripts/ram_report.py` + `scripts/stack_report.py`。
|
||||
**旧栈表/旧余量数字作废,勿引用。**
|
||||
> RS-485 PD0 DE 的半双工方向语义确认不在此列——已登记在 `暂缓-RS485.md`「待确认-3」,随 B2 重启时一并做。
|
||||
|
||||
+17
-18
@@ -17,15 +17,15 @@
|
||||
|
||||
> **起跑状态(2026-10-25 实测)**:`task list` 报"没有任务空间",`git worktree list` 只剩主树 →
|
||||
> **3 个名额全空,批 1 可直接开三棵**。
|
||||
> 道C 已不含主机单测——S1-c 于 2026-10-24 销项(`test/host/sys_log_mcu/` 106 例 +
|
||||
> `test/host/time_sync/` 4 例已落地),故道C 缩为"断言宏 + 门禁 + 构建实测"三件。
|
||||
> 道C 不含主机单测(S1-c 已完成,证据见 `docs/测试说明/主机单测覆盖率口径.md` §9),
|
||||
> 只剩"断言宏 + 门禁 + 构建实测"三件。
|
||||
|
||||
```
|
||||
批 1 道A 标定与量纲 ∥ 道B UI 组件层 ∥ 道C 工具链与验证
|
||||
↓
|
||||
批 2 道D 遥测链 ∥ 道E UI 页面 ∥ 道F 结构债与网络
|
||||
↓
|
||||
C6 独占一轮(USART1 TX-only,CubeMX 重生成,不能与任何分支并存)
|
||||
「USART1 改为只发不收」独占一轮(CubeMX 重生成,不能与任何分支并存)
|
||||
↓
|
||||
批 3 道G 保护元件 ∥ 道H 采集增强 ∥ 台架/外部窗口(卡 12、N-16、N-3、B10)
|
||||
```
|
||||
@@ -39,7 +39,7 @@ C6 独占一轮(USART1 TX-only,CubeMX 重生成,不能与任何分支并
|
||||
| **道C** | 工具链与验证(断言/门禁/构建实测) | 1 | 域8 |
|
||||
| **道D** | 遥测链(W8 M5/M6) | 2 | 域1+域4+域2 |
|
||||
| **道E** | UI 页面(27 叶 + 3 页回炉) | 2 | 域5 |
|
||||
| **道F** | 结构债与网络(C1/C3/N-17/N-22) | 2 | 域6+域7 |
|
||||
| **道F** | 结构债与网络(net 层收口 / 日志管线 / 探针心跳 / 写回 flush) | 2 | 域6+域7 |
|
||||
| **道G** | 保护元件扩展 | 3 | 域3+域2 |
|
||||
| **道H** | 采集增强(等周波/零序/谐波轨) | 3 | 域1+域3 |
|
||||
|
||||
@@ -61,7 +61,7 @@ C6 独占一轮(USART1 TX-only,CubeMX 重生成,不能与任何分支并
|
||||
| 4 | **单写者文件**:`docs/任务规划/**`、`AGENTS.md` 任务表块、`MDK-ARM/*.uvprojx`、`.pre-commit-config.yaml`、内存快照 | `并行任务工作树方案.md` §6.1 | 任务分支不碰登记簿;uvprojx 手工并;内存数字合并后重生成 |
|
||||
| 5 | **分支存活 ≤2 天、绿即合** | `并行任务工作树方案.md` §7.3 规则 3 | 一条道不是一条长分支,是**连续若干个短分支** |
|
||||
| 6 | **`done` 只能在主工作树、必须串行** | `.dsh/skills/task-worktree/SKILL.md` 铁律 1 | 合并不是并行的,只能排队 |
|
||||
| 7 | **CubeMX 重生成会打回手工定制**(需跑 `check_cubemx_survival.py`) | `docs/任务规划/排期详述.md` §1 C6 | C6 **独占**,不能与任何分支并存 |
|
||||
| 7 | **CubeMX 重生成会打回手工定制**(需跑 `check_cubemx_survival.py`) | `docs/任务规划/排期详述.md` §1「USART1 改为只发不收」 | 该任务**独占**,不能与任何分支并存 |
|
||||
| 8 | **`check_layer_deps.py` 基线只减不增** | `scripts/check_layer_deps.py` | 谁减基线谁写这个文件——只能有一条道写 |
|
||||
|
||||
> 约束 1 与 3 合起来给出真正的并行度:**3 条编码道 + 1 条台架道**,台架道跑在主工作树里,
|
||||
@@ -162,20 +162,20 @@ C6 独占一轮(USART1 TX-only,CubeMX 重生成,不能与任何分支并
|
||||
|
||||
| 条目 | 写域 | 道 | 批 |
|
||||
|---|---|---|---|
|
||||
| C6 / S-3 USART1 TX-only 结构根治 | `.ioc` + `Src/*`(重生成) | **独占** | 2.5 |
|
||||
| C3 / N-2 日志管线合并评估 | 域6 | **道F 结构债** | 2 |
|
||||
| **USART1 改为只发不收**(S-3) | `.ioc` + `Src/*`(重生成) | **独占** | 2.5 |
|
||||
| **日志管线与 S8 合并评估**(N-2) | 域6 | **道F 结构债** | 2 |
|
||||
| N-22 写回缓存空闲 flush | 域6 | **道F 结构债** | 2 |
|
||||
| N-17 探针窗口心跳缺口(排期详述里的 D6) | 域7 + `App/sync/` | **道F 结构债** | 2 |
|
||||
| C1 / E-27·E-28 net 跨上下文收口 | 域7 | **道F 结构债** | 3 |
|
||||
| N-17 探针窗口心跳缺口 | 域7 + `App/sync/` | **道F 结构债** | 2 |
|
||||
| **net 层跨上下文收口**(E-27 / E-28) | 域7 | **道F 结构债** | 3 |
|
||||
| N-25 性能与语义簇(PASV/PHY/SOCKETS) | 域7 | **道F 结构债** | 3 |
|
||||
| S-4 dhara 重试自旋 | 域6 | **道F 结构债** | 3 |
|
||||
| S-5 全序列卷锁评估 | 域6 | **道F 结构债** | 3 |
|
||||
| `docs/任务规划/测试与架构专项.md` 的 P1-10 测试固件构建实测 | `MDK-ARM/` 测试配置 | **道C 工具链** | 1 |
|
||||
| S12 模块级断言宏 | `App/util/app_assert.h`(新增)+ 试点 | **道C 工具链** | 1 |
|
||||
| A-5 残余 CI 体积门禁盲区 | `.gitea/` + `scripts/` | **道C 工具链** | 1 |
|
||||
| N-3 / D2 L5 基线重锁 | 无码(需 PC peer) | **台架道** | 3 |
|
||||
| N-16 / D5 A2/A4 负向台架 | 无码 | **台架道** | 3 |
|
||||
| D7 串口助手 A6/A7 | 无码(需 CH340) | **台架道** | 待硬件 |
|
||||
| **L5 队列往返基线重锁**(N-3) | 无码(需 PC peer) | **台架道** | 3 |
|
||||
| **A2/A4 负向台架**(N-16) | 无码 | **台架道** | 3 |
|
||||
| **串口助手 A6/A7 补验** | 无码(需 CH340) | **台架道** | 待硬件 |
|
||||
| B10 送检(标准源 + 第三方主站) | 无码 | **外部窗口** | Fixed Date |
|
||||
| T-7 CI runner | 外部基础设施 | **外部** | 待 runner |
|
||||
| N-30 relisten 收口 / `docs/问题记录/项目审查与优化建议报告.md` 的 F-5(N-28 簇)/ N-29 `.git` / N-18 V0.2 / N-27 内存簇 / B2 RS-485 / 开入开出 / 录波 | — | **不排** | — |
|
||||
@@ -223,9 +223,8 @@ C6 独占一轮(USART1 TX-only,CubeMX 重生成,不能与任何分支并
|
||||
**目标**:补门禁与测试底座,让后两批的合并更安全。
|
||||
**含**:S12 断言宏 → A-5 体积门禁 → 测试固件构建实测(详见 `docs/任务规划/测试与架构专项.md`)。
|
||||
|
||||
> **S1-c 已于 2026-10-24 销项,不再是本道内容**:`test/host/sys_log_mcu/`(106 例)与
|
||||
> `test/host/time_sync/`(4 例)已落地,且被 `test-coverage` 总闸(`^App/|^Drivers/BSP/|^test/host/`)
|
||||
> 全量跑到,比专属钩子覆盖面更宽。证据见 `docs/测试说明/主机单测覆盖率口径.md` §9。
|
||||
> **本道不含主机单测**(S1-c 已完成):`test/host/**` 由 `test-coverage` 总闸统一守,
|
||||
> 本道不再新增测试目录。证据见 `docs/测试说明/主机单测覆盖率口径.md` §9。
|
||||
|
||||
| 分支 | 内容 | 预计 | 写域 |
|
||||
|---|---|---|---|
|
||||
@@ -286,7 +285,7 @@ C6 独占一轮(USART1 TX-only,CubeMX 重生成,不能与任何分支并
|
||||
|
||||
| 事项 | 为什么不能并行 | 正确做法 |
|
||||
|---|---|---|
|
||||
| **C6 / S-3 USART1 TX-only** | 改 `.ioc` → CubeMX 重生成会**打回 5 处手工定制**(IWDG 延迟启动、Fault Handler、FreeRTOSConfig 加固区等),且重写 `Src/*` 大片生成文件 → 与任何分支必冲突 | **独占一轮**:清空所有工作树 → 在主工作树做 → `check_cubemx_survival.py` 全过 → 台架闭环 |
|
||||
| **USART1 改为只发不收**(S-3) | 改 `.ioc` → CubeMX 重生成会**打回 5 处手工定制**(IWDG 延迟启动、Fault Handler、FreeRTOSConfig 加固区等),且重写 `Src/*` 大片生成文件 → 与任何分支必冲突 | **独占一轮**:清空所有工作树 → 在主工作树做 → `check_cubemx_survival.py` 全过 → 台架闭环 |
|
||||
| **字库重生成** | `make_font.py` 重写 `ui_font_cn_12.c`(整文件生成物),两人同时扩字会互相覆盖 | 归道B 一个分支独占;后续加字必须重新走一次 |
|
||||
| **往 `prot_set` 加定值项** | 改 `PS_ID_COUNT` → blob VER 2→3 → 影响落盘格式、104 定值段、UI 整定页分组 | 只在**没有任何 W8 定值卡在飞**的时候做(批 3 的道G) |
|
||||
|
||||
@@ -341,10 +340,10 @@ $WT = ".dsh\skills\task-worktree\scripts\task_worktree.py"
|
||||
|---|---|---|
|
||||
| B2 RS-485 整簇(含 E-49/E-50、A-4 RS485 侧、N-25 DE 项、待确认-3) | ⏸ 用户决定 2026-10-12 暂缓 | 见 `docs/任务规划/暂缓-RS485.md` |
|
||||
| N-27 内存优化簇剩余(`docs/问题记录/项目审查与优化建议报告.md` 的 R-2 后半 / R-3 / R-4 / R-6) | ⏸ 用户裁定 2026-10-15 | `docs/问题记录/项目审查与优化建议报告.md` §5.3 |
|
||||
| N-29 `.git` 235 MB | 决策:登记观察 | 推送/协作前重评 |
|
||||
| N-29 `.git` 233 MB | 决策:登记观察 | 推送/协作前重评 |
|
||||
| N-18 V0.2 硬件改版 | 下一版硬件 | 硬件改版立项 |
|
||||
| N-30 relisten 收口 | 观察(原语版实测回退) | 三条语义前置满足后 |
|
||||
| `docs/问题记录/项目审查与优化建议报告.md` 的 F-5 空 TU(N-28 簇) | 观察 | 有全量构建耗时痛点时 |
|
||||
| T-7 CI runner | 外部基础设施 | runner 就绪 |
|
||||
| D7 串口助手 A6/A7 | 待硬件 | CH340 到位 |
|
||||
| 串口助手 A6/A7 补验 | 待硬件 | CH340 到位 |
|
||||
| 开入/开出固件、故障录波 + 104 文件传输 | 独立立项 | 产品定义 / 单独立项 |
|
||||
|
||||
+26
-19
@@ -1,25 +1,32 @@
|
||||
# 排期详述(W4 结构债 · W5 验证常态)
|
||||
# 结构债与验证常态
|
||||
|
||||
> 波次总览与顺序权威在 `docs/任务规划/README.md` §2;当前波次任务卡在 `W1-采集保护收尾.md`。
|
||||
> 波次总览与顺序权威在 `docs/任务规划/README.md` §2;当前波次任务卡在 `W8-数据可信.md`,
|
||||
> W1 只剩 M3 送检(`W1-采集保护收尾.md`)。
|
||||
> 本文件只放**已排期但非当前波次**的详述表——低频改动,随窗口更新。
|
||||
>
|
||||
> **条目一律用语义名**(2026-10-25 起):原先「C 组短码」(结构债 1/3/5/6)与「D 组短码」
|
||||
> (验证窗口 2/5/6/7)已废止。原因是它们**同字母不同义**——`C` 组在
|
||||
> `docs/UI设计/UI_界面制作流程.md` 里是 UI 设计约束(屏幕/字符集/文本/编码),`D` 组在
|
||||
> `docs/子系统设计/控制台单写者日志设计说明.md` 与 `docs/子系统设计/配置文件设计说明.md`
|
||||
> 里是决策记录。同一个短码在三处指三件事,读的人只能猜。
|
||||
|
||||
## 1. W4 结构债详述
|
||||
## 1. 结构债(按性价比排序)
|
||||
|
||||
> 波内顺序 = 性价比:先可靠性根治,后大体量重构;评估簇随窗口。
|
||||
> 顺序 = 先可靠性根治,后大体量重构;评估簇随窗口。
|
||||
|
||||
| 序 | 任务 | 说明 | 出处 |
|
||||
|---|---|---|---|
|
||||
| **C6** | **USART1 TX-only 结构根治(S-3)** | 灭 ORE 僵尸机制根源(2026-10-02 台架 IWDG 误复位的机制根源):改 `.ioc` 令 USART1 不使能 RX / PA10 不复用为 `USART1_RX` → CubeMX 重生成 → 跑 `check_cubemx_survival.py`。结构性改动,需单开一轮 + 复跑台架闭环 | S-3 |
|
||||
| **C3** | **存储侧日志管线(N-2)** | 丢弃可观测性**代码已具备**(`console_log.c` `s_con_drop`+`[ERR] CONSOLE dropped`、`sys_log_mcu.c` 队列满 `DBG_ERROR`、TX 僵尸通道自愈);V5 30 min 日志**未复现 49s 静默**(运行期 >10s 静默全为 ~28s、均在 `e02_probe` 窗口内=N-17)。剩余:与 S8(非阻塞日志)合并评估。⚠ 原挂本卡的 **N-24**(日志逐条 `f_open/f_write/f_close`)已于 2026-10-15 修复销项(写侧一次排空合并成每文件一次开关、读侧 8 条滑动窗口)→ 实施记录 `../子系统设计/运行与自检记录设计说明.md` §4.4 / §4.5 | N-2 |
|
||||
| **C1** | **net 层跨上下文收口** | 消化 E-27/E-28(裸指针收口为状态查询 API)。原 ACCEPT + SEND pending 化已收口:SEND 2026-10-14 落地、ACCEPT 决定不实施(2026-10-15)。**另:`net_select` 的两处死路径(`timeout={0,0}` 退化成死等、`exceptfds` 恒为空)已于 2026-10-23 由主机单测照出并修掉**,判据与用例见 `docs/测试说明/主机单测覆盖率口径.md` §9 | E-27 / E-28 |
|
||||
| **C5** | 一档剩余 | **N-23 残余**(`KNOWN_GAPS` 白名单清理,见 `登记簿.md`);~~`app_cfg.h` 未接线开关~~ ✅ **已闭环**(2026-10-22 删除零消费点占位宏,报告 S-4)。**RS-485 DE 收尾已移入 `暂缓-RS485.md`** | 一档/二档 |
|
||||
| **N-22/25/28** | 评估簇 | 写回 flush / 性能与语义一致性 / Flash 死代码——逐项见 `登记簿.md` 对应行,随窗口评估 | 报告各条 |
|
||||
|
||||
## 2. W5 验证常态详述
|
||||
|
||||
| 序 | 任务 | 说明 |
|
||||
| 条目 | 内容 | 出处 |
|
||||
|---|---|---|
|
||||
| **D2** | N-3 L5 基线重锁 | 下次 Phase 13 窗口顺带做(低风险:阈值余量 >8×;**需 PC peer**) |
|
||||
| **D5** | **N-16 专项负向台架窗口** | A2/A4 负向场景:PHY 拔线(需断 DTU 侧/关受管交换机端口)、A2 芯片级 `net_init` 失败(SPI 故障注入)、A4 短写压测 |
|
||||
| **D6** | **N-17 探针窗口心跳缺口** | 定位 `time_sync` 监听重建为何阻塞 NET/FTP/UI(~1s 缺口,余量仅 ~0.7s);评估缩短重建重试或让掉线路径不阻塞其它任务 |
|
||||
| **D7** | **串口助手 A6/A7 正路径补验** | 需 CH340 硬件接入后补验(`../测试说明/串口助手设计说明.md` 状态行 A1–A5/A8 已过) |
|
||||
| **USART1 改为只发不收** | 灭 ORE 僵尸机制根源(2026-10-02 台架 IWDG 误复位的机制根源):改 `.ioc` 令 USART1 不使能 RX / PA10 不复用为 `USART1_RX` → CubeMX 重生成 → 跑 `check_cubemx_survival.py`。结构性改动,需单开一轮 + 复跑台架闭环 | S-3 |
|
||||
| **日志管线:与 S8 非阻塞日志合并评估** | 剩余动作只有这一条。丢弃可观测性代码已具备、V5 30 min 未复现 49s 静默(运行期 >10s 静默全在 `e02_probe` 窗口内=N-17) | N-2 |
|
||||
| **net 层跨上下文收口** | 剩余动作:**消化 E-27 / E-28**(裸指针收口为状态查询 API) | E-27 / E-28 |
|
||||
| **注册校验白名单清理** | 剩余动作:清 `KNOWN_GAPS` 白名单(现只剩 `App/task/rs485_task.c`,见 `登记簿.md`)。**RS-485 DE 收尾已移入 `暂缓-RS485.md`** | N-23 残余 |
|
||||
| **写回缓存空闲 flush · 性能与语义簇 · 空 TU 观察** | 三项随窗口评估,逐项见 `登记簿.md` 对应行 | N-22 / N-25 / N-28 |
|
||||
|
||||
## 2. 验证常态(逢窗口顺带,不单独排期)
|
||||
|
||||
| 条目 | 内容 | 出处 |
|
||||
|---|---|---|
|
||||
| **L5 队列往返基线重锁** | 下次 Phase 13 窗口顺带做(低风险:阈值余量 >8×;**需 PC peer**) | N-3 |
|
||||
| **A2/A4 负向台架窗口** | PHY 拔线(需断 DTU 侧 / 关受管交换机端口)、A2 芯片级 `net_init` 失败(SPI 故障注入)、A4 短写压测 | N-16 |
|
||||
| **探针窗口心跳缺口** | 定位 `time_sync` 监听重建为何阻塞 NET/FTP/UI(~1s 缺口,余量仅 ~0.7s);评估缩短重建重试或让掉线路径不阻塞其它任务 | N-17 |
|
||||
| **串口助手 A6/A7 正路径补验** | 需 CH340 硬件接入后补验(`../测试说明/串口助手设计说明.md` 状态行 A1–A5/A8 已过) | — |
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
| 项 | 内容 | 重启时的前置 |
|
||||
|---|---|---|
|
||||
| **B2** | **RS-485 采集链路实现**(消化 E-50、E-49):双缓冲 + 序号(防包撕裂)+ DE 收尾(超时路径等 TC)+ ModBus RTU 状态机(`App/protocol/` 正是为此预留) | **E-59 门禁尚未满足**:先修 E-50(单缓冲包撕裂)、E-49(TX 超时拉 DE 未等 TC),修完驱动契约才允许接消费者 |
|
||||
| E-49 | RS485 DE 收尾(原 C5 一档剩余,已移出) | 同上 |
|
||||
| E-49 | RS485 DE 收尾(原属结构债一档剩余,已移出) | 同上 |
|
||||
| A-4 RS485 侧 | 采集链路测试可验证性约束(双缓冲 + 序号、DE 超时路径覆盖,`测试与架构专项.md` §2.2) | 随 B2 设计文档落地 |
|
||||
| 待确认-3 | RS-485 PD0 DE 半双工方向语义硬件实测确认(`基线与待确认.md` §1 第 3 项) | 需硬件实测窗口 |
|
||||
| 待确认-3 | RS-485 PD0 DE 半双工方向语义硬件实测确认(本次仅静态审查) | 需硬件实测窗口 |
|
||||
| N-25 中 DE 项 | `HAL_Delay(1)` 阻塞 DE | 随 B2 |
|
||||
|
||||
@@ -11,13 +11,11 @@
|
||||
|
||||
## 1. P1 收尾(1 项:P1-10 剩构建实测闭环)
|
||||
|
||||
### P1-10 测试固件静态 RAM 预算(基线已重建、测试缓冲已瘦身,剩构建实测闭环)
|
||||
### P1-10 测试固件静态 RAM 预算(基线已重建、缓冲已瘦身,剩构建实测闭环)
|
||||
|
||||
- **位置**:`MDK-ARM/STM32F407-Demo/STM32F407-Demo.sct`(`RW_IRAM1 0x20000000 0x00020000` = 128KB;芯片 192KB 的上部 64KB 有意未映射,克隆芯片兼容性考量)
|
||||
- **历史**(2026-09-15 审计 / 09-16 复现):产品构建静态镜像曾 = 123.6KB/128KB(余量仅 4.4KB);HW 全阶段固件的 PHASE5 三缓冲(3×4093B)→ 超 8.7KB(`L6406E` 实测);NET 固件的 32KB `s_rx_buf` → 超约 28KB。
|
||||
- **进展**(2026-09-21,已复核):① 预算基线重建(`docs/内存管理/RAM使用分析与优化方案.md` v1.2):FreeRTOS 堆迁 CCM,任务栈改由 CCM 堆分配;产品构建 RW_IRAM1 余 ~49KB;② NET 层测试 32KB `s_rx_buf`/`s_tx_buf` 已移除,改小局部缓冲;③ STORAGE 套件固件 2026-09-20/21 实测可构建可运行。
|
||||
- **剩余**:① CH395F 套件(`TEST_SUITE_CH395F`,HW 全阶段 / NET 层 7 配置)实际构建确认链接通过——PHASE5 三静态缓冲 3×4093B 仍在,理论余量足够但未实测;② `@test` 闭环;③ **不建议**扩 scatter 到 192KB(破坏既有克隆芯片兼容决策)。
|
||||
- **置信度**:high(基线数据来自 2026-09-21 map;测试固件构建未复验)。
|
||||
- **剩余**:① CH395F 套件(`TEST_SUITE_CH395F`,HW 全阶段 / NET 层 7 配置)实际构建确认链接通过——PHASE5 三静态缓冲 3×4093B 仍在,理论余量足够但未实测;② `@test` 闭环。
|
||||
- **约束**:**不建议**扩 scatter 到 192KB(破坏既有克隆芯片兼容决策)。
|
||||
|
||||
## 2. 测试与架构改进专项(S1x / A-x)
|
||||
|
||||
@@ -74,7 +72,7 @@
|
||||
### 2.3 A-5 残余:CI 体积门禁盲区 ⬜
|
||||
|
||||
**现状**:`mem-numbers` 钩子**在 CI 上被跳过**(CI 无 `.map`)→ **CI 不守体积门禁**。
|
||||
S14 已在 workflow 显式提示"体积门禁未执行"(`::notice::`)并在 `../环境与部署/CI配置指南.md` 声明,
|
||||
S14 已在 workflow 显式提示"体积门禁未执行"(`::notice::`)并在 `../CI/远程CI完整指南.md` 声明,
|
||||
但**盲区本身未消除**——看到 CI 全绿仍可能误以为体积也守住了。
|
||||
|
||||
**可选处置**:
|
||||
|
||||
+10
-9
@@ -1,7 +1,8 @@
|
||||
# 登记簿(长期观察项;存量 `N-x / S-x / T-x`,**新条目用语义标识**)
|
||||
|
||||
> 编号空间与"不回收"规则见 `docs/任务规划/README.md` §0;排期位置见 `docs/任务规划/README.md` §2 波次总览;
|
||||
> 当前波次任务卡(带 DoD / 写范围 / 状态)在 `W1-采集保护收尾.md`。
|
||||
> 当前波次任务卡(带 DoD / 写范围 / 状态)在 `W8-数据可信.md`——**W1 的 M1/M2 已收口,只剩 M3 送检**;
|
||||
> 并行归道(写域 / 道 / 合并次序)见 `并行分道方案.md`。
|
||||
> **本文件是低频文件**:新发现按类别进对应表;销项 = 删行 + 清引用(`docs/任务规划/README.md` §3)。
|
||||
> **2026-10-14 起新条目的 `#` 列填「语义标识」**——一行短语直接说清是什么事(如
|
||||
> `沉降窗 800ms 上限只留痕`、`RS485 采集接线`),**不再新增字母+数字编号**;存量编号冻结沿用,
|
||||
@@ -11,7 +12,7 @@
|
||||
|
||||
| # | 事项 | 发现 | 证据与现状 | 出处 |
|
||||
|---|---|---|---|---|
|
||||
| N-2 | **49s 全系统日志静默(defaultTask/NAND syslog 排空停滞)**——串口日志 49s 无行,期间 net 栈照常处理外部连接 → 日志管线停滞,队列满后各任务日志行被丢;系统功能不受损 | 2026-09-22(L3 台架 F2,gen 181) | **A/B 归因:既有存储侧现象**。**2026-10-03 降级为低风险观察项**:① 丢弃可观测性**代码已具备**(`console_log.c` `s_con_drop` + `[ERR] CONSOLE dropped`;`sys_log_mcu.c` 队列满 `DBG_ERROR`;UART TX 僵尸通道自愈);② V5 30 min **未复现 49s**(>10s 静默全为 ~28s、均在 `e02_probe` 窗口内=N-17)。**残余待办**:与 S8(非阻塞日志)合并评估(C3) | `../网络/Net层阻塞模型架构设计.md`(原审计队头阻塞阶段二) |
|
||||
| N-2 | **49s 全系统日志静默**(defaultTask/NAND syslog 排空停滞;串口 49s 无行,系统功能不受损) | 2026-09-22(L3 台架 F2,gen 181) | **低风险观察项**(2026-10-03 降级):丢弃可观测性代码已具备(`console_log.c` `s_con_drop` + `sys_log_mcu.c` 队列满 `DBG_ERROR`)、V5 30 min 未复现。**残余动作**:与 S8(非阻塞日志)合并评估(见 `排期详述.md` §1) | `../网络/Net层阻塞模型架构设计.md` |
|
||||
| N-3 | **L5 队列往返基线(1223/988µs)的 L3 后重验**——L5 测 DONTWAIT 队列全程;L3 对该路径逐位不变 → 机制上无影响,但基线数值属分片时代,严格重锁需跑一轮 Phase 13(需 PC peer) | 2026-09-22(L3 收尾留档) | 低风险:10ms/100ms 阈值余量 >8×;下次 Phase 13 窗口顺带重锁即可 | `链路延迟测试说明.md` §6.4 L5 注¹ |
|
||||
| N-16 | **A2/A4 专项场景台架验证待办**(正常路径已实测零回归):① PHY 拔线负向测试——断链需断 **DTU 侧**线缆或关**受管交换机端口**;② A2 芯片级 `net_init` 失败分支(需 SPI 故障注入);③ A4 短写压测(需远显客户端 + UI 推流压力) | 2026-10-03(台架拓扑 = CH395↔交换机,拔线操作受限) | 待专项台架窗口 | `实机测试实施指南.md` §10 |
|
||||
| N-17 | **`time_sync` 30s 挂起客户端掉线 + 监听重建期间,网络任务心跳缺口达 800ms~1s(声明 stall 但未复位)。**待办**:定位监听重建为何阻塞 NET/FTP/UI;评估缩短重建重试(5×2s)或让掉线路径不阻塞其它任务 | 2026-10-03(V5 台架) | V5 长跑 44 次 `task stall: mask=0x00000001`,**100% 与 `e02_probe` 的 30s 挂起客户端触发 `time_sync: no TIME packet in 30s, drop conn` → 监听重建(约 4s)重合**;隔离实验(仅 FTP,120s)**0 次 stall** → 探针场景专属。缺口(~1s)< IWDG 最坏超时(1701ms),余量仅 ~0.7s。 | `实机测试实施指南.md` §4;`../子系统设计/看门狗设计说明.md` |
|
||||
@@ -35,16 +36,16 @@
|
||||
|
||||
| # | 事项 | 优先级 | 问题与证据 | 处置方向 | 出处 |
|
||||
|---|---|---|---|---|---|
|
||||
| T-7 | **CI runner 未就绪(部署前置)** | 中 | `.gitea/workflows/ci.yml` 已落地,但 CI 仅在 runner 就绪后才真正生效:① Gitea 实例 `[actions] ENABLED = true`;② 注册 Windows runner(labels 含 `windows`),装 Python 3.x / cppcheck / pre-commit / MSVC;③ runner 就绪后**推送远端跑一次两 job 闭环验证**(当前 21 个提交未推送,CI 从未真实执行);④ **第二机交叉验证**(不同工具安装路径,验 `DTU_*` 环境变量方案,→ `../环境与部署/本地工具路径环境变量方案.md` 变更记录 TODO) | runner 未就绪前,**提交前仍须在本地跑 `scripts/ci_local.py` 或 `pre-commit run --all-files` 自查**(L0 唯一保障,不能因"已配 CI"而放宽) | `.gitea/workflows/ci.yml`;`../测试说明/测试开发标准流程.md` §9 |
|
||||
| T-7 | **CI 远端闭环未验证**(runner 本机已就绪) | 中 | **剩余两件**:③ 推送远端跑一次两 job 闭环验证(**跑通证据尚无留档**,故仍按"未验证"对待);④ 第二机交叉验证(不同工具安装路径,验 `DTU_*` 环境变量方案,→ `../环境与部署/本地工具路径环境变量方案.md` 变更记录 TODO)。①② 已就绪,见 `../CI/远程CI完整指南.md` §0 仓库状态行 | 完成前**提交前仍须在本地跑 `scripts/ci_local.py` 或 `pre-commit run --all-files` 自查**(L0 唯一保障,不能因"已配 CI"而放宽) | `.gitea/workflows/ci.yml`;`../CI/远程CI完整指南.md`;`../测试说明/测试开发标准流程.md` §9 |
|
||||
|
||||
## 5. 审查报告并轨(2026-10-11;⚠ 报告编号与本登记簿同名不同义,出处列保留报告编号,引用一律带文档名)
|
||||
|
||||
| # | 事项 | 影响 / 现状 | 处置方向 | 波次 | 出处 |
|
||||
|---|---|---|---|---|---|
|
||||
| N-22 | 写回缓存无空闲/掉电强制 flush(整页写与换页已 flush) | 写回窗口内掉电丢最近日志/配置写 | defaultTask 空闲 N ms flush | W4 | 报告 N-14 |
|
||||
| N-23 残余 | **钩子已落地**(2026-10-12 `registration-check` 挂 pre-commit,存量缺口走 `KNOWN_GAPS` 白名单只 WARN);**残余** = 白名单只剩 `rs485_task.c` 一条**刻意**缺口(E-59 门禁下随 B2 暂缓,见 `暂缓-RS485.md`)。⚠ `lftpd_log.c` 已随 N-19 删除并入 `lftpd_auth.c`(2026-10-11),不再是缺口 | 白名单不清 = "写了不编译"盲区仍在 | 随 B2 一并出白名单(`--strict` 供审计复跑) | W4(C5) | 报告 N-06 残余 + 报告 S-3 |
|
||||
| N-25 | 性能/资源建议簇:PASV 每次新建监听;PHY 强制 100M 无自协商回退;`NET_MAX_SOCKETS 8` 与单连接语义不符;`HAL_Delay(1)` 阻塞 DE(**DE 项随 B2 暂缓,见 `暂缓-RS485.md`**)。⚠ 原列的 `NET_RECV_TIMEOUT_MS 30000` 已随 2026-10-13「recv 语义主流化」删除(挂起 recv 模型),不再是待办 | 次级性能/语义一致性 | 逐项见 `../问题记录/项目审查与优化建议报告.md` §4.2/§4.7,随窗口评估 | W4 | 报告 N-09/PHY/P3-x/rs485 |
|
||||
| N-27 | **内存优化簇**:**R-9 ✅ 已落地(2026-10-15)**——`LV_MEM_SIZE` 40→16 KB → SRAM1 由 74.9% 降到 **56.1%(余 57,504 B)**;待迁 CCM 体量随之由 54,146 B 降到 **29,570 B**,而 CCM 只剩 **7,904 B**(`RW_CCM` 上限 65,280 − 57,376) | ⏸ **整簇暂缓(用户裁定 2026-10-15)**:R-2 后半(缩堆 56→32 KB → 迁 CCM)与 R-3 / R-4 / R-6 **不再排期**——没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测,收益不抵风险与工时。⚠ 代价落在"以后加任务 / 抬栈 / 加堆"那一刻:CCM 只剩 7,904 B、FreeRTOS 堆实测 `min_ever` 8,464 B,届时 `mem-budget` 会先报警 → 按报告 §5.3 重开条件评估 | **三件套 ✅ 2026-10-12 落地**(`ram_baseline.py` 四模式 + `ram_baseline.tsv` 趋势 + `docs/内存管理/RAM预算台账.md` + `mem-budget` 钩子 92% 门禁)→ **R-9 ✅ 2026-10-15**(实测峰值 6,568 B = 池的 40%,水位表见 `../内存管理/RAM使用分析与优化方案.md` §2.6.2)→ **⏸ 其余整簇暂缓**(2026-10-15 裁定;理由与重开条件 → `../问题记录/项目审查与优化建议报告.md` §5.3)。⚠ **R-5 已判定不可行、从本簇剔除**:CMSIS-RTOS2 `freertos_os2.h` 有 `#if (configMAX_PRIORITIES != 56) #error`,改小直接编译失败(为 480 B 改第三方包装层不划算) | **暂缓** | 报告 R-2 剩余/R-3/R-4/R-6/§5.5 |
|
||||
| N-28 | **本簇三项已全部判定(2026-10-22)**:**报告 F-6 ✅ 落地**(`App/algo/prot_set.h` 两个 Q10 宏去显式 `(double)` → `@build` 0 错 0 警、Code −332 B、保护判据路径不再走软件双精度;剩余 `dadd`/`dmul`/`ddiv`/`depilogue`/`dfixul` 1,018 B 锁在 MicroLIB `printfa.o` 的 `_printf_core → _fp_digits`,**与 `%f` 无关——全库 0 处 `%f`,报告原归因错**);**报告 F-4 ❌ 判定不做**(五项字节数仍准、合计 10,060 B,但**无一项有开关**:根因是 `lv_draw_sw.c` 的 `execute_drawing()` 无条件 switch 引用全部 task 类型;唯一总开关 `LV_DRAW_SW_COMPLEX` 被主界面"浅 V"3 px 粗斜腿锁死,2026-09-03 已实测失败并两端固化 =1;报告原"mask 是文字必经路径"的理由亦证伪——字形走 blend 层 `mask_buf`) | 仅剩 **报告 F-5 🟡 观察项**:uvprojx 201 个 LVGL `.c` 里 **127 个是空 TU**(`.map` 零产出);增量构建实测 4~5 s、远程 CI 刻意不跑 `@build` → **非产品指标**,报告原"编译时长 −40%"无基线记录 | 有实测的全量构建耗时痛点时再做:用 Keil 原生 `<IncludeInBuild>0</IncludeInBuild>`(可逆)而非删条目,且排在任何 `lv_conf.h` 改动之后;动手前先补一次全量构建计时做基线 | W4 | 报告 F-4/F-5/F-6 |
|
||||
| N-29 | **仓库膨胀**:`.git` **235.3 MB**(2026-10-14 实测;本行建档时记 149 MB)+ 手册图片 36.3 MB(受控文件合计仅 79.3 MB,`.git` 已是它的 3 倍) | clone/备份慢,且持续恶化 | 降采样 / 拆 submodule / LFS 三选一 **+ 一次 `git filter-repo` 历史重写**(三项都不解决历史膨胀)。**已决策(2026-10-11):暂不处理、登记观察**——推送/协作前重评(届时未推送提交更少、重写代价最低) | **W7** | 报告 D-1 |
|
||||
| U 簇 | UI 标准化:无令牌层/组件库/页注册表(手写 `case` 仍在),**27 页**未落地;golden 未挂 pre-commit、字符集差集检查仍是约定 | 新增一页成本仍是 8 处手工改动 | 按 `../问题记录/项目审查与优化建议报告.md` §6.5:U4 残余(两脚本入门禁,可逢窗口顺带)→ U1 令牌层 → U2/U3 → 页面落地;U4 golden 可直接当 U1 验收工具。**已确认(2026-10-11):本轮不排期**,等功能主线出结果后按产品需求启动 | W6 | 报告 U1~U5 |
|
||||
| N-23 残余 | **KNOWN_GAPS 白名单清理**——现存唯一缺口 = `App/task/rs485_task.c`(E-59 门禁下刻意不接线,随 B2 暂缓,见 `暂缓-RS485.md`) | 白名单不清 = "写了不编译"盲区仍在 | 随 B2 一并出白名单(`--strict` 供审计复跑) | 结构债 | 报告 N-06 残余 |
|
||||
| N-25 | 性能/资源建议簇:PASV 每次新建监听;PHY 强制 100M 无自协商回退;`NET_MAX_SOCKETS 8` 与单连接语义不符;`HAL_Delay(1)` 阻塞 DE(**DE 项随 B2 暂缓,见 `暂缓-RS485.md`**) | 次级性能/语义一致性 | 逐项见 `../问题记录/项目审查与优化建议报告.md` §4.2/§4.7,随窗口评估 | W4 | 报告 N-09/PHY/P3-x/rs485 |
|
||||
| N-27 | **内存优化簇剩余**:R-2 后半(缩堆 56→32 KB → 迁 CCM)· R-3 · R-4 · R-6 | ⏸ **整簇暂缓**(2026-10-15 用户裁定):没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测。⚠ 代价落在"以后加任务 / 抬栈 / 加堆"那一刻——CCM 只剩 7,904 B、FreeRTOS 堆 `min_ever` 8,464 B,届时 `mem-budget` 会先报警 | 重开条件见 `../问题记录/项目审查与优化建议报告.md` §5.3。⚠ **R-5 已判定不可行**(CMSIS-RTOS2 `freertos_os2.h` 有 `#if (configMAX_PRIORITIES != 56) #error`,改小直接编译失败),不再列入 | **暂缓** | 报告 R-2 剩余/R-3/R-4/R-6/§5.5 |
|
||||
| N-28 | **报告 F-5:uvprojx 里 127 个空 TU**(201 个 LVGL `.c` 中 127 个 `.map` 零产出) | 增量构建实测 4~5 s、远程 CI 刻意不跑 `@build` → **非产品指标**;报告原"编译时长 −40%"无基线记录 | 🟡 观察:等有实测的全量构建耗时痛点再做——用 Keil 原生 `<IncludeInBuild>0</IncludeInBuild>`(可逆)而非删条目,且排在任何 `lv_conf.h` 改动之后;动手前先补一次全量构建计时做基线 | W4 | 报告 F-5 |
|
||||
| N-29 | **仓库膨胀**:`.git` **233 MB**(2026-10-25 实测)+ 手册图片 36.3 MB(受控文件合计仅 79.3 MB,`.git` 已是它的 3 倍) | clone/备份慢,且持续恶化 | 降采样 / 拆 submodule / LFS 三选一 **+ 一次 `git filter-repo` 历史重写**(三项都不解决历史膨胀)。**已决策(2026-10-11):暂不处理、登记观察**——推送/协作前重评 | **W7** | 报告 D-1 |
|
||||
| U 簇 | **U5 页面落地**——⚠ "27 页"是目标数、不是差集:现存 **7 个页面实现**(`ui_page_ac/dc/device_info/net_cfg/password/runlog/selftest.c`,`ui_page_registry.c` 是生成物不算页面),27 个空叶子已归并为 **7 模块 + 2 项前置能力**(`../UI设计/页面补齐规划.md`) | 地基已齐(U1~U4 已落地;`ui-golden` 与 UI 字符集差集检查均已挂 pre-commit),新增一页 = 3 处人工 + 1 条生成器命令;缺的是产品定义与真数据 | **未排期**(2026-10-20 用户裁定暂缓);最早在 W8 M4 之后开工——`ui_data` / `ui_data_feed` 组装的是码值帧,先做会返工(`W8-数据可信.md` §10)。逐页规格:`../UI设计/页面扩充详细方案.md` | W6 | `../UI设计/页面补齐规划.md` |
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
> **定位**:DTU 上行规约 IEC 60870-5-104(DL/T 634.5104-2009)的设计基线——
|
||||
> 范围、点表、链路流程、板端接入、预算与测试。规格来源
|
||||
> `docs/算法/继电保护功能复现规划.md` §1.5(B0 产品定义,验收 = 省电科院点表);
|
||||
> 代码落点 `App/protocol/iec104/`;登记项 `docs/任务规划/W1-采集保护收尾.md`(W1 / B4)。
|
||||
> 代码落点 `App/protocol/iec104/`;未闭环的验收项挂 `docs/任务规划/W1-采集保护收尾.md`(B10 送检)。
|
||||
> **角色**:本 DTU = **被控站(受控端)**,104 **TCP 服务器,端口 2404**;主站
|
||||
> (控制端,点表参考 `192.168.1.199`)主动连入。
|
||||
|
||||
|
||||
@@ -42,5 +42,5 @@
|
||||
|
||||
- 沉淀约定:`../测试开发标准流程.md` §7.3
|
||||
- 栈水位探针与基线:`../../内存管理/RAM使用分析与优化方案.md` §4.0.2 / §4.0.6
|
||||
- 当前诊断基线:`../../任务规划/基线与待确认.md` §3
|
||||
- 当前诊断基线:`../../内存管理/RAM预算台账.md`
|
||||
- 本流程立项:原 `../../任务规划/README.md` S-2(2026-09-22 提出;2026-10-05 固化为本节流程后销项)
|
||||
|
||||
@@ -191,7 +191,7 @@ $cli = if ($env:DTU_STLINK_CLI) { $env:DTU_STLINK_CLI } else { (Get-Command ST-L
|
||||
> **顺带修复(编排器缺陷,非本次代码引入)**:`run_all_suites.py` 原对所有套件统一 `--forbidden "HardFault;assert;[ERR]"`,而 GD5F 的 `TC-GD5F-704`(CCM 非 DMA 可达缓冲)会**预期**打出 `[ERR][NAND] RX DMA buffer not DMA-reachable ... fallback poll`(用例 PASS)→ GD5F 套件**永远被判 FAIL**(自 `2055de0` 起)。按 `verify_log.py` 的说明改为**按套件覆盖 `--forbidden`**(GD5F = `HardFault;assert`),修复后 PASS。
|
||||
|
||||
> **来源**:第二档 #1(E-10/E-42/E-53/E-54/E-56/E-57,历史编号);
|
||||
> `docs/任务规划/基线与待确认.md` §2.2 四要素骨架(设计基线)。
|
||||
> `docs/产品需求/产品需求设计文档.md` §7.1(错误码通道四要素骨架,设计基线)。
|
||||
|
||||
**现状证据**:`ch395f.c`(1330 行) 与 `gd5f2gq5ue.c`(1496 行) 是同代驱动,但**只有 CH395F**
|
||||
形成了"分类 + 传播 + 审计"完整体系;GD5F 错误处理散落各函数,`Trap_Records` 仅 198 行。
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
> **用途**:把散落在各子系统文档里的"模拟器无法建模 X"汇成**单一事实源**,回答一个关键问题——
|
||||
> **模拟器回归通过 ≠ 真机通过,那么差在哪?差多少?哪些必须真机补测?**
|
||||
> **性质**:**登记册**(living document)。新增模拟器后端差异时必须在此登记一行,不得只写在别处。
|
||||
> **上游依据**:`docs/任务规划/基线与待确认.md` §2.1(net 层 pending 化状态)。
|
||||
> **上游依据**:`docs/网络/Net层阻塞模型架构设计.md` §10(net 层 pending 化现状)。
|
||||
> **相关**:`UI设计/LVGL模拟器部署与使用说明.md`(部署与使用)、`simulator/README.md`(目录与架构)、
|
||||
> `测试说明/测试开发标准流程.md`(L3 门禁在测试分层中的位置)。
|
||||
|
||||
|
||||
@@ -208,7 +208,8 @@ D:/Code/DTU Code/
|
||||
|
||||
### 7.3 并行道与写范围规则(规划层 ↔ 执行层映射)
|
||||
|
||||
规划层(登记簿 `docs/任务规划/W1-采集保护收尾.md`,任务卡五字段 = **DoD / 硬依赖 / 资源 / 写范围 / 状态**)
|
||||
规划层(任务卡在 `docs/任务规划/W8-数据可信.md` 与 `docs/任务规划/W1-采集保护收尾.md`,
|
||||
五字段 = **DoD / 硬依赖 / 资源 / 写范围 / 状态**;归道见 `docs/任务规划/并行分道方案.md`)
|
||||
按**资源属性**把任务切进三条道,本方案(工作树 + 锁)是它的执行层:
|
||||
|
||||
| 道 | 资源 | 并行性 | 锁 / 机制 |
|
||||
|
||||
@@ -540,7 +540,6 @@ B0 产品定义 ✅(2026-10-10 已确认,见 §1.5)
|
||||
| R5 | **STM32 侧无中点偏置** | 交流量负半周削顶,无法算 RMS | V0.1 只做监视;V0.2 补偏置 |
|
||||
| R6 | **栈预算** | 新任务栈溢出 | 建任务前后跑 `scripts/stack_report.py`;纳入看门狗 |
|
||||
| R7 | **出口硬件未确认** | 跳闸出口无法验证 | 确认出口继电器/回读电路;无硬件时先做逻辑级验证 |
|
||||
| R8 | **TPAFE 自动扫描模式未知** | 影响采样实现方式 | 查手册确认(`docs/任务规划/基线与待确认.md` §1 待确认项) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
> `docs/网络/BSD_Socket_API_函数调用关系.md`(调用链与执行域)、
|
||||
> `docs/网络/网络自愈架构设计.md`(周期对账与监听生命周期——与本模型的分工见 §2.4;模块化边界见该文档 §11)、
|
||||
> `docs/测试说明/链路延迟测试说明.md`(延迟基线与故障对照)、
|
||||
> `docs/任务规划/基线与待确认.md` §2.1(ACCEPT 挂起化设计基线)
|
||||
> 本文件 §10(ACCEPT 挂起化不实施的判据)
|
||||
|
||||
## 目录
|
||||
|
||||
|
||||
Reference in New Issue
Block a user