Commit Graph

64 Commits

Author SHA1 Message Date
wandering1 718d399f70 net_drain_chip_rx 补实测注释:scratch 静态化反亏,勿再"优化"
ARMCC 把 256B 分块 scratch 与同函数内不重叠的 192B 日志缓冲叠放
实测静态化只省 ~16B 栈、反增 256B BSS,已回退并留注释防重复尝试
2026-10-09 17:17:48 +08:00
wandering1 de1b50efe9 修复 P1-7:MAC 写入顺序改为 INIT_CH395 之前
- 手册 §9.2.1:SET_MAC(步骤①) 必须先于 INIT_CH395(步骤⑤);SET_MAC 写
  芯片 EEPROM,INIT 从中加载 MAC——原顺序反了则本次上电 MAC 不生效
  (回落芯片内置/上次值),UI 显示与设备在线身份不符
- net_socket.c net_init():SET_MAC 移到 ch395f_init() 之前(对齐步骤①)
- ch395f.c:四个 SET(MAC/IP/GWIP/MASK)限定条件注释由"芯片已初始化"
  订正为"必须在 ch395f_init() 之前调用"
- net_socket.h / BSD_Socket_API_函数调用关系.md:同步顺序描述
- CH395F_Trap_Records.md:新增 Trap 24 沉淀根因与修复
- 待处理内容.md:P1-7 销项(§1/§2 阶段 A/§3.1/§4);阶段 A 清空后重编号
- 验证:Keil 构建 0 错 0 警;pre-commit 17/17 全通过
2026-10-04 23:07:00 +08:00
wandering1 e0b02d397c 修复 P2 全部 10 项:错误传播/竞态/门控/文档失真
待办池 docs/待处理内容.md §3.2 的 10 个 P2 全部闭环;逐项落代码 + 注释说明。

P2-1  cfg_file: 受管键行超 CFG_LINE_TEST_MAX 拒绝保存(防重复键行)
P2-2  ch395f: DMA 失败传播状态 + 锁存通道故障 + 读不拷不可信数据
P2-7  net_select: LISTENING 不再恒判可读(消除 select 忙轮询地雷)
P2-8  time_sync: 核实 L3 pending 改写已闭环(net_recv_to 分片 + 总预算)
P2-9  sys_log: 挂载改幂等 + 卷锁,defaultTask 2s 重试建 /log
P2-10 sys_log: s_read_raw 纳入卷锁 try(读者/写者 unlink 互斥)
P2-11 net_task: RECONFIG 改 osEventFlagsWait 原子取走 + 清除
P2-12 app_cfg: APP_*_ENABLE 如实标注为未接线占位,删“开关”说法
P2-13 freertos: 产品构建 vTaskDelete(testTask) 回收 8KB CCM 栈
P2-15 download.bat: 先删旧日志 + 增“未产出日志”判定

P2-13 用 USER CODE 区回收而非生成区 #if 门控:生成区改动会被 CubeMX
重生成覆盖,本方案重生成不丢。P2-12 因产品定义 B0 未定、APP_NET_ENABLE
无单一接线点,按修复建议备选(删“开关”说法)处理。

验证:@build 0 错 0 警;主机单测 watchdog 39/39 + sys_clock 100/100 +
cfg_file 149/149(新增 TC-CFG-044);pre-commit --all-files 17/17。
2026-10-04 08:30:30 +08:00
wandering1 f4fea70749 docs: 合并 4 份待办文档为统一登记簿 待处理内容.md
合并 docs/待处理内容.md(N/S/T-x)、审查记录/项目审计改进清单.md(P-x)、
审查记录/下一步任务规划.md(阶段与基线)、审查记录/测试与架构改进建议.md
(S1x/A-x)为单一《待处理内容(统一待办登记簿)》。

- 结构:编号空间与来源 / 未闭环一览 / 任务排序(阶段 A~D)/
  逐条详述 / 待验证与待确认 / 设计基线 / 诊断基线 / 内存预算 / 维护约定。
