007f6a0e2f
原「配置文件设计说明.md」是 2026-09 的规划文档(P1~P8 实施计划、D1~D15 决策表、差距调研、模块清单动作列、已终结的开放问题),与现在跑的系统 已有明显出入。改写成只描述当前状态的「配置文件设计.md」。 新文档 9 节:概览 / 文件格式(路径与容量、语法、出厂模板原文、值类型)/ 运行时机制(上电加载、外科手术式保存、2s 轮询与沉降、视图一致性守卫、 写者归属)/ 段与键表(8 段全满、注册顺序、接入新段模板、段回调)/ 接口(引擎 API、平台后端)/ 内存占用(编译期钉死的 9217B 暂存)/ 异常与恢复 / 双端差异 / 已知限制。 顺带修正一处事实错误:旧文档称 FTP STOR 是「写 .TMP 再 rename 原子更新」, 实际 lftpd receive_file 是原地覆写,已按代码现状改写。 旧二进制档(NCFG)的叙述按裁定从全仓移除:文档只描述当前状态,不再 交代旧版本兼容性。删掉网络配置说明 §3.2 整节(后续小节重排为 3.2~3.5), 并清理 README / 架构总览 / 产品需求 / 部署环境等 11 处同类叙述。 同步: - 8 段注册、FTP 原地覆写、2s FAT mtime 粒度等数据更新进配置分层架构图, 重跑后与生成器逐字节一致,check_generated_fresh 里这条存量基线下架 - 全仓 24 处引用改用新文档名,旧节号逐条映射到新节号 - 文档规范 §7.1 变更记录例外名单 4 篇减为 3 篇(该档实际无变更记录表) 验证:48 个提交期钩子全通过;Keil 构建 0 错误 0 警告; check_doc_links / check_mermaid / check_generated_fresh 均通过。
simulator/sim/ — 模拟器平台层
PC 端 LVGL 模拟器的平台适配层:把 MCU 侧的硬件/RTOS 接口替换成 PC 实现, 使 UI 源码(
Drivers/BSP/UI/)与固件共用同一套代码。
文件一览
| 文件 | 替换的 MCU 侧实现 | 作用 |
|---|---|---|
sim_port.c/h |
ui_port.c |
显示/输入移植层:SDL 窗口 → LVGL 显示驱动 + 键鼠/触摸输入 |
net_socket_sim.c |
net_socket.c |
网络 Socket 的 PC 实现(宿主 BSD socket) |
cfg_file_store_sim.c |
cfg_file_store_mcu.c |
配置存储的 PC 后端(宿主堆) |
sim_syslog.c |
sys_log_mcu.c |
日志的 PC 实现(写文件而非 NAND) |
ui_net_sink_backend_sim.c |
ui_net_sink_backend_mcu.c |
推流后端的 PC 实现 |
sim_latency_stub.c |
— | 时延打桩(模拟链路延迟,供测试) |
设计模式
MCU 与模拟器共用核心逻辑,仅后端不同:
共享核心(无分配符号)
├── cfg_file.c(配置引擎)
└── ui_*(LVGL UI)
↓ 后端抽象接口
┌─────────┴─────────┐
MCU 后端(本工程 *_mcu.c) PC 后端(本目录 *_sim.c)
配置引擎后端:MCU = FreeRTOS 堆、模拟器 = 宿主堆,共享核心零分配符号。
相关文档
- 模拟器总说明:
../README.md - UI 架构与移植要点:
docs/UI设计/UI_设计架构.md - 模拟器部署:
docs/UI设计/LVGL模拟器部署与使用说明.md