refactor(NET): 事件处理与周期对账抽出 net_events.c,net_socket.c 3720→3119
动机:net_socket.c 3720 行(注释 1878 / 代码 1518 / 54 函数),BSD 连接层 与"状态面收敛"两套职责混在一个文件里。16 个消费者只依赖 net_socket.h, 故搬移对应用层零波及;模拟器另有 net_socket_sim.c,新模块走 SIM_EXEMPT。 为什么是一个模块而不是两个:实测对账区真实调用事件处理器 2 处(形态② 补 accept 走 handle_connect_event),且 NET_RECON_STABLE_DEATH 两边共用—— 拆成 net_events.c + net_reconcile.c 会造出跨模块调用,合起来则跨模块导出 为零。二者同属"芯片状态面与本层镜像的收敛"一个职责。 搬出:5 个 handle_*_event + fire_event + net_reconcile_tick + net_lost_connect_probe + NET_RECONCILE_*/NET_RECON_STABLE_* 常量 + net_bench_cmd_log(含其 2 个 static)。 搬移时 4 处 fd 取法替换(其余代码逐行未改,已用剥注释后的代码行多重集 证明差异恰好等于声明的改动集): - p_sock - s_net_socks → p_sock->ch395_sock(net_socket() 里 ch395_sock = sockfd,恒等;模拟器同构造) - 对账循环 &s_net_socks[i] → net_sock_raw(i) ⚠ 随之收窄两处沉降登记的范围门 (qfd >= 0) && (qfd < MAX) → qfd < MAX: ch395_sock 是 uint8_t,(int) 后恒非负,下界在类型上不可能越界;留着会被 cppcheck 判 knownConditionTrueFalse 拦提交。已在文件头写"勿加回"。 新增 net_sock_raw():对账必须看到 in_use==0 / state==CLOSED 的槽位 (形态④ 认领孤儿监听正依赖 CLOSED 态),而 net_get_sock() 对未在用槽位返 回 NULL 会漏掉这一类。声明放 net_socket.h 而非内部头 net_events.h——规范 S17 2.2 要求非 static 函数声明在配对头文件(同 net_set_errno 先例)。 验证: - 代码行多重集差异 = 声明的改动集,无一处意外 - @build BUILD_OK 0 错 0 警;Code 212316→212296(−20 B,拆 TU 布局差), RO/RW/ZI 完全不变 - cppcheck / coding-standard / registration-check 全 PASS - @test 硬件闭环 PASS:635ms 到 net init: OK,:8888/:2404/FTP 均建立, [ERR]/Fault/relisten/reconcile 命中 0 条 - 台账随 Code 变化同步(ram_baseline --write / check_mem_numbers --write) 遗留(与仍未提交的文档工作同文件,另提):BSD_Socket_API 使用指南的文件 职责表、net_listener.c/.h 文件头"见 net_socket.c"、自愈架构设计 §11 仍把 net_reconcile_tick 记在 net_socket.c——doc-links 只校验 § 编号存在性, 照不出"函数在哪个文件",需在文档提交中一并修正。
This commit is contained in:
@@ -36,10 +36,10 @@
|
||||
<!-- MEM_SNAPSHOT:BEGIN generated by scripts/check_mem_numbers.py -->
|
||||
| 区域 | 用量 | 容量 | 占比 |
|
||||
|---|---|---|---|
|
||||
| ER_IROM1 | 231,056 B (225.64 KB) | 1,048,576 B (1024 KB) | 22.0% |
|
||||
| ER_IROM1 | 231,036 B (225.62 KB) | 1,048,576 B (1024 KB) | 22.0% |
|
||||
| RW_IRAM1 | 98,144 B (95.84 KB) | 131,072 B (128 KB) | 74.9% |
|
||||
| RW_CCM | 57,376 B (56.03 KB) | 65,280 B (64 KB) | 87.9% |
|
||||
| **Flash (ROM 合计)** | **232,168 B (226.7 KB)** | 1,048,576 B (1024 KB) | **22.1%** |
|
||||
| **Flash (ROM 合计)** | **232,148 B (226.7 KB)** | 1,048,576 B (1024 KB) | **22.1%** |
|
||||
<!-- MEM_SNAPSHOT:END -->
|
||||
|
||||
各区的容量与常量来源:
|
||||
|
||||
Reference in New Issue
Block a user