- 编号沿用且不回收;E-xx 仍由 错误码传播审计.md 独立维护。
- 删除 3 份被合并文档;重定向下游引用:README、AGENTS、审查报告、
  实机测试实施指南、Net 层架构、NET/cfg 模块 README、脚本注释。
- 同步订正计数:P1=2(+1 收尾) / P2=10 / P3=6。

pre-commit 17/17 Passed。
2026-10-04 02:28:52 +08:00
wandering1 930215f81a 修复IWDG超时未配置与dhara resume回滚:看门狗误复位与复位后写入全部丢失,台架全量自检PASS 2026-10-02 20:48:30 +08:00
wandering1 0485e79da0 Net 阻塞模型文档改写为架构设计并迁入 docs/网络 2026-09-29 05:51:16 +08:00
wandering1 b46e6bffed Net 阻塞模型调研文档退役:客观实施记录留存,二期基线迁入任务规划 2026-09-26 14:21:13 +08:00
wandering1 39bd06adea 为自建代码目录补齐 README,建立目录级导航体系
- 新增 26 份目录 README:App/(+log,task,util,protocol)、Drivers/BSP/(+8子系统)、
  Src/、Inc/、scripts/、tools/(+6子工具)、test/、MDK-ARM/、simulator/(+sim,tests)
- 每份含:定位、文件清单表、关键约束/陷阱、指向 docs 权威文档
- 第三方库与生成代码目录排除(CMSIS/HAL/Middlewares/Lib/SDL2)
- docs/文档规范.md 新增 §1.1b 代码目录 README 约定;根 README 目录结构加入说明
2026-09-26 12:25:36 +08:00
wandering1 1b46e2a340 修复E-03:s_net_errno 改按任务隔离槽位,消除跨任务错误码错报 2026-09-25 19:17:18 +08:00
wandering1 78ea81aecb net_socket.c 全部 59 个函数体注释改为逐行风格(纯注释改动,构建 0/0) 2026-09-25 15:00:36 +08:00
wandering1 df79cf2be3 net_process_messages注释改为标准字段格式(功能/返回值/限定/说明),内容不变,二进制零差异 2026-09-25 05:55:03 +08:00
wandering1 c12139da06 Trap23待办3: 异常释放(TIMEOUT/RST)挂起recv以CONNRESET了结, STOR异常结束回450并删除截断文件, 探针加--check-abort 2026-09-25 02:04:46 +08:00
wandering1 a1f1f46262 Trap23两阶段修复: 异常释放400ms隔离+正常释放100ms沉降(仅收过数据), 修复中止后新传输首笔静默截断 2026-09-25 01:57:03 +08:00
wandering1 d0cbeb6b5b 控制台日志实现迁出HAL生成文件至App/log并新增设计说明;defaultTask任务体迁至App/task,freertos.c恢复纯CubeMX接线形态 2026-09-25 01:32:09 +08:00
wandering1 3763e699dc 控制台改单写者发送:defaultTask唯一发串口其余任务写环形缓冲,杜绝日志交错与脏指针入UART;溢出钩子加指针窗口校验、崩溃上报改显式长度 2026-09-24 23:47:23 +08:00
wandering1 c075cfa076 修复F1:lftpd会话结束复用auto_relisten监听器不再关闭控制监听,net关闭时清隔离标志防跨轮残留 2026-09-24 22:49:33 +08:00
wandering1 86e261d6df net_socket.c补net_process_messages分派文档:三个自愈tick机制、各消息类型处理说明与结果回传路径 2026-09-24 22:49:15 +08:00
wandering1 95e7f42aa2 修复发送中途断连空等1s:send等待循环加状态检查,断连立即失败回传CONNRESET 2026-09-24 17:14:12 +08:00
wandering1 77ee778605 修复Trap22快速复连丢中断致监听死亡:net层周期对账自愈(去抖+冷却),复现用例与回归全绿 2026-09-23 02:27:10 +08:00
wandering1 3ac8eb807d TC-NET-604结案为非缺陷:Trap21改短+删机理图解+N-7作废,清理源码误导注释 2026-09-23 01:36:57 +08:00
wandering1 7d70445c16 修复Trap23:异常释放后复监听隔离并排空RX残渣,上传中止截断消除(RST10/10+FIN5/5通过,正常50/50) 2026-09-23 01:31:07 +08:00
wandering1 cca3b60d64 Trap21定案部分窗口重通告机制:N-7改非阻塞RX读强制排空至空,netcmd日志入库 2026-09-23 00:07:45 +08:00
wandering1 93bae35e21 TC-NET-604 根因闭环:芯片 RX 窗口冻结角(Trap 21),MSS=512 裕量方案证伪回退,缓冲布局与 MSS 解耦 + 超限读金丝雀
- 根因:CH395F 片内 TCP 状态机角(WCH 官方 FAQ 留档,W5500 同类):窗口=接收缓冲剩余空间,
  缓冲恰好填满 + 排空时序交叠后芯片 RX 静默冻结(不 RST、不自恢复),触发模式 = 同连接前序突发 +
  新突发 + 任务负载;驱动超限读丢弃与 L3 pending 均经插桩台架排除
