30 lines
1.0 KiB
Markdown
30 lines
1.0 KiB
Markdown
# App/sync/ — 时间同步
|
||
|
||
> 墙钟时间与外部时间源的同步(timeSyncTask)。墙钟本身由 `../util/sys_clock.c` 维护,
|
||
> 本目录负责**从时间源拉取/接收时间并校准**。
|
||
|
||
## 文件一览
|
||
|
||
| 文件 | 作用 |
|
||
|---|---|
|
||
| `time_sync.c/h` | **时间同步任务**:等待网络就绪 → 与时间源交互 → 校准墙钟 |
|
||
|
||
## 工作流
|
||
|
||
```
|
||
timeSyncTask 启动
|
||
↓ osEventFlagsWait(SYS_EVT_NET_READY, ...|osFlagsNoClear) // 状态位不可消费!
|
||
time_sync 主循环 → 与时间源通信 → sys_clock 校准
|
||
↓
|
||
置 SYS_EVT_TIMESYNC_READY
|
||
```
|
||
|
||
> ⚠️ 等待**就绪位**(`SYS_EVT_NET_READY`)必须 `osFlagsNoClear`——它是状态位,
|
||
> 用默认消费型等待会把它清掉,导致后续消费者(如 ftpTask)永远等不到。
|
||
|
||
## 相关文档
|
||
|
||
- `docs/子系统设计/系统墙钟时间维护说明.md` — 墙钟基准 / tick 回绕防护
|
||
- `test/host/time_sync_server.py` — PC 端对时推送服务(测试用)
|
||
- `docs/架构设计/项目启动顺序管理.md` — 就绪屏障
|