# A68 灯板台架采样记录接口

状态：候选源码、主机模型及 ARM 镜像检查通过。未烧录、未上电、未完成实物标定；FABRICATION_HOLD。

新增 80 字节定长记录，包含四路 ADC 原始计数、首样/完成时间、采样序号、工厂 VREF 校准值、候选电压/电流/NTC 电阻、换算状态和质量标记，以及 GPIO 输入配置可用位/电平位。GPIO 在 ADC 帧读取之后采集，因此二者不是同时采样；captured_ms 表示该轮开始时间，不能用它推断模拟通道同时性或稳定时间。

换算失败时清空候选计算字段；ADC 无新鲜帧时记录不可用并清空原始/结果字段，不保留上一帧作当前数据。原始异常帧仍可保留用于诊断，但 measurement_status 必须检查。physical_calibration_verified 固定为 0，无任何开灯许可路径。temperature_ok/supply_ok/led_driver_ok 仍未绑定；主程序电流校准配置在链接镜像中仍为全零。

主程序发布 lamp_debug_bench_capture，并用 lamp_debug_bench_epoch 标记写入：奇数写入中，偶数完成。调试器应读取 epoch、80 字节记录、再读取 epoch，要求两次相同且偶数；或在主程序不处于发布中时暂停 MCU 后读取。它是主循环单写者诊断接口，不是跨线程通用同步原语，也不保证未暂停的无限长期读取得到一致快照。

## 工厂采样流程

1. 样板制造及上电方案独立审核通过后，使用隔离/限流的台架和 SWD 读取接口；本包不授权上电或带载。
2. 保存 lamp_debug_bench_capture 的连续 80 字节小端二进制，并记下前后 epoch。可在 GDB 中用 `dump binary memory capture.bin &lamp_debug_bench_capture ((char*)&lamp_debug_bench_capture)+80` 保存；必须另外记录 epoch。
3. 运行 `python3 decode_bench_capture.py capture.bin --epoch-before 2 --epoch-after 2 > capture.csv`，数值以实际读取值代替。
4. 在 CSV 空列填写独立仪表测得的 VDDA、LED 电压/电流、NTC 电阻/温度、板号、仪表号和人员；保留原始 dump。未提供仪表数据的记录仅为软件候选采样，不是校准证据。
5. 后续由这些真实测点建立增益、偏移、误差和安全范围，再接入许可链。CSV 不自动拟合，也不会将记录升级为物理标定通过。

## 本轮验证范围

ASan/UBSan 4107 场景通过：4096 个 NTC ADC 计数、无帧、工厂校准无效、原始量程错误、序号无效、陈旧/时间逆序、供电估算越界、时间回绕、空输出指针。验证记录不改写原始帧、错误记录清空上次结果、所有记录的物理标定标记为 0。

ARM 构建与链接调用检查通过，台架记录确实从主程序采样路径调用；未配置/武装 guard、无输出适配、无看门狗运行许可的边界保留。具体内存与哈希以本包 build/size.txt 和 build_verification.json 为准。包内 A67 及更早检查日志为历史证据，本轮没有重跑无关全量回归。

三款共 20 项实物效果要求仍未验证。尚不能宣布与原产品效果一致或放行打样/量产。本轮没有购买、下单、发送工厂资料、烧录或上电。
