f4fea70749
合并 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。
1.5 KiB
1.5 KiB
App/cfg/ — 配置引擎
/config.ini配置引擎:分层解析、持久化(原子写)、旧档迁移。 属主 = defaultTask(单任务收敛,静态态);其它任务不得直接触碰。
文件一览
| 文件 | 作用 |
|---|---|
cfg_file.c/h |
配置引擎核心:解析 / 查询 / 保存 / 2s 周期 cfg_file_poll |
cfg_file_store.h |
存储后端抽象接口(MCU=FreeRTOS 堆 / 模拟器=宿主堆,共享核心零分配符号) |
cfg_file_store_mcu.c |
MCU 端后端实现:/config.ini(/config.TMP + f_rename 原子写) |
设计要点
- 单任务收敛:
cfg_file为静态态,只有 defaultTask 操作;UI 保存请求经SYS_EVT_CFG_SAVE事件唤醒 defaultTask 执行(netTask/uiTask 不得直接调用) - 零分配共享核心:核心逻辑不含任何分配符号,动态内存收进平台后端
(
cfg_store_alloc/free:MCU→pvPortMalloc,模拟器→宿主堆) - 原子写:写
/config.TMP后f_rename替换,避免掉电损坏 - 旧档迁移:首启时把旧格式转换为当前格式(
net_cfg_legacy.c负责网络段) - 自研代码禁用 C 库堆分配:MicroLIB 堆仅 512B(
malloc必返回 NULL)
相关文档
docs/子系统设计/配置文件设计说明.md— 完整设计(分层/解析/持久化/迁移)docs/子系统设计/网络配置说明.md— 网络段docs/待处理内容.mdP3-2 — 临时文件名硬编码问题