- MSS=512 裕量实验证伪(原序列 10/10 仍停摆,且新连接 4096B 确定性停摆恒剩 64B)→ 维持 1024
- 缓冲块布局(RX 4/TX 2 块)与 SPI DMA 缓冲(接收缓冲+4)与 MSS 解耦,杜绝改 MSS 连带缩小布局
- ch395f_read_recv_buf 超限守卫改为 OVERSIZE 留痕(原静默 return 会把窗口锁死 0 且无从诊断)
- 文档:Trap 21 全记录(含 MSS=512 负结果/64B 残留/FAQ 引文/触发模式);N-1 改写(残留决策项 =
  lftpd 数据通道停摆预算 30s→10-15s 待用户决策);E-02 STOR 预测机制修正;延迟说明基线免重锁注记
- 台架复验:新连接 4096B 31ms PASS(4x1024 粒度)、竞争序列停摆复现(芯片角,已文档化)、
  停摆后重连 520ms 恢复(auto-relisten + 回显正常);芯片行为参数零变化 → M3 基线全部继续有效
2026-09-22 18:57:48 +08:00
wandering1 a45c0cb883 L3 pending化一期:阻塞recv改挂起请求+主循环节拍完成(netTask零占用),lftpd/timeSync分片协议退役 2026-09-22 16:29:31 +08:00
wandering1 4ce966dfb8 net_recv_to补全分步注释:片超时-2返回码不依赖errno依据、值拷贝队列陷阱、三分支返回语义(E-02配套留档,无逻辑变化) 2026-09-22 15:37:19 +08:00
wandering1 7fb5d66799 清除 net 层调试残留:ch395f_reset 六行与 net_init 七行步骤打印 2026-09-22 12:17:31 +08:00
wandering1 894b51feb3 移除 P0-a 验收探针(台架验收完成),开机省去 60ms 状态轮询与证据行 2026-09-22 12:03:11 +08:00
wandering1 06d4064366 修复 P0-a 重传周期 200ms 与 P0-b per-recv 日志,台架重锁 M2/M3 基线并复验 2026-09-22 11:36:16 +08:00
wandering1 2cffd1d2cf 文档统一:三份链路时延文档合并为链路延迟测试说明,删过程性历史,更新全部交叉引用 2026-09-22 06:52:58 +08:00
wandering1 e5733b3454 链路时延M1-M3收尾:Phase12-14基线与生产路径Δ实测、D10/E-02/D17修复、D20定位与硬化、文档整理 2026-09-22 06:12:40 +08:00
wandering1 472c8172fb 修复远端推流整帧纯白:MCU端补dark mono主题应用与I1调色板,net发送侧加停顿/短写诊断 2026-09-21 05:12:18 +08:00
wandering1 5cb7614959 修复net公开API错误码被覆盖致UI推流连上即断(改用通知值回传,单连接EOF不关监听) 2026-09-21 04:46:47 +08:00
wandering1 57632e910a 内存管理文档4→2合并:报告/规划并入主文档,lftpd静态化降栈峰值,同步架构/FTP/部署文档 2026-09-21 04:37:27 +08:00
wandering1 1817fe792f 就绪屏障与配置引擎重构,新增串口助手、V0.0网表分析报告及芯片手册,同步更新文档 2026-09-15 21:13:20 +08:00
wandering1 d150810587 ui_net_sink 拆分为协议层与平台后端,新增 RemoDispBus 设计文档 2026-09-11 21:25:02 +08:00
wandering1 4515ee4c80 修复了网络参数的保存逻辑 2026-09-10 14:21:07 +08:00
wandering1 2b80d34e74 增加网络配置界面 2026-09-10 11:36:33 +08:00
wandering1 02c10fa5ef 修复Yoda条件(常量右置)与函数定义括号同行
- net_select.c/net_socket.c 共 62 处 Yoda 条件改为常量在右(规范 6.3.1)

