# 三芯片异步诊断到目标读取器接入 A51

本轮新增pca9956b_async_bank.c/h，以及目标lamp_driver_diagnostics.c/h；目标适配层实际调用A50 start/poll/get/cancel，三地址0x15/0x19/0x65的MODE2、6个EFLAG、MODE2共24次读取按三芯片交错执行。一条交易完成STOP前不得启动下一条。每次poll有限步骤、不忙等待。已链接进目标镜像，尚未从main启用，因为实际总线时钟/滤波/TIMINGR所有者仍未完成；不声称已从硬件取得任何诊断数据。

与A48同步回调候选不同，本版保留pending状态，异步get返回false且reader未failed意味着继续等；false不会冒充一个字节或全部成功。所有24次交易完成、每芯片MODE2两端一致、整组从首次请求到最后完成不超过20ms才发布。保存各芯片首次请求及第8次读完成时间与整组时间、序号；新一轮开始立即撤销旧整组。任一begin/读取失败、单次>5ms、poll间隙>5ms、总年龄>20ms/时钟反向均使整组失败锁存并取消尚在进行的交易。停止CPU/停止时钟仍需独立硬件关断，不靠此模块解决。当前1ms WFI主循环不足以完成所需快轮询，本轮没有偷偷把它用于实际运行。

提取A46故障解析为pca_fault_decode，单芯片与异步整组共用同一解析，减少开短路编码分歧。24通道2bit00无观察到故障、01短路、10开路、11未定义；解析所有通道，包括U3未连接通道13..23，不屏蔽意外故障。保留MODE2过热/全局错误、摘要不一致、eligibility覆盖信息。稳定MODE2不代表EFLAG原子快照，也不证明负载持续健康。eligible默认0，只有实测且持续有效的负载证据可置位，不能将coverage_complete当输出授权；未来owner须在负载状态变化时撤销旧诊断与覆盖，当前无输出授予。

新增取消处理时发现二次abort风险：ARLO第一次处理会清错误标志，随后适配层再次取消若重新按当前BUSY请求STOP，可能干扰赢得仲裁的其他主机。本版cancel只对活动状态abort；failed/done仅失效结果，不再写STOP。模型先清ARLO并保留BUSY再取消，实际回归保护这个行为。仍不证明物理总线已恢复/释放；故障后不自动重试，setup owner恢复资格仍缺。

验证：330条异步整组路径及额外等待/5ms超时、输出保存等；真实目标reader+真实adapter+bank的26个MMIO端到端运行（成功、24位置NACK、过慢poll排程）；单芯片共享解析24576种mode/channel/code及旧错误/时效回归；reader65632条及重复取消ARLO回归，均ASan/UBSan通过。实际变异源在第23次读取就发布、清ARLO后重复取消、收到RX立即发布、反转开短路编码均被测试拒绝。依赖来源ST上游参考/授权和本地原理图A47未改。本轮main源与A50逐字节相同；GPIO和关断启动继承A49，未声称本轮重跑未改变的温度/业务所有测试。目标重编译与ELF检查证明新模块和适配层链接、main未启用。软件模型与编译不能证明实物效果、电气时序、光学/热/EMC或整机成本。

复现sh run_checks.sh；需要macOS cc、Python3、arm-none-eabi工具链。本包含完整候选源及target镜像供评审；禁止视为制造放行。未更改PCB，LED驱动板仍无封装/布局。仍需总线配置/快轮询与实机验收、驱动板布局、三款实际负载效果及每款1000台完整整机锁料报价。20项功能效果仍0项实测确认，无采购/外联/烧录/通电/制造下单。FABRICATION_HOLD。
