From 97049a4bf0a95a68b4e201014c2947658b134119 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Wed, 28 Oct 2026 07:30:05 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E9=87=87=E9=9B=86=E9=93=BE?= =?UTF-8?q?=E4=B8=8E=E4=B8=8A=E9=80=81=E9=93=BE=E5=8F=B0=E6=9E=B6=E8=81=94?= =?UTF-8?q?=E8=B0=83=E5=88=86=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 docs/任务规划/分工说明-20261028-采集链与上送链联调.md(45 行): 只分工不改行为。A 线走采集链 L1→L2→L2.5,B 线走上送链 L2.5→104/UI, 两条线各自验收后合并,不交叉编辑对方文件。 - A 线交付:App/algo/README.md 补「快照时序」一节;adc_input 主机单测 增帧序号回绕与双缓冲半帧两个用例;ADC采样节拍说明 §5 按实测节拍回填。 - B 线交付:meas 双区快照的单写者与多读者一致性说明;ui_data 补陈旧 代次(generation)用例;新增 .c 时双端注册 Keil 工程与 CMakeLists。 - 禁区写进正文:CODE-RULE-20 禁 C 库堆分配、V0.1 禁跨转换器做相位与 功率运算、layer-deps 不许 BSP 反依赖 App、UI 源文件带 BOM 须原样补回。 - 验收表:台架一次烧录须 -Rst -Run 并回读校验(No difference found), 串口日志不得出现 [ERR]——四个 Fault 的崩溃日志都以它开头。 随笔修一处:正文第 31 行举例引用的 §4.2 在目标文档里已不存在,改指现有 小节 §10.1,否则 doc-links 门禁拦提交(编码 BOM、LF 与乱码均无变化)。 本笔只动这一份文档,代码与门禁配置零改动;上一笔 94b0d790 的页面接线与 任务卡号清退不在本笔内,其未做的六页真机判据已登记在登记簿 §7。 另记一笔待办:文中写的 MDK-ARM/STM32F4-Base.uvprojx 与实际工程文件名 (STM32F407-Demo.uvprojx)不符,留给该线负责人校正,本笔不代改。 --- .../分工说明-20261028-采集链与上送链联调.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/任务规划/分工说明-20261028-采集链与上送链联调.md diff --git a/docs/任务规划/分工说明-20261028-采集链与上送链联调.md b/docs/任务规划/分工说明-20261028-采集链与上送链联调.md new file mode 100644 index 00000000..87ddf47a --- /dev/null +++ b/docs/任务规划/分工说明-20261028-采集链与上送链联调.md @@ -0,0 +1,44 @@ +# 分工说明:采集链与上送链台架联调(2026-10-28) + +**目标**:把 **L1→L2→L2.5** 取数链与 **L2.5→104/UI** 上送链在同一次台架烧录里对齐,提交门禁 **0 错误 0 警告**。 +**口径**:本文件只分工,不改行为;任何一条线单独验收通过后合并,**不交叉编辑**对方文件。 + +## A 线 · 采集链(负责人 A) + +- **涉及文件**:`App/algo/adc_input.c`、`App/algo/adc_health.c`、`App/algo/sample_ring.c`、`App/algo/phasor.c`、`Src/freertos.c`(**只写 `USER CODE` 区**) +- **交付物**: + 1. `App/algo/README.md` 补 **「快照时序」** 一节:`tpafe5160_snapshot()` 临界区原子性、`adc_tick_irq_notify()` 的「消费者就绪」门(TIM3 比调度器早 ≈100 ms); + 2. `test/host/adc_input/run_unit_test.py` 增加 **帧序号回绕** 与 **双缓冲半帧** 两个用例; + 3. `docs/子系统设计/ADC采样节拍设计说明.md` §5 表格与代码实际节拍(**TIM3 PSC 83 / ARR 999 → 1 kHz + TRGO_UPDATE**)核对后回填差异。 +- **禁止**:`malloc/calloc/realloc/strdup/free`(门禁 CODE-RULE-20);跨转换器做 **相位/功率/功率因数** 运算(V0.1 硬件缺陷);`Drivers/BSP/` 里 include `App/` 的头(`layer-deps`)。 +- **取数只用** `adc_input_poll()` / `adc_input_raw()` **按语义**取值,**不写死下标**(`buf[2]=IA`、`buf[5]=UN`、`buf[6]=UA` 见 `docs/硬件平台/ADC通道映射说明.md`)。 + +## B 线 · 上送链(负责人 B) + +- **涉及文件**:`App/algo/meas.c`、`App/task/iec104_task.c`、`Drivers/BSP/UI/ui_data.c`(**带 UTF-8 BOM:改完核对 `EF BB BF`**)、`test/host/meas/run_unit_test.py` +- **交付物**: + 1. `App/algo/meas.c` 的 **200 ms 双区快照** 写一个 **单写者/多读者** 一致性说明,落到 `docs/架构设计/项目架构总览.md` 的跨层依赖表; + 2. `Drivers/BSP/UI/ui_data.c` 与 104 上送 **共用同一份上游**:补 `test/host/ui_data/run_unit_test.py` 的 **陈旧代次(generation)** 用例; + 3. 若新增 `.c`:`MDK-ARM/STM32F4-Base.uvprojx` + `simulator/CMakeLists.txt` **双端注册**(`new-source-file`)。 +- **禁止**:直接编辑 `Drivers/BSP/UI/` 之外的 `Src/`、`Inc/` 标记区外内容;把 `*.uvprojx` 的 UV4 抖动改动入库;改 `Lib/lv_conf.h` 不同步 `simulator/` 那份(`lv-conf-sync`)。 +- **UI 侧铁律**:字符串字面量 **纯 ASCII**,中文只进注释;注释里写路径 **不要出现星号形态**(`nested-comment` 9-D),写目录或用尖括号。 + +## 共用约束(A/B 都要守) + +- 改代码/改文档 **只用 Edit 精确替换**;**绝不**用 `Get-Content`/`Set-Content`/`cmd` 重写含中文的文件(`U+FFFD` 不可逆)。 +- 行尾 **LF**(`.gitattributes` 已写死 `* text=auto eol=lf`);怀疑乱码先数 `EF BF BD` 字节,**不要 `git checkout`**。 +- 门禁只在 **提交时** 统一跑:`@build` + `& '.venv\Scripts\python.exe' scripts/ci_local.py` + `check_doc_links.py --all`;**不要中途反复跑**。 +- 文档引用章节 **紧邻写法**:`docs/算法/采集与算法层设计说明.md` §10.1;改名/挪目录走 `scripts/rename_ref.py`(先 dry-run)。 +- `git commit` / `git push` / 烧录 / `CubeMX` 重生成 / 抬栈 —— **须用户明确指示**(抬栈前后各跑 `scripts/stack_report.py`)。 + +## 验收(合并前) + +| 线 | 判据 | 证据 | +|---|---|---| +| A | L1 有效性→L2 相量 与 1 kHz 节拍一致,无半帧 | `test/host/adc_input` 全绿 + `docs/子系统设计/ADC采样节拍设计说明.md` | +| B | `meas` 双区 **104 与 UI 同源**,无撕裂 | `test/host/meas`、`test/host/ui_data` 全绿 + `docs/编号规范.md` 无新撞号 | +| A+B | 台架一次烧录 **`-Rst -Run` + 回读校验**(`No difference found`),串口日志无 `[ERR]` | `@test` 报告 + `MDK-ARM/build_log.txt` | + +## 交接 + +- 两条线各自 **只回报:改了哪些文件、跑了哪些自检、剩余风险**;跨线接口(`meas` 快照字段)变更 **先在本文件登记**再动手。