- 11 个文件 58 处函数定义左大括号由换行改为与右括号同行(规范 4.4.2)
2026-09-01 16:57:34 +08:00
wandering1 bb76cfd779 修复规范矛盾并定案5项规则,保护宏统一XXX_H
规则定案:常量在右(a>5)、保护宏XXX_H(禁双下划线)、
头文件常量用#define、存储类前缀(g_/s_)优先、允许void返回值
全库32个.h头文件保护宏 __XXX_H → XXX_H 改名(字节级替换)
S1检查规则同步更新(拒绝双下划线),Inc/gpio.h 反向验证被正确拦截
规范示例矛盾修复:K&R括号、标准类型、变量初始化、命名常量、注释字段补全
2026-09-01 16:07:00 +08:00
wandering1 2b66f96d01 新增代码规范检查钩子(规范V1.0 可机械校验项)并修复存量违规
新增 scripts/check_coding_standard.py + coding-standard 钩子(S1~S9:
头文件保护宏、文件头注释、宏大写、_t 后缀、switch default、
禁 strcpy/sprintf/goto/Tab、函数注释)
修复存量违规:NET_* 字节序宏大写化、net_fd_set 等类型加 _t 后缀、
net_inet_ntoa 的 sprintf 改 snprintf、补 4 处函数注释与 ui_task.c 文件头
docs/代码规范/pre-commit使用说明.md:新增 2.8 节,修正失效文档路径
2026-09-01 15:41:25 +08:00
wandering1 07afb7b468 启用constVariablePointer检查并修复6处指针const化
.pre-commit-config.yaml: 移除 --suppress=constVariablePointer
net_select.c: 5 处 p_sock 改 const net_sock_t *(仅只读使用)
net_socket.c: net_getsockname 的 p_sock 改 const(只读字段)
docs/代码规范/cppcheck使用说明.md: 同步抑制表与处理记录
2026-09-01 15:11:17 +08:00
wandering1 6307c3f635 缩小变量作用域:消除18处variableScope,声明移入实际使用块 2026-09-01 13:59:44 +08:00
wandering1 45307363a1 修复net_socket.c动态端口溢出检查:uint16_t>65535恒假改为==0 2026-09-01 13:40:06 +08:00
wandering1 ae8b1aead5 清理全库行尾空格与文件尾换行(pre-commit 自动修复基线) 2026-09-01 10:24:50 +08:00
wandering1 ad154b2f7e 时间同步已经完成 2026-08-28 16:42:44 +08:00
wandering1 b43dede98d FTP 测试通过 2026-08-28 12:22:10 +08:00
wandering1 db64e6acf4 网络主要内容测试完成 2026-08-26 13:54:52 +08:00
wandering1 319d00e3e5 删除多连接内容,只支持单连接 2026-08-25 12:41:33 +08:00
wandering1 d92b086c5b 修改一些注释 2026-08-25 11:49:31 +08:00
wandering1 572313d430 CH395F 硬件测试完毕 2026-08-24 16:16:18 +08:00