Files
STM32F4-Base/App/cfg
wandering1 1634088bd7 docs(screenlink): 屏板链路档去「说明」并瘦身,控制台档收编台架日志口
屏板链路设计说明.md -> 屏板链路设计.md(去档名「说明」,与 ADC 节拍 /
运行与自检记录两篇口径一致);控制台单写者日志设计说明.md 同改。
两档并存期间旧名引用 0 残留。

- 屏板链路 §3.2 台架日志口(RS232#1 / CN1 端子 / COM3)移入控制台档
  §3.4:日志口的接线属 UART5 控制台通道,不属屏板链路;屏板档只留
  「别去 CN1 找 USART1 端子」这句接线防错提示。
- 屏板链路 §7.1 由「根因账本 + 修复前后对比」改写为现状描述:延迟
  应答机制表 + 耗时分解表 + 两个计数口径 + 已知边界,40 行压到 24 行。
  顺带修正 §8 的错引:原指 `网络自愈架构设计.md` §8(实为「延后项」,
  不含 uiTask 内容)改为 §4.1 `net_reconcile_tick`。
- §9.1 增补长稳行(串口日志 2026-11-13 18:31 -> 2026-11-15 21:43,
  单次上电 51.2 h:rx=658262 ok=658262、crc/len/fmt/err 全 0、
  drop=7 仅启动期、kerr/abor/bad=0、全程 off=0);§9.2 销项三条
  (仪器项、2 h 长稳、len=7 观察项),新增「按键通路」一条——51.2 h
  日志 keys=0 kq=0 dfok=0 dfold=0,延迟应答在真机上从未执行过。
- 删除 sb_frame_b_build_logo() 及 SB_LOGO_MAGIC_* / SB_SCREEN_W/H
  与对应单测(TC-SBPROTO-022/023 全组、024c/024d),组帧入口只剩
  sb_frame_b_build_image()。sb_proto 单测 59 -> 45 条,45/45 通过。
- cfg_file.c 出厂模板三条中文字面量改 \uXXXX 转义:消除全量重编时的
  4 条 #870-D invalid multibyte character sequence,运行期字节不变,
  源码回到纯 ASCII(符合「字符串字面量必须纯 ASCII」)。

验证:keil-build 0 Error 0 Warning;sb_proto 45/45、sb_link 164/164;
pre-commit 48 钩子全 Passed;check_doc_links --sections-strict 通过。
2026-11-15 21:51:24 +08:00
..

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(临时名由目标路径同目录推导 + f_rename 原子写)
prot_set_store.c/h 保护定值持久化胶水:/prot_set.bin blob 读写(blob 格式/校验/原子装载在 App/algo/prot_set.c 纯逻辑层);装载 = storage bring-up(屏障前),落盘 = defaultTask 消费 SYS_EVT_PROT_SET_SAVE

设计要点

  • 单任务收敛:cfg_file 为静态态,只有 defaultTask 操作;UI 保存请求经 SYS_EVT_CFG_SAVE 事件唤醒 defaultTask 执行(netTask/uiTask 不得直接调用); 定值落盘同构——iec104Task 只置事件位(SYS_EVT_PROT_SET_SAVE),不碰文件系统
  • 零分配共享核心:核心逻辑不含任何分配符号,动态内存收进平台后端 (cfg_store_alloc/free:MCU→pvPortMalloc,模拟器→宿主堆)
  • 原子写:写 /config.TMP 后 f_rename 替换,避免掉电损坏
  • 自研代码禁用 C 库堆分配:MicroLIB 堆仅 512B(malloc 必返回 NULL)

相关文档

  • docs/子系统设计/配置文件设计.md — 完整设计(分层/解析/持久化)
  • docs/子系统设计/网络配置说明.md — 网络段