42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
# Drivers/BSP/NETCFG/ — 网络配置
|
||
|
||
> 网络参数的**加载 / 保存**(IP、掩码、网关等)。
|
||
> 本模块是**网络配置的持久化层**,与 `App/cfg/cfg_file.c`(配置引擎)配合工作。
|
||
|
||
## 文件一览
|
||
|
||
| 文件 | 作用 |
|
||
|---|---|
|
||
| `net_cfg.c/h` | 网络配置加载(`net_cfg_load`)/ 保存(`net_cfg_save_run`)+ RAM 副本管理 |
|
||
|
||
> **已删除(2026-10-10)**:`net_cfg_legacy.c/h`——旧二进制档 `/cfg/netcfg.bin` 的"首启自动迁移"。
|
||
> 现口径:旧档若存在则被**忽略**(不读、不删、不迁移),配置直接回落工厂默认(`/config.ini`
|
||
> `[network]` 段)。删除理由:该一次性路径把整条配置写链(`net_cfg_save → cfg_file_save →
|
||
> cfg_store_write_atomic → f_rename → FatFS → dhara FTL`)挂进启动期调用图,使 defaultTask 的
|
||
> armlink 静态最坏栈链 +600 B,而本仓库不存在携带旧档的设备。
|
||
|
||
## 工作流
|
||
|
||
```
|
||
defaultTask:net_cfg_load → 置 STORAGE_READY
|
||
↓ (网络配置在屏障前已加载)
|
||
netTask:只读 RAM 副本 → net_stack_bring_up(不在 netTask 里读盘)
|
||
↓
|
||
UI 改配置 → SYS_EVT_CFG_SAVE 事件 → defaultTask 执行 net_cfg_save_run + cfg_file_poll
|
||
↓
|
||
netTask 消费 SYS_EVT_NET_RECONFIG → 立即重建网络(新 IP 免重启生效)
|
||
```
|
||
|
||
## ⚠️ 约束
|
||
|
||
- **网络配置在 `STORAGE_READY` 屏障之前由 defaultTask 加载完毕**,netTask 只读 RAM 副本
|
||
- UI 保存请求经 `SYS_EVT_CFG_SAVE` 事件交由 **defaultTask**(配置引擎属主)执行,
|
||
**netTask/uiTask 不得直接触碰配置引擎**(`cfg_file` 是静态态、单任务收敛)
|
||
- 网络代次号(generation)用于各 TCP 服务判断是否需重建监听
|
||
|
||
## 相关文档
|
||
|
||
- `docs/子系统设计/网络配置说明.md` — 网口设置页与即时生效机制
|
||
- `docs/子系统设计/配置文件设计说明.md` — 配置引擎
|
||
- `docs/架构设计/项目启动顺序管理.md` — 就绪屏障
|