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:
@@ -193,7 +193,7 @@ int net_listener_armed(int sockfd);
|
||||
* 函数功能:查询 Socket 是否"值得发一次 recv"(**纯 RAM 读,不发起 RPC**)
|
||||
* 入口参数:sockfd - Socket 描述符 int
|
||||
* 出口参数:无
|
||||
* 返回值:1 - 应发 recv(有数据可读,或连接已非 ESTABLISHED 需了结);0 - 不必发 int
|
||||
* 返回值:1 - 应发 recv(有数据可读,或连接已非 ESTABLISHED 需发 recv 取回 EOF/错误);0 - 不必发 int
|
||||
* 限定条件:net_init() 已调用;任意任务上下文
|
||||
* 函数说明:1. ESTABLISHED → 看 readable(net_poll 在 RECV_OK 置位、读空清零)
|
||||
* 2. **非 ESTABLISHED 一律返回 1**:连接已消失时必须让上层真的 recv 一次
|
||||
@@ -492,18 +492,6 @@ int net_set_errno(int err);
|
||||
* N-32 §10:原定义在 net_socket.c,随 net_set_errno 一并提升到本头文件 */
|
||||
#define NET_ERR_RETURN_1(err) (net_set_errno(err), -1)
|
||||
|
||||
/*
|
||||
* 函数功能:查询本 fd 是否有在途挂起 recv(L3 pending)—— 供 net_listener.c 消费
|
||||
* 入口参数:sockfd - Socket 描述符 (0~7) int
|
||||
* 出口参数:无
|
||||
* 返回值:1 - 有挂起;0 - 无(含描述符越界) int
|
||||
* 限定条件:任意上下文(纯 RAM 读,不发起 RPC)
|
||||
* 函数说明:1. N-32 §10 模块化:net_listener_retry_tick 用它跳过"重开 Socket
|
||||
* 会摧毁在途连接"的 fd(L3 保险,原为直接读 s_net_pending[i].active)
|
||||
* 2. 定义在 net_socket.c(配对头即本文件)
|
||||
*/
|
||||
int net_pending_active(int sockfd);
|
||||
|
||||
/*
|
||||
* 函数功能:获取 Socket 本地地址(IP + Port)
|
||||
* 入口参数:sockfd - socket 描述符
|
||||
|
||||
Reference in New Issue
Block a user