本次会话先后销项与关闭: - E-61 SD2506 清 INTAF:原实现只读取 CTR1,而按手册 ARST=0 时读操作 不清标志,属空操作;改为读-改-写 CTR1,并按手册订正 CTR1 位宏 (INTAF/INTDF/BLF 位置,ARST 归 CTR3) - E-16 cfg_file:新增 CFG_FILE_MAX_NAME_LEN(段名/键名 ≤15),注册时 拒绝超长键名;s_gen_document 两处 snprintf 改检查式;补 TC-CFG-024 用例(主机单测 149→151 PASSED) - E-23 TC704:PHASE7_MULTI_COUNT 8→5(并发上限 = 8 − 3 个常驻监听), accept 失败分支加网络代次检查(网络重建即重建监听) - E-26(UDP)按“保留 API + 文档定案”关闭;E-30 评估为不必要后关闭; N-4(ACCEPT 决定不实施)关闭 审计文档剩余 5 项 P2 + 2 项监督,经用户裁定“都不重要”后整体删除: - 删除 docs/问题记录/错误码传播审计.md(634 行) - 九类缺陷模式表迁入 docs/编号规范.md §4.2.1(PAT-01~09) - E-xx 转为纯历史编号族:编号规范 §4.1 属主改“无(原属主已删除)”, §4.3 保持冻结;全仓 26 处引用按“保留编号、去悬空文档名”处理 - 顺带修正 N-4 收口遗留:排期详述 C1 才是 E-25/E-27/E-28 的承载处 (审计 §4 曾误写为登记簿);README 两处 C1 旧名改回“net 层跨上下文收口” 一并提交此前遗留的体系层评审报告 2026-10-14 复核 WIP(六维评分复核、 未闭环 Top 5→3、三区水位实测刷新)。 校验:Keil 构建 0 错误 0 警告(Code=212344);check_doc_links --sections-strict 与 --all(142 文档)通过;内存双台账刷新后均 PASS。
5.8 KiB
基线与待确认(设计参考,少改动)
本文件是参考基线,不是待办池:待确认项(§1)、设计基线(§2)、诊断基线(§3)、内存预算(§4)。 待办的排序与登记在
docs/任务规划/README.md§2 与docs/任务规划/登记簿.md;同一事实以内存管理文档为权威(§3/§4 只是快照指针)。
1. 待确认(需手册/硬件/产品定义,暂不直接改码)
- TPAFE5160 是否有自动扫描模式(已不影响:1 kHz 硬件定时器触发已于 2026-10-10 由 TIM3 更新中断方案落地,不依赖自动扫描,见
docs/子系统设计/ADC采样节拍设计说明.md)。 APP_ADC_ENABLE/APP_RS485_ENABLE是否应在产品构建真实门控模块(当前宏已如实标注为"未接线占位",此处确认的是是否接入真实门控;B1 取数不依赖该宏。RS-485 侧门控随 B2 暂缓,见暂缓-RS485.md)。- RS-485 PD0 DE 的半双工方向语义需硬件实测确认(本次仅静态审查)——随 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。
旧栈表/旧余量数字作废,勿引用。