#3954·tinyusb

hil: 减少电池/恢复开销并简化生命周期记账

作者: hathach创建于 2026年9月22日更新于 2026年9月22日
标签Prio 📌followup
  • A+D: 将扫描结果和其证据组合在一起(test/hil/usbtest.py). wedge_evidence = {'node', 'holders', 'complete'}confirmation_of(...) 旁边被构建了三次; 将其替换为 _scan_record(node, stuck, complete, **extra) 返回 (confirmation, evidence) 用于一个 已完成 的扫描。保留 waited_s, 每个 after, 复制的持有者列表以及重置/重新闪存前的明确的 'unverified' 赋值。D: 将 metro_m4 的"至少保持 5 秒"说明(RECOVER_SETTLE)与它运行到的 WEDGE_CONFIRM_S 注释分开。测试: test_hil_bounded.py 用于已清除/已确认/未完成的扫描,恢复阶段的元数据,在无效化和下一个扫描之间的异常。接受相同的输出和清理决策; 如果助手掩盖了状态转换,则放弃。
  • C: 一个尚未运行的结果构建器(hil_report.summarize, 两次构建)。test_hil_report.py 中的测试: 未知名称与变体匹配或过时的行,配置的板没有行,精确的字段和不同的细节。如果它变成一个通用结果工厂,则停止。
  • 2: 使用一个 rsync 来获取报告文件(hil_report.summarize, 两次构建)。使用 hil_remote.py 中的 copy_back 进行三次 rsync 今天。使用一个 rsync 将 hil_report.md, hil_report.json 和可选的 <config>.failed 通过包含过滤器添加到一个新的临时目录中; 成功要求退出 0 两个报告都已上传。然后是相同的全或空的推广和过时规范删除。test/test_hil_remote.py 中的测试: 与规范一起和没有规范,其中一个报告缺失,传输中断,本地文件过时,引号中的路径。仅在测量到的收益(传输数量,墙时)的情况下接受。ssh ControlMaster 保持在外面。
  • F: 无所有设备扫描的 testusb。 标准 tools/usb/testusb.c 使用 ftw() 遍历 /dev/bus/usb 并打开和读取每个节点,即使在 -D 使用时也是如此; usbdev_open/usbdev_read 使用 usb_lock_device (v6.12.107 drivers/usb/core/devio.c), 因此每个案例开始都等待每个对等电池的在传输中的案例。ci.lan 日志, 2026-09-22: 6-8 个电池停滞了大约 20 秒,然后在 20 毫秒内恢复,多次。明确设备模式检查其目标,保留接口发现,未知设备回退,DEVICE, -n 和所有设备模式。testusb.c 是 GPL-2.0 或更高版本: 附带一个固定的上游补丁以及可重现的 rig 构建说明,而不是源代码。首先记录 rig 二进制的源代码版本和哈希(/home/hathach/testusb, 来源未知)。测试: 选择设备模式与接口发现模式,缺失或无效的目标,接口选择,输出兼容性; 一个追踪

内容来源: hathach/tinyusb