Files
STM32F4-Base/Drivers/BSP/CH395F
wandering1 1a35b3684c
CI / L0 静态门禁 (pre-commit) (push) Failing after 44s
CI / L0.5 主机侧单测 (MSVC) (push) Failing after 43s
docs(N34): 自愈审计目录 7 份文档合并为单文档,全库引用同步
- `docs/网络/N34-自愈审计/` 目录 7 份文档(根因总览 / net 层盘点 /
  驱动层审计 / 主流对照 / 汇总裁决 / 实施方案 / 实验方案)合并为
  `docs/网络/N34-自愈审计.md`(§0~§6),原目录删除;docs/README.md
  索引与变更日志登记归档
- 全库引用同步:4 篇文档 + 驱动/NET/test 代码注释 + 配图生成器与 SVG
- 内容零丢失抽查:E0~E13 实验记录、E6 裁决(命中=0 不立项)、
  提交表(含 `925058a` 收口行)均在位
- 门禁:@build 0/0(注释级路径更新);check_doc_links --all 143 文档
  通过(净 −6 = 删 7 增 1 吻合);ci_local L0+L0.5 全绿
2026-10-13 23:23:55 +08:00
..

Drivers/BSP/CH395F/ — CH395F 以太网控制器驱动

CH395F 是 SPI 接口的 10/100M 以太网 MAC+PHY 控制器。本目录是其底层寄存器级驱动, 上层的 BSD Socket 抽象见 ../NET/。

文件一览

文件 作用
ch395f.c/h SPI 命令收发、寄存器读写、芯片初始化、通道/中断管理

关键点

  • SPI 接口:SPI2(PB12 CS / PB13 SCK / PB14 MISO / PB15 MOSI)
  • 每次 SPI 事务必须 ch395f_spi_begin() / ch395f_spi_end() 包裹
  • SPI 分频系数必须为 8(PCB 信号完整性约束,勿"优化"改快)
  • 芯片最多 8 个 socket,本层用事件中断 + 周期轮询驱动
  • PHY 强制 100M 全双工(net_task 中配置)

⚠️ 改本驱动前必读陷阱(Trap Records)

Trap 问题 状态
TC-NET-604 "RX 窗口冻结" 判定为非缺陷(原报告系测试程序自吞数据 + 判读工具误判) ✅ 结案
TRAP-NET-17 快速复连丢 CONNECT/DISCONNECT 中断 → 监听静默死亡;修复 = net_reconcile_tick() 周期对账自愈 ✅ 已修
TRAP-NET-18 上传中止后首笔复连被静默截断(≤2048B)并误报成功;修复 = 异常释放后复监听隔离排空 ✅ 已修

完整台账与复现配方见 docs/问题记录/CH395F_Trap_Records.md(改驱动前必读)。

相关文档

  • 测试指南:docs/测试说明/CH395F_Test_Guide.md
  • 上层抽象:../NET/README.md
  • 台架探针:MDK-ARM/tcp_reconnect_probe.py、test/host/ftp_abort_probe.py