refactor(net): 挂起 recv 模型拆出 net_pending.c/h + 留痕探针编译门控 + E15 归因修正
- E15 归因修正:幽灵状态 0x04+旧端口 = 芯片如实报告拆除中的旧连接 (文档化行为,非芯片故障;bit3=1 为我方设置(ver>=0x46)、 RFC 9293 §3.3.2 Fig5 拆除顺序、WCH 官方博客方案 = close 完成后重开监听) - 术语统一:全库"了结"→"结束"(约 45 处);阻塞模型 §4 首次出现处定义"五路" - 注释清理:删孤儿函数头注释、考古叙事改现在时、去不可检索内部编码"L3" (33 处 6 文件)、banner 去重(唯一理由移到分支现场) - 挂起超时留痕探针:编译期开关 NET_PENDING_TRIPWIRE(默认 0 = 编译剔除, 省约 150B Flash;排查调用方挂死时置 1,只留痕绝不强制结束) - 拆模块:net_pending.c/h(363/94 行)承载挂起 recv 模型, net_socket.c 4059→3661 行;tick 收控制块表参数、settle_close 双参显式传; net_pending_active 声明移配对头(S17 2.2);仅注册 uvprojx + check_registration MCU-only 白名单(同 net_listener.c 机制, 模拟器走 net_socket_sim.c 按外部语义模拟) - 文档:阻塞模型新增全过程小节(单主干流程图)+ §9 排查辅助; NET README / 函数调用关系 / 自愈架构 / BSD 指南同步;引用关系图重生成 - 台架回归:启动闭环 PASS([ERR]/Fault 零命中、回读一致)、 :7003 重连探针 10/10、FTP 50 连接 STOR 50/50、回归窗口串口日志无异常 - RAM:ER_IROM1 230004B(探针门控后约 -150B),台账已回填
This commit is contained in:
@@ -143,9 +143,8 @@ extern "C" {
|
||||
* CH395F_SPI_DMA_MAX_PAYLOAD: 单次 DMA 事务最大有效载荷(总缓冲 - 4 字节命令头)
|
||||
* 缓冲按"一条命令读空整个 Socket 接收缓冲(2KB)"定容——排空契约(TRAP-NET-20,
|
||||
* bit3=1 残数据由 MCU 读出)的形态本身就是整缓冲单读。
|
||||
* (历史注记:旧注释把定容理由归给"部分读致 recv_len 归零、剩余数据不可见",该机理
|
||||
* 2026-10-11 复核**未证实**且与手册 §5.34 相左,已降级为未证实历史观察,结案见
|
||||
* `CH395F_Trap_Records.md` 台架纪律;定容不依赖该观察。)
|
||||
* (旧解释"部分读致 recv_len 归零、剩余数据不可见"未证实且与手册 §5.34 相左,
|
||||
* 定容不依赖该解释;结案见 `CH395F_Trap_Records.md` 台架纪律。)
|
||||
* 2026-09-22:与 MSS 解耦(此前 = 2×MSS+4,MSS 下调会把 DMA 缓冲缩到装不下整缓冲
|
||||
* → 整缓冲读会被截断丢弃)。
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user