refactor(time_sync)!: 退役 TCP :8888 对时任务,timeSyncTask 转纯 SNTP 校时节拍宿主(#78) #80

Merged
wandering1 merged 1 commits from remove-8888-timesync-a6657322808f into master 2026-11-04 18:26:45 +08:00
Collaborator

This is by an automated agent, not a human.

做了什么(#78 退役 TCP :8888 对时)

前提成立:SNTP 客户端已随 #73(PR #77,merge 2b848c4a)合入 master,本 PR base = 合入后的 master。用户裁定 8888 对时任务退出历史舞台(gitea:77 线程原话,跟踪 Issue #78)。

  • App/sync/time_sync.c v2.0:删除 :8888 监听、TIME 包(8 B "TIME"+u32 BE)重组、sys_clock 写入、OPER 落痕、net_drop_conn 队头自救整条链;TIME_SYNC_PORT 宏随退役删除。任务体收敛为纯校时节拍宿主:就绪屏障(100 ms 分片、osFlagsNoClear)→ 每 200 ms task_wd_beat → time_sntp_run(net_get_generation()) → 分片延时。任务入口名不变,freertos.c 零改动,喂狗节奏(TASK_WD_TIMESYNC=5,required_mask)不变。
  • 时钟写入口自此 = SNTP / UI 手工 / 104 C_CS,原 8888↔SNTP 双写竞态(后写者赢,墙钟说明 §16)随之消失。
  • 工具退役:删除 test/host/time_sync_server.py(对时源)与 e02_probe.py(队头阻塞探针,载体随监听消失);scripts/v5_log_gap_report.py 的探针窗口分类器保留供旧日志解读。
  • 主机单测重写 v2.0(33 断言,绿):分片喂狗延时 / 就绪屏障(含永不就绪不挂死)/ SNTP 节拍与网络代次当轮交接 / 未出网守门;stub net_socket.h 裁剪至 net_get_generation 作编译期绊线——生产码若再引监听类 API 直接炸编译。旧 TC-TIMESYNC-* 编号整族作废(用例文档已注明)。
  • 文档约 30 处现势口径同步:墙钟说明 §15 改退役公告(CH395F FIN 丢未读缓冲的教训保留给 lftpd/ui_net_sink)、§16 单一网络来源;产品需求 FR-TIME-2 退役注记、§6.3 对时协议重写为 SNTP 客户端;网络自愈 §9.3(退役后本表不再有应用侧 net_drop_conn 调用者)、网络配置、架构总览、BSD 指南、看门狗心跳/白名单行、部署环境、继保规划、UI 补齐时基口径等。历史台架记录与陷阱档案按惯例不改写。
  • 图与台账:arch / net_stack 生成器 + SVG 同笔重跑;ram_baseline / check_mem_numbers / 体积凭证同步(Code 254,648 → 253,428,−1,220 B);覆盖率基线收口(time_sync.c 101→20 行为刻意缩减)。

验证

  • keil-build:0 Error / 0 Warning(time_sync.c、time_sntp.c 确认重编译),ER_IROM1 283,512 B (27.0%)。
  • 主机单测:time_sync v2.0 33/33;sntp、net_cfg 等相关套绿;覆盖率伞 gate 48/48 套全绿。
  • check_doc_links --all 0 失败;check_mem_numbers --scan 0;体积门禁 --stamp/--local 通过;ui-golden 钩子跑过(UI 仅注释行变更,金样不变)。

风险与遗留(如实登记,非本 PR 引入)

  • 静态栈链双 FAIL:复测 timeSyncTask 静态最坏链 1,904 B(余 656)、iec104Task 1,600 B(余 960),低于 ISR 硬线。master 2b848c4a 同判据实测 timeSyncTask 即 2,056 B FAIL(iec104 同源同值)——本 PR 只减不增(−152 B = 旧任务自身帧);双 FAIL 为 #74 UDP / #77 SNTP 出向链进任务调用树后的既有债,链尾是控制台 drain 幻影环(§4.0.7 记账,非设备故障)。抬栈属 Ask-first,未擅自执行;已登记登记簿「静态链硬线双 FAIL」,待台架 [STACK] 复采后定夺。复测快照:docs/内存管理/data/stack_report_20261104.md。
  • 点表曾要求 SNTP 服务器 192.168.1.121:5105:现客户端端口固定 123,非标端口不满足(已在继保规划登记,如需对接另立「[sntp] 端口可配」小项)。
  • SNTP 真机台架判据仍开放(#77 登记项,与本 PR 解耦)。

关联:Closes #78;SNTP 来源见 #73 / PR #77。

This is by an automated agent, not a human. ## 做了什么(#78 退役 TCP :8888 对时) 前提成立:SNTP 客户端已随 #73(PR #77,merge 2b848c4a)合入 master,本 PR base = 合入后的 master。用户裁定 8888 对时任务退出历史舞台(gitea:77 线程原话,跟踪 Issue #78)。 - **`App/sync/time_sync.c` v2.0**:删除 :8888 监听、TIME 包(8 B "TIME"+u32 BE)重组、`sys_clock` 写入、OPER 落痕、`net_drop_conn` 队头自救整条链;`TIME_SYNC_PORT` 宏随退役删除。任务体收敛为纯校时节拍宿主:就绪屏障(100 ms 分片、`osFlagsNoClear`)→ 每 200 ms `task_wd_beat` → `time_sntp_run(net_get_generation())` → 分片延时。**任务入口名不变,freertos.c 零改动**,喂狗节奏(`TASK_WD_TIMESYNC=5`,required_mask)不变。 - **时钟写入口自此 = SNTP / UI 手工 / 104 C_CS**,原 8888↔SNTP 双写竞态(后写者赢,墙钟说明 §16)随之消失。 - **工具退役**:删除 `test/host/time_sync_server.py`(对时源)与 `e02_probe.py`(队头阻塞探针,载体随监听消失);`scripts/v5_log_gap_report.py` 的探针窗口分类器保留供旧日志解读。 - **主机单测重写 v2.0**(33 断言,绿):分片喂狗延时 / 就绪屏障(含永不就绪不挂死)/ SNTP 节拍与网络代次当轮交接 / 未出网守门;stub `net_socket.h` 裁剪至 `net_get_generation` 作**编译期绊线**——生产码若再引监听类 API 直接炸编译。旧 TC-TIMESYNC-* 编号整族作废(用例文档已注明)。 - **文档约 30 处现势口径同步**:墙钟说明 §15 改退役公告(CH395F FIN 丢未读缓冲的教训保留给 lftpd/ui_net_sink)、§16 单一网络来源;产品需求 FR-TIME-2 退役注记、§6.3 对时协议重写为 SNTP 客户端;网络自愈 §9.3(退役后本表不再有应用侧 `net_drop_conn` 调用者)、网络配置、架构总览、BSD 指南、看门狗心跳/白名单行、部署环境、继保规划、UI 补齐时基口径等。历史台架记录与陷阱档案按惯例不改写。 - **图与台账**:arch / net_stack 生成器 + SVG 同笔重跑;ram_baseline / check_mem_numbers / 体积凭证同步(**Code 254,648 → 253,428,−1,220 B**);覆盖率基线收口(time_sync.c 101→20 行为刻意缩减)。 ## 验证 - keil-build:**0 Error / 0 Warning**(time_sync.c、time_sntp.c 确认重编译),ER_IROM1 283,512 B (27.0%)。 - 主机单测:time_sync v2.0 **33/33**;sntp、net_cfg 等相关套绿;覆盖率伞 gate **48/48 套**全绿。 - `check_doc_links --all` 0 失败;`check_mem_numbers --scan` 0;体积门禁 `--stamp/--local` 通过;ui-golden 钩子跑过(UI 仅注释行变更,金样不变)。 ## 风险与遗留(如实登记,非本 PR 引入) - **静态栈链双 FAIL**:复测 timeSyncTask 静态最坏链 1,904 B(余 656)、iec104Task 1,600 B(余 960),低于 ISR 硬线。**master 2b848c4a 同判据实测 timeSyncTask 即 2,056 B FAIL**(iec104 同源同值)——本 PR 只减不增(−152 B = 旧任务自身帧);双 FAIL 为 #74 UDP / #77 SNTP 出向链进任务调用树后的既有债,链尾是控制台 drain 幻影环(§4.0.7 记账,非设备故障)。抬栈属 Ask-first,**未擅自执行**;已登记登记簿「静态链硬线双 FAIL」,待台架 `[STACK]` 复采后定夺。复测快照:`docs/内存管理/data/stack_report_20261104.md`。 - 点表曾要求 SNTP 服务器 `192.168.1.121:5105`:现客户端端口固定 123,非标端口不满足(已在继保规划登记,如需对接另立「[sntp] 端口可配」小项)。 - SNTP 真机台架判据仍开放(#77 登记项,与本 PR 解耦)。 关联:Closes #78;SNTP 来源见 #73 / PR #77。
super_agent_bot added 1 commit 2026-11-04 18:07:35 +08:00
refactor(time_sync)!: 退役 TCP :8888 对时任务,timeSyncTask 转纯 SNTP 校时节拍宿主(#78)
CI / 静态门禁 (pre-commit) (push) Failing after 43s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 45s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 45s
3a2f9b21fb
SNTP 客户端已随 #73/PR #77 上线合入(merge 2b848c4a),用户裁定
8888 对时任务退出历史舞台(gitea:77 线程原话,跟踪 Issue #78)。

生产侧(App/sync/time_sync.c v2.0,任务入口名不变,freertos.c 零改动):
- 删除 :8888 监听、TIME 包重组、sys_clock 写入、OPER 落痕、
  net_drop_conn 队头自救整条链(TIME_SYNC_PORT 宏随退役删除)
- 任务体收敛为:就绪屏障(100ms 分片、osFlagsNoClear)→
  200ms 校时节拍 task_wd_beat → time_sntp_run(net_get_generation())
  → 分片延时;喂狗节奏(TASK_WD_TIMESYNC=5,required_mask)不变
- 时钟写入口自此 = SNTP / UI 手工 / 104 C_CS,双写竞态(后写者赢)
  随之消失(墙钟说明 §15 退役公告、§16 现势口径)

工具与测试:
- 删除 test/host/time_sync_server.py(对时源)与 e02_probe.py
  (队头阻塞探针,载体随监听退役;判据脚本 v5_log_gap_report.py
  保留供旧日志解读)
- time_sync 主机单测重写 v2.0:33 断言覆盖分片延时 / 屏障 /
  SNTP 节拍与网络代次当轮交接 / 未出网守门;stub 的
  net_socket.h 裁剪至 net_get_generation 作编译期绊线
- 覆盖率基线 --update-baseline 收口(time_sync.c 101→20 行为刻意
  缩减,全仓 48/48 套绿)

文档与图:墙钟说明 §15 改退役公告(教训保留:CH395F FIN 丢未读
缓冲)、§16 单一网络来源;产品需求 FR-TIME-2 退役注记、§6.3 重写;
架构总览 / 软件架构规格 / 网络配置 / 网络自愈 §9.3 / BSD 指南 /
看门狗说明心跳与白名单行 / 实机测试指南 / 部署环境 / 继保规划 /
UI补齐时基口径 / 页面补齐规划 SNTP 页行 / 任务规划 README 叶数与
暂缓项行(SNTP 叶已绑、UI_PAGE_MAP_COUNT=31 口径)等约 30 处现势
口径同步;arch / net_stack 两图生成器与 SVG 同笔重跑。

台账:ram_baseline --update + check_mem_numbers --write + 体积凭证
(Code 254,648→253,428,−1,220 B)。静态链复测发现 timeSyncTask
1,904 B / iec104Task 1,600 B 低于 ISR 硬线:master 2b848c4a 同判据
timeSyncTask 即 2,056 B(本 PR 只减不增,−152 B 旧任务自身帧),
双 FAIL 为 #74/#77 后既有债;抬栈属 Ask-first 未擅自执行,登记簿
新增「静态链硬线双 FAIL」待台架复采,复测快照入 docs/内存管理/data。

验证:keil-build 0 错 0 警;time_sync/sntp 主机单测绿;
ci_local 全绿;doc-links --all 0。
wandering1 merged commit 1f94015434 into master 2026-11-04 18:26:45 +08:00
wandering1 deleted branch remove-8888-timesync-a6657322808f 2026-11-04 18:26:47 +08:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wandering1/STM32F4-Base#80