Files
STM32F4-Base/docs/README.md
T

17 KiB
Raw Blame History

docs/ 文档索引

定位:本目录是 STM32F4-Base 项目的工程文档库——架构设计、子系统设计、测试规范、审查记录与外部资料。 权威入口:日常开发以仓库根 AGENTS.md(面向 AI/开发者)为第一入口;本文档提供人类可读的全量索引与推荐阅读顺序。 约定:目录名不含空格;新增文档必须登记到本索引(见文末「新增文档约定」)。


1. 目录结构

docs/
├── README.md                 本索引(阅读顺序 + 全量清单)
├── 待处理内容.md             跨文档待办登记簿(高频入口,保留在顶层)
├── 架构设计/                 全局架构与设计方法论
├── 子系统设计/               各功能子系统的设计说明
├── 网络/                     BSD Socket API 使用与内部实现
├── 测试说明/                 测试流程、模块测试指南、工具说明
├── 代码规范/                 编码规范与静态检查门禁
├── 文档规范.md               本文档体系的规范(命名/链接/门禁/结构)
├── 内存管理/                 RAM 预算、分配策略与优化调研
├── 问题记录/                 模块陷阱台账与专项审计
├── 审查记录/                 项目审查报告与改进清单
├── 环境与部署/               环境搭建与部署核对清单
├── UI设计/                  UI 架构、页面设计、字体与模拟器
├── 硬件平台/                 网表分析报告与语义图
├── 芯片手册/                 外部芯片数据手册转录(只读资料)
└── images/                   文档技术配图(SVG 产物,由脚本生成)

⚠️ docs/芯片手册/(约 120 MB / 1754 张图)为只读外部输入资料,与代码演进无关; 后续按《项目审查与优化建议报告》D-1 建议拆分独立仓库或降采样(见 审查记录/项目审查与优化建议报告.md)。


2. 推荐阅读顺序

新成员/新接手者按此顺序,可在最短时间内建立全局认知:

顺序 文档 读它能得到什么
1 项目架构总览.md 六层分层、启动时序、存储/网络/UI 三栈、目录组织
2 项目启动顺序管理.md Event Flags 就绪屏障(取代魔法延时)的任务启动模型
3 项目部署环境要求.md 开发机/目标板/现场部署的完整环境核对清单
4 项目部署环境要求.md → 构建 跑通 @build / @test(见根 AGENTS.md)
5 测试开发标准流程.md 测试分层 L0~L3 与门禁决策表
6 嵌入式C语言代码规范_V1.0.md 命名/格式/注释规范(提交门禁强制)
7 项目架构总览.md → 按需 进入具体子系统设计文档

按角色:

  • 应用/驱动开发 → §3 架构设计 → §4 子系统设计 → §6 问题记录(改驱动前必读对应 Trap Records)
  • 测试/验证 → §5 测试说明 → §2 环境与部署
  • UI 开发 → §7 UI 设计 → §5 测试说明(串口助手、UI 自动化测试流程)
  • 接手/评审 → §8 审查记录 → §5 待处理内容

3. 架构设计

文档 内容
项目架构总览.md 系统全景:六层分层、启动时序、存储·网络·UI 栈、目录组织
STM32F4-Base存储架构说明.md GD5F2GQ5UE SPI NAND 之上的三层存储软件栈(FTL / dhara / FatFs)
项目启动顺序管理.md CMSIS-RTOS v2 Event Flags 就绪屏障(SYS_EVT_NET_READY 等)
图形绘制流程.md 文档配图规范:SVG 生成器 / Mermaid 选型与检查清单
引用关系图说明.md 文件级 #include 引用关系图生成(tools/refgraph,产物 images/)

4. 子系统设计

文档 内容
配置文件设计说明.md /config.ini 配置引擎:分层、解析、持久化与旧档迁移
网络配置说明.md 网口设置页:IP/掩码/网关,UI 保存即时生效
系统墙钟时间维护说明.md sys_clock:RTC 基准、tick 回绕防护、30 天惰性再基准化
控制台单写者日志设计说明.md 控制台日志单写者模型(避免多任务交错输出)
运行与自检记录设计说明.md /log/run.log·selftest.log 定长记录与待机显示
看门狗设计说明.md 实施中:IWDG(CubeMX 配置)+ 任务心跳位图;代码已落地编译通过,待台架故障注入/长跑验证
网络/BSD_Socket_API_使用指南.md 上层视图:BSD Socket API 公开语义、示例、常见问题
网络/BSD_Socket_API_函数调用关系.md 内部视图:netTask / 消息队列 / L3 挂起 / 重试对账的调用关系与设计意图
网络/Net层阻塞模型架构设计.md 等待模型:pending 请求架构、五路完成语义、设计边界与性能特征

5. 测试说明

总流程与规范

