506eccc68f
本次会话先后销项与关闭: - E-61 SD2506 清 INTAF:原实现只读取 CTR1,而按手册 ARST=0 时读操作 不清标志,属空操作;改为读-改-写 CTR1,并按手册订正 CTR1 位宏 (INTAF/INTDF/BLF 位置,ARST 归 CTR3) - E-16 cfg_file:新增 CFG_FILE_MAX_NAME_LEN(段名/键名 ≤15),注册时 拒绝超长键名;s_gen_document 两处 snprintf 改检查式;补 TC-CFG-024 用例(主机单测 149→151 PASSED) - E-23 TC704:PHASE7_MULTI_COUNT 8→5(并发上限 = 8 − 3 个常驻监听), accept 失败分支加网络代次检查(网络重建即重建监听) - E-26(UDP)按“保留 API + 文档定案”关闭;E-30 评估为不必要后关闭; N-4(ACCEPT 决定不实施)关闭 审计文档剩余 5 项 P2 + 2 项监督,经用户裁定“都不重要”后整体删除: - 删除 docs/问题记录/错误码传播审计.md(634 行) - 九类缺陷模式表迁入 docs/编号规范.md §4.2.1(PAT-01~09) - E-xx 转为纯历史编号族:编号规范 §4.1 属主改“无(原属主已删除)”, §4.3 保持冻结;全仓 26 处引用按“保留编号、去悬空文档名”处理 - 顺带修正 N-4 收口遗留:排期详述 C1 才是 E-25/E-27/E-28 的承载处 (审计 §4 曾误写为登记簿);README 两处 C1 旧名改回“net 层跨上下文收口” 一并提交此前遗留的体系层评审报告 2026-10-14 复核 WIP(六维评分复核、 未闭环 Top 5→3、三区水位实测刷新)。 校验:Keil 构建 0 错误 0 警告(Code=212344);check_doc_links --sections-strict 与 --all(142 文档)通过;内存双台账刷新后均 PASS。
Drivers/BSP/ — 板级支持包(纯手工自研代码)
本目录全部为手工编写的板级驱动与中间层(非 CubeMX 生成、非第三方库、非 ST HAL)。 每个芯片/子模块一个子目录。改驱动前必读对应模块的 Trap Records(见下)。
子模块一览
| 目录 | 芯片/模块 | 接口 | 职责 | 关键文档 |
|---|---|---|---|---|
CH395F/ |
CH395F 以太网控制器 | SPI2 | 以太网 MAC/PHY 控制器底层驱动 | docs/问题记录/CH395F_Trap_Records.md |
GD5F2GQ5UE/ |
GD5F2GQ5UE SPI NAND | SPI1 | NAND 驱动 + FTL(nand_ftl.c) |
docs/问题记录/GD5F2GQ5UE_Trap_Records.md |
TPAFE5160/ |
TPAFE5160 高精度 ADC | 并行 16 位 | ADC 采样驱动(CONVST/BUSY 时序) | — |
SD2506/ |
SD2506 RTC | I2C | 实时时钟驱动 | docs/问题记录/SD2506_Trap_Records.md |
RS485/ |
RS-485 半双工 | UART5 | 收发方向控制(DE 引脚)+ 时序 | — |
NET/ |
BSD Socket 网络抽象层 | — | Socket API + select + 轻量 FTP 服务器 | docs/网络/(含 Net层阻塞模型架构设计.md) |
NETCFG/ |
网络配置 | — | /config.ini 网络段的加载/保存(旧 NCFG 档已删除,2026-10-10) |
docs/子系统设计/网络配置说明.md |
UI/ |
LVGL UI 组件 | — | 菜单/内容页/组件/中文字体 | docs/UI设计/ |
根级文件
| 文件 | 作用 |
|---|---|
dbg_log.h |
调试日志宏(DBG_INFO 等),编译期开关 |
dbg_cfg.h |
调试配置项 |
子模块 README
NET/README.md— 网络抽象层(Socket / select / FTP)UI/README.md— LVGL UI 组件
⚠️ 改驱动前必读(踩坑速查)
| 模块 | 陷阱 |
|---|---|
| CH395F | SPI 事务须 ch395f_spi_begin()/end() 包裹;分频系数必须为 8(PCB 约束,勿"优化");快速复连会因事件被读清消费致监听死亡(TRAP-NET-17 已修,E14 复核:非芯片丢事件);上传中止后首笔复连截断(TRAP-NET-18 已修) |
| GD5F2GQ5UE | FatFs 移植版打开模式陷阱(FA_OPEN_APPEND 不含写位);文件名严格 8.3 短名、不得以点开头;f_write 簇分配失败返 FR_OK + 短写,须校验字节数 |
| NET | 就绪屏障位必须 osFlagsNoClear;s_net_errno 已按任务隔离(勿改回全局) |
| 通用 | 自研代码禁用 C 库堆分配(MicroLIB 堆仅 512 B),动态内存只用 pvPortMalloc/vPortFree |
完整平台约束见根
AGENTS.md「平台约束」章,以及各模块的 Trap Records。
相关文档
- 架构全景:
docs/架构设计/项目架构总览.md - 存储栈:
docs/架构设计/STM32F4-Base存储架构说明.md - 测试指南:
docs/测试说明/*_Test_Guide.md