通用配置文件 P1–P3:设计文档、FS 并发 A+ 定案、FatFs 墙钟接入、cfg_file 双端引擎与 net_cfg 集成(旧档 NCFG 首启迁移)

This commit is contained in:
2026-09-14 02:15:49 +08:00
parent cf2597f998
commit 97661415ca
29 changed files with 3076 additions and 359 deletions
+16 -10
View File
@@ -1,16 +1,19 @@
/*
* 模块名称:Network Configuration (NET CFG)
* 模块功能:网络参数配置(IP/掩码/网关/MAC)——双端共享核心:RAM 配置副本 +
* 工厂默认 + 加载/保存编排 + 实际 MAC 影子;存储后端经 net_cfg_store.h
* 抽象(MCU = NAND 上 FatFS 文件 /cfg/netcfg.bin,模拟器 = 本地文件
* sim_netcfg.bin);磁盘格式 = magic + ver + CRC-16 + 18B 字段;
* MAC 全零哨兵 = 不覆盖芯片内置 MAC;保存后下次上电生效
* (每次上电 netTask 在 net_init 前加载)
* 工厂默认 + 加载/保存编排 + 实际 MAC 影子;存储经 cfg_file 通用
* 配置文件引擎(INI [network] 段:ip/mask/gw/mac;MCU = NAND 上
* /config.ini,模拟器 = sim_config.ini);MAC 全零哨兵 = 不覆盖芯片
* 内置 MAC;保存后下次上电生效(每次上电 netTask 在 net_init 前
* 加载)或 poll 4s 沉降后生效
* 函数说明:旧版 NCFG 二进制格式(magic+ver+CRC-16+18B 字段)归 net_cfg_legacy,
* 首启一次性迁移进通用配置文件
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
* 作者:王建锋
* 创建日期:2026-09-10
* 修改记录:
* v1.0 2026-09-10 王建锋 创建初始版本
* v1.1 2026-09-14 王建锋 存储迁移至 cfg_file 引擎(INI [network] 段)
*/
#ifndef NET_CFG_H
@@ -41,9 +44,11 @@ typedef struct {
* 返回值:恒 0(RAM 恒有效:文件缺失/损坏回退工厂默认) int
* 限定条件:MCU 端应在存储就绪(SYS_EVT_STORAGE_READY)后调用;
* 未就绪时文件读失败,自动回退工厂默认(不阻塞网络启动)
* 函数说明: 1. 文件缺失(首启/未保存过)→ 工厂默认
* 2. magic/ver/CRC 错误 → 工厂默认并留痕(不让坏配置带崩网络)
* 3. 校验通过 → 装入 RAM 副本
* 函数说明: 1. 注册 [network] 段(幂等)
* 2. 文件缺失 → 先迁旧档 NCFG(有效 → 旧值物化进新文件),否则
* 生成出厂模板
* 3. 解析文件:有效键 → RAM 副本;无效/缺失键 → 工厂默认并留痕
* 4. 严重错误 → RAM 副本 = 工厂默认(不让坏配置带崩网络)
*/
int net_cfg_load(void);
@@ -52,8 +57,9 @@ int net_cfg_load(void);
* 入口参数:无
* 返回值:0 - 成功;-1 - 写失败 int
* 限定条件:MCU 端应在存储就绪后调用
* 函数说明:组装磁盘格式(magic+ver+CRC-16+18B 字段)经后端写盘;
* 下次上电生效(netTask 在 net_init 前加载)
* 函数说明:经 cfg_file 引擎写盘(外科手术式保存:保留注释/未知内容,
* 临时文件 + 原子改名);下次上电(netTask 在 net_init 前加载)
* 或 poll 4s 沉降后生效
*/
int net_cfg_save(void);