文档 内容
测试开发标准流程.md 测试开发总流程:规划→板端套件→主机工具→门禁→沉淀;门禁决策表
自动化测试流程.md @test 闭环细节:命令 / 串口标记 / 失败模式
测试文档模板规范.md 测试文档模板与命名规则(TM / TC / DP)
链路延迟测试说明.md 网络链路时延分段定义、判定基线、执行流程
模拟器差距清单.md PC 模拟器 vs 真机差距登记册(L3 门禁可信度依据;改动涉及网络/日志/硬件层前必查 §3 决策规则)
实机测试实施指南.md 上板(真机)测试执行判据与待上板事项(环境预检 → @test+自检判定 → IWDG 注入/长跑 → 堆告警 → GD5F 错误通道 → 网络基线 → 工程卫生 → 实测陷阱);每项含判据与精确命令

主机侧单元测试(L0.5)

文档 内容
看门狗单元测试说明.md Task Watchdog 判定状态机(位图 / 掩码 / 节流 / tick 回绕),39 用例
系统时钟单元测试说明.md sys_clock 时间换算 / 星期 Zeller / 30 天惰性再基准化 / RTC 故障降级,100 断言点
配置文件单元测试说明.md cfg_file INI 解析 / 值编解码 / load-save-poll 契约 / 超长守卫,139 断言点(含抓出的外科手术保存死码 P0)

模块测试指南(动手写测试前先读)

文档 内容
CH395F_Test_Guide.md CH395F 以太网控制器(硬件层 Phase 15 / NET 层 Phase 611)
GD5F2GQ5UE_Test_Guide.md GD5F2GQ5UE SPI NAND 存储测试
SD2506_Test_Guide.md SD2506 RTC 测试
FTP_Test_Guide.md FTP 服务测试

工具与运维

文档 内容
串口助手使用指南.md 串口助手命令用法 / 工作流 / 排障
串口助手设计说明.md 串口助手契约 / daemon 行为 / 陷阱
ST-LINK_CLI_复位使用说明.md 烧录 / 复位 / 回读校验(ST-LINK_CLI 完整用法)
存储维护与容量恢复.md 全片擦除恢复 dhara 坏块记账 / 容量恢复
m2_data/README.md · m3_data/ 链路时延测试采集数据(JSON 原始记录)

UI 相关测试见 UI设计/UI_自动化测试流程.md。


6. 代码规范 · 文档规范 · 内存管理 · 问题记录

6.1 代码规范(提交门禁相关)

文档 内容
嵌入式C语言代码规范_V1.0.md 命名/格式/头文件/注释规范(含机械检查项)
pre-commit使用说明.md 提交门禁配置、检查范围与排除项
cppcheck使用说明.md cppcheck 配置与告警处置

6.1b 文档规范(写/改文档前必读)

文档 内容
文档规范.md 文档体系强制约定:目录/命名(无空格)、编码换行、链接形态(互链用根相对、图片用目录相对)、[计划] 标记、门禁三档、结构要素与常见错误速查

6.2 内存管理(新增任务/缓冲/栈前必读)

文档 内容
RAM使用分析与优化方案.md 内存主文档:占用分析、优化方案、定栈规则
内存内容分配策略.md 各内存区(SRAM/CCM)的分配策略
存储栈RAM优化调研.md 存储栈 RAM 优化调研与结论
data/ ram_report_*.md / stack_report_*.md 快照数据(由 scripts/ 生成)

6.3 问题记录(改驱动前必读)

文档 内容
CH395F_Trap_Records.md CH395F 以太网控制器陷阱台账
GD5F2GQ5UE_Trap_Records.md GD5F2GQ5UE SPI NAND 陷阱台账
SD2506_Trap_Records.md SD2506 RTC 陷阱台账
错误码传播审计.md 错误码传播缺陷审计(9 类模式 × 子系统)

7. UI 设计

文档 内容
UI_设计架构.md UI 分层架构、LVGL 移植要点与踩坑(I1 palette 头、dark mono 主题)
菜单页面设计.md 菜单树与导航设计
内容页架构.md 内容页组织与渲染
UI_界面制作流程.md 界面制作 P0→P4 流程与 Gate 判据
UI_中文字体生成与配置.md 中文字库生成、子集化与配置
UI_自动化测试流程.md UI 模拟器像素回归(ui-verify 五步)
LVGL模拟器部署与使用说明.md PC 端 LVGL 模拟器部署与使用
RemoDispBus协议与接收设计说明.md 远端显示总线协议与接收设计
mockups/ 各页面参考图与说明

8. 审查记录 · 环境与部署 · 外部资料

8.1 审查记录

文档 内容
项目审查与优化建议报告.md 项目全景审查:文档/代码/架构/可靠性问题清单(D-1~D-7、N-xx、Px-xx)
项目审计改进清单.md 审计待办清单(P0~P3,带状态与日期)
下一步任务规划.md 项目状态盘点 + 下一步任务排序(阶段 A/B/C/D)——每轮迭代后更新盘点
测试与架构改进建议.md 测试充分性 + 架构改进专项复审(2026-10-02,纯建议不改码):L0.5 覆盖率缺口、孤儿源文件、错误通道不对称等 S1~S14 实施建议

