docs(104): 端口口径统一成「工厂默认」,登记「改后立即重 bind」待办
用户裁定两条:① 剩余裸写端口的地方加「工厂默认」限定词,不改固件行为; ② 生效语义按需求口径「保存即生效」定,现实现(端口下次重 bind 才生效)是 要改的一侧 → 建任务登记,本笔不动代码行为。 限定词(24 处 / 17 文件):AGENTS 数据主线、App/protocol/README、根 README 文档索引、Src/freertos.c 三处任务注释、docs/README、项目启动顺序管理、存储 架构说明、软件架构与运行时规格(2)、RAM 使用分析、产品需求设计文档(5)、 项目架构总览(3)、test/host/README、iec104_master 流程注释、IEC104 上行设 计说明、继电保护功能复现规划。配图两张同批重跑:gen_arch_svg.py 与 gen_memory_svg.py(脚本与产物同一笔)。 两处陈旧计数(都做过双源核证): - 测试开发标准流程 像素层「60 内容页」→ 内容页黄金参考 66 张(64 页); 双源 = simulator/tests/ref/shot_*.bin 实数 66 与 check_content_pages.py 的 PAGES 66 条(含两个 _p2)。 - .pre-commit-config.yaml 的 uinav-selftest 注释「18 张黄金参考」→ 写成 「接线当时 18 张、现 66 张」:git log -S 定到 6a904c1b(2026-10-25),那 天 ref 目录确实 18 张,写时为真,但它描述的是钩子现有行为,属当前态。 口径修正与登记: - 页面扩充详细方案「通讯设置 = 无配置模型(端口与 CA 都是 #define)」→ 标 「当时」,并写明现已在 /config.ini 的 [comm] 段可配、UI 通讯设置页可改。 - 产品需求 §通讯配置:删掉「改后需重启生效」这句把两件事混为一谈的话,改成 需求要求「保存即生效」+ 现实现(公共地址重启、端口下次重 bind)+ 指向登记簿。 - docs/任务规划/登记簿.md §1 新增「104 端口改后立刻重 bind」:含隐性耦合 —— .serialtest/config.json 的必检锚点写死 listening on 2404,端口一改串口 回归必假失败;改行为时要么锚点只查 listening on,要么由脚本注入端口。 复扫(旧形态归零判据)剩 20 处未带限定词,逐条定性为刻意不改:默认值定义处、 出厂模板与断言、usage 与 argparse default、UI 黄金参考显示值、台架主站地址 (同数不同义)、串口锚点、叙事句、引用关系图坐标。逐条理由见一次性台账。 门禁:check_doc_links --sections-strict 对 16 篇改动 .md 逐个 rc=0; check_mermaid --all 31 文件 62 围栏新发 0;check_nested_comment --all 449 文件新发 0;check_bom_drift --all 99 个名单内文件无漂移; check_generated_fresh PASS(25 生成器 / 21 一致 / 4 只减不增基线);字节体检 无新增 BOM / CR / U+FFFD / 行尾空格(三连空行与 HEAD 逐项相同 = 存量)。 /keil-build 0 错 0 警,Program Size Code=246720 RO=29836 RW=2052 ZI=149708 与凭证同码:本笔只碰注释与配图文字,无固件行为变更。
This commit is contained in:
+3
-3
@@ -131,7 +131,7 @@ static int hook_ptr_ok(const void *p)
|
||||
* ISR 底线 → 抬至 640 words(2.5 KB,堆余量 min_ever 7152→≈6640 B,可承受)。
|
||||
* 2026-10-12 复测链 1320 B(保护判据接线后),余 1240 B / 48% 仍 PASS。
|
||||
* 栈值以 `scripts/stack_report.py` 实测最坏链为准,改动前后各跑一次。
|
||||
* iec104Task 640 words:B4(2026-10-12)104 上行服务(2404 监听 + link 状态
|
||||
* iec104Task 640 words:B4(2026-10-12)104 上行服务(默认 2404 监听 + link 状态
|
||||
* 机)。link/pts 缓冲全静态;stack_report 实测静态最坏链 1456 B(拆链
|
||||
* 重建监听 → net_bind → SPI 故障 → 日志尾,日志主导)。512 words 时余
|
||||
* 592 B < 1024 B ISR 底线 → 抬至 640(2.5 KB)。
|
||||
@@ -159,7 +159,7 @@ const osThreadAttr_t adcTask_attributes = {
|
||||
.stack_size = 640 * 4,
|
||||
.priority = (osPriority_t) osPriorityAboveNormal,
|
||||
};
|
||||
/* B4(2026-10-12):IEC 60870-5-104 被控站服务(2404 监听 + 链路状态机消费)。
|
||||
/* B4(2026-10-12):IEC 60870-5-104 被控站服务(默认 2404 监听 + 链路状态机消费)。
|
||||
* 手写于此而非 .ioc(同 timeSyncTask/adcTask:不在 Tasks01 里 → 重生成会丢,
|
||||
* 靠审计 WARN 提示)。640 words:stack_report 实测静态最坏链 1456 B(拆链→
|
||||
* 重建监听→net_bind→SPI 故障→日志尾,日志主导);512 words 时余 592 B
|
||||
@@ -386,7 +386,7 @@ void MX_FREERTOS_Init(void) {
|
||||
adcTaskHandle = osThreadNew(adc_task_func, NULL, &adcTask_attributes);
|
||||
|
||||
/* B4(2026-10-12):IEC 60870-5-104 上行服务任务。任务体内先等 NET_READY
|
||||
* 屏障(100ms 分片 + 每片喂心跳,timeSyncTask 先例),再建 2404 监听并
|
||||
* 屏障(100ms 分片 + 每片喂心跳,timeSyncTask 先例),再建默认端口 2404 监听并
|
||||
* 100ms 循环服务;纳入 IWDG required_mask(TASK_WD_IEC104,任何构建都创建)。 */
|
||||
iec104TaskHandle = osThreadNew(iec104_serv_task, NULL, &iec104Task_attributes);
|
||||
protectTaskHandle = osThreadNew(protect_task, NULL, &protectTask_attributes);
|
||||
|
||||
Reference in New Issue
Block a user