refactor(编号): 自愈层号与 timeSync 挂起、CubeMX 三层、采集链层名清号(代码面)
批次六余账之二(代码与脚本面)。四族都是「批次一 / 三c 改了文档、漏了代码」的半改 状态。 - 日志自愈:「L1 文件级自愈」→「文件级自愈」、「L2 错误去重」→「错误去重」(正文 本来就这么叫,层号纯属多余):App/log/soe_store.c、sys_log_mcu.c 三处、 test/host/sys_log_mcu 的测试与假件头共 10 处。 - timeSync:「L3 pending 化」→ 挂起请求 / pending 化——这条口径早写在记忆里, 今天才算全仓一致。App/sync/time_sync.c 3 处。 - CubeMX 防丢失三层优先级:scripts/check_cubemx_survival.py 6 处「由 L3 升级为 L2」「L2 受保护」「L3 兜底」→ 写进 .ioc / 搬进 USER CODE 区 / 审计兜底;变迁史 句子按「换号留事实」改写、日期原样保留。 - 采集链旧层名:App/README.md「采集与算法层(L1/L2/L3)」→「采集与算法层」; protect_task.c/.h「(L3 板端接线,B5)」→「(板端接线,B5)」。 - phasor 断言文案 19 处:改为 ASCII 的 phasor-in ring(C 字面量必须纯 ASCII)。 改前先证明这些串无耦合——全仓只有本文件含它们、harness 只看 returncode 与汇总 标记;改后 phasor 57/57 与基线同数。 - 零行为:剥注释 + 套登记表后与 HEAD 逐字节 / AST 相同;sys_log_mcu 141/141、 phasor 57/57、watchdog 47/47、freq 46/46 均与动手前基线同数。 - 同一四族的文档面(CubeMX 30、采集链 5、菜单层级 2、双写 14)由下一笔收。
This commit is contained in:
@@ -39,11 +39,11 @@
|
||||
#define TIME_SYNC_PORT 8888
|
||||
|
||||
/*
|
||||
* 头阻塞修复 + L3 pending 化(timeSync 侧;lftpd 侧见 lftpd_inet.c):
|
||||
* 头阻塞修复 + 挂起请求(pending)化(timeSync 侧;lftpd 侧见 lftpd_inet.c):
|
||||
* 旧实现用单次 30s 阻塞 net_recv(默认 NET_RECV_TIMEOUT_MS)等时间包——等待期间
|
||||
* netTask(全部 socket 操作的唯一执行者)被独占,其余任务的网络操作(远端显示 /
|
||||
* FTP)整体停摆(历史审计遗留问题)。
|
||||
* 2026-09-22 先落地分片有界读(5ms 片),同日 L3 pending 化后改为"挂起请求":
|
||||
* 2026-09-22 先落地分片有界读(5ms 片),同日 pending 化后改为"挂起请求":
|
||||
* 每次等待 = 一次挂起登记(netTask 零占用,完成按主循环节拍检查),调用方
|
||||
* 单次超时 = 剩余总预算(总等待 ≤ TIME_SYNC_TOTAL_BUDGET_MS,语义与旧 30s
|
||||
* 一致);等待期间调用方在自己上下文睡任务通知,旧分片协议(片长/片间让出)退役。
|
||||
@@ -142,7 +142,7 @@ static void time_sync_handle_conn(int conn_sock) {
|
||||
TickType_t t0 = xTaskGetTickCount();
|
||||
|
||||
while (got < (int)sizeof(buf)) {
|
||||
/* 单次预算 = 剩余总预算(L3 pending:等待期 netTask 零占用,调用方
|
||||
/* 单次预算 = 剩余总预算(pending:等待期 netTask 零占用,调用方
|
||||
* 在自己上下文睡任务通知,旧片间 vTaskDelay(1) 让出退役)
|
||||
* ⚠ 看门狗约束:本任务在 required_mask 内,而单次 net_recv_to 可睡满
|
||||
* 30s 预算 —— 等待期必须周期性喂心跳,否则"对端连上但不发时间包"这种
|
||||
|
||||
Reference in New Issue
Block a user