8.2 环境与部署

文档 内容
项目部署环境要求.md 开发机软件环境、目标板资源预算、现场部署与验收步骤

8.3 台账与外部资料

位置 内容
待处理内容.md 跨文档待办登记簿(台架/审计发现、暂不在修复范围的事项)
硬件平台/ 网表详细分析报告与语义图(V0.0 / V0.1)
芯片手册/ 外部芯片数据手册转录(CH395F / GD5F2GQ5UE / SD2506 / TPAFE5160 / RTL8305NBI 等)
images/ 文档技术配图(.svg 产物,由 tools/arch_diagram/、tools/refgraph/ 生成)

9. 新增文档约定

  1. 目录归属:按上表选目录;新子领域先建无空格目录名(如 xxx设计/),并在此索引登记。
  2. 命名:主题词 + 类型后缀(xxx设计说明.md / xxx_Test_Guide.md / xxx_Trap_Records.md)。
  3. 登记:新增文档必须在本文档对应章节补一行;否则视为未完成。
  4. 链接:文档间引用统一用仓库根相对路径(docs/xxx/yyy.md),不使用 ../ 相对链接。
  5. 配图:走 架构设计/图形绘制流程.md(draw-diagram skill),产物统一放 images/,脚本与 .svg 一并提交。
  6. 门禁:文档提交同样过 pre-commit(乱码 / 行尾空白 / gitlint + 文档链接存在性 doc-links / 任务表一致性 task-table,见 文档规范.md §4 与 代码规范/pre-commit使用说明.md)。

目录/文件名一律不含空格(D-6,2026-09-25 起强制):空格会迫使脚本、链接、CI 处处加引号, 且 URL 编码形态(UI%20设计)易被漏改。现全库已无含空格目录。


10. 已知文档问题(待清理)

来源:《项目审查与优化建议报告》D-3/D-7。 D-3 / D-6 / D-7 已处理完毕(2026-09-25):全库链接存在性检查通过(66 文档 0 失效)、任务表与 Src/freertos.c 一致、文档规范已建立。下表保留仍需跟踪的项。

问题 位置 说明
指向未实现工具 UI_界面制作流程.md、UI_自动化测试流程.md → tools/ui_mock/ 文档承诺了未实现的 UI 渲染/比对工具(其引用已按 §3.3 标注「已删除」状态词)
产物缺失 内存管理/RAM使用分析与优化方案.md → scripts/ram_baseline.tsv 方案写了、工具未建(引用已加 [计划] 标记)
目录名含空格 UI 设计/ ✅ 已修复(2026-09-25,D-6):改名为 UI设计/,全仓库 67 处引用同步;命名约定见 文档规范.md §1
缺一致性门禁 — ✅ 已落地(2026-09-25/26,D-7 三档齐):scripts/check_doc_links.py(存在性)+ scripts/gen_task_table.py(数值)+ scripts/check_mem_numbers.py(体积),接入 pre-commit doc-links / task-table / mem-numbers 钩子
docs/文档规范.md 未创建 — ✅ 已创建(2026-09-25):文档规范.md

完整清单与建议见 审查记录/项目审查与优化建议报告.md §3.3。


11. 变更记录

日期 变更 说明
2026-09-25 目录重组 + 索引建立 顶层 16 篇散落 md 归入 5 个新目录(架构设计/ 子系统设计/ 网络/ 审查记录/ 环境与部署/);全仓库 90 处引用同步;新建本索引(D-5)
2026-09-25 D-6 目录去空格 docs/UI 设计/ → docs/UI设计/;全仓库 67 处引用同步(含 URL 编码形态 UI%20设计);命名约定写入 §9
2026-09-25 D-7 文档-代码一致性门禁 新建 scripts/check_doc_links.py(链接存在性,含行内代码豁免/就近状态词/[计划] 标记)、scripts/gen_task_table.py(任务表由 Src/freertos.c 生成/校验,锚点 TASK_TABLE:BEGIN/END);接入 pre-commit doc-links/task-table 钩子;全库 66 文档 0 失效
2026-09-26 D-7 体积档落地 新建 scripts/check_mem_numbers.py(内存/Flash 数字以 .map 为事实源,锚点 MEM_SNAPSHOT:BEGIN/END + 陈旧散句数字扫描);接入 pre-commit mem-numbers 钩子;上线即抓出 6 处真实失真(RW_IRAM1 82,048→87,040、ROM 249,432→262,660 等)
2026-09-25 新建 文档规范.md 正式确立文档体系规范(目录命名/编码换行/链接形态/门禁/结构/写作约定);补入本索引 §6.1b