f5902bcc21
两篇规划期文档改成对当前系统的描述,档名统一去掉"设计说明"的"说明"。 运行与自检记录: - 旧档重写为现状版(10 节:概览 / 记录布局 / 写入路径 / 读取与呈现 / 事件分类 / 控制台日志 / 双端差异 / 内存 / 异常恢复 / 自测要点), 删掉需求表、调研摘要、模块清单动作列、实施步骤与开放问题。 - 按代码纠正:七类记录齐备(原文只写了两类)、自检描述串换成实际 落盘的 28 条、待机阈值以 ui_tokens.h 为准、记录页已走 ui_w_records 共享组件、容量满只删该文件而非整卷清空。 - 待机屏移出本篇:它不属于日志,归 UI 侧;内容页架构补"待机屏 (覆盖层)"一节,产品需求 FR-LOG-3 拆成单纯的上电/重启分类, 待机显示归口已有的 FR-UI-3。 ADC 采样节拍: - §4.5 从 45 行压到 24 行,只留规则 / 违反的代价 / 为什么 / 兜底与 档案指针;九路置换实测表、A/B 对照、探针计数等取证归 ADC_Trap_Records.md 的 TRAP-ADC-01(那里已有完整档案)。 - adc1_gap 字段去掉"2026-10-21 起、此前固件为次数"的修订记录式括号。 - app_main.c 的注释改为指向 TRAP-ADC-01 取证、§4.5 设计口径。 引用同步:两个旧档名全仓替换(含代码注释、角色档、归档 id 表), 旧名残留 0;对 ADC 篇的 § 引用逐条复核落在真实章节上。 验证:48 个提交期钩子全通过,check_doc_links --sections-strict 通过。
38 lines
2.4 KiB
Markdown
38 lines
2.4 KiB
Markdown
# App/ — 应用层
|
||
|
||
> **自研代码**(非 CubeMX 生成、非第三方库)。本目录是项目的**应用层**:任务编排、业务逻辑、
|
||
> 日志与配置引擎、工具函数。所有文件遵循 `docs/代码规范/嵌入式C语言代码规范_V1.0.md`。
|
||
|
||
## 职责
|
||
|
||
`Src/main.c`(CubeMX 初始化)→ `app_main_init`(本目录 `app/app_main.c`)→ `osKernelStart` →
|
||
6 个 FreeRTOS 任务(见 `task/`)。**`osKernelStart` 之前全是内核启动前代码,禁止调用任何
|
||
FreeRTOS/CMSIS-RTOS API**(见 `AGENTS.md`「平台约束」)。
|
||
|
||
## 目录结构(按职责分层)
|
||
|
||
| 目录 | 内容 | README |
|
||
|---|---|---|
|
||
| `app/` | **应用入口与全局**:`app_main.c/h`(初始化入口)、`app_cfg.h`(裁剪决策占位说明,当前无宏)、`sys_events.h`(就绪事件) | [`app/README.md`](app/README.md) |
|
||
| `cfg/` | **配置引擎**:`/config.ini` 解析 + 原子持久化(旧二进制档已废弃,2026-10-10) | [`cfg/README.md`](cfg/README.md) |
|
||
| `sync/` | **时间同步任务**:`time_sync.c/h` | [`sync/README.md`](sync/README.md) |
|
||
| `algo/` | **采集与算法层**:语义取数 + 有效性判定 + 采样环/相量/测频 + 定值模型 + 保护元件框架 | [`algo/README.md`](algo/README.md)(索引);设计 → `docs/算法/采集与算法层设计说明.md` |
|
||
| `log/` | **日志子系统**:syslog(NAND)+ 控制台单写者日志 | [`log/README.md`](log/README.md) |
|
||
| `task/` | **FreeRTOS 任务实现**(6 个任务) | [`task/README.md`](task/README.md) |
|
||
| `util/` | **通用工具**:CRC / 环形缓冲 / 墙钟时间 | [`util/README.md`](util/README.md) |
|
||
| `protocol/` | 通信协议(预留,当前为空) | [`protocol/README.md`](protocol/README.md) |
|
||
|
||
## 关键约束
|
||
|
||
- **配置引擎单任务收敛**:`cfg/` 为静态态、属主是 defaultTask;UI 保存请求经
|
||
`SYS_EVT_CFG_SAVE` 事件唤醒,netTask/uiTask **不得直接触碰**配置引擎
|
||
- **syslog 唯一写者**:`/log/*` 只由 defaultTask 写入
|
||
- 新增任务/缓冲/栈前**必须先核算 RAM 余量**(`docs/内存管理/`)
|
||
|
||
## 相关文档
|
||
|
||
- 架构全景:`docs/架构设计/项目架构总览.md`
|
||
- 启动顺序:`docs/架构设计/项目启动顺序管理.md`
|
||
- 配置引擎:`docs/子系统设计/配置文件设计.md`
|
||
- 日志:`docs/子系统设计/控制台单写者日志设计说明.md`、`docs/子系统设计/运行与自检记录设计.md`
|