EG800 FT1 工厂烧录与产测上位机
本工具配套 test/factory-test 分支的独立产测固件,支持批量烧录、DBG UART
协议采集、6 个硬件节点判定和结果落盘。
主要功能
- 产测固件和正式固件分开保存,每个工位可独立选择。
- 烧录串口和产测 DBG UART 分开配置,避免把 DIAG/AT/调试口误认成烧录口。
- 使用原厂
adownload.exe -u -a,先进入等待状态,再由关机设备上电触发烧录。 - 提供“烧录选中”单工位入口;USB 自动等待的批量任务按工位顺序执行,避免抢设备。
- 只解析以
FT1开头的协议行;普通 SDK 日志只显示,不进入产测数据库。 - 严格校验协议版本、消息类型、节点编号/名称、会话 ID 和递增序号。
- 显示
BOOT_AUDIO、POWER_ADC、AUDIO_LOOPBACK、ESIM、DATA_CALL、NFC的实时状态与结构化数据。 - 收到
session_result或power_off时自动保存完整 JSON 和汇总 CSV。 - 保存 IMEI、ICCID、NFC UID、失败码、固件版本、节点耗时和总耗时。
目录和启动
完整烧录工具位于:
burn_tool/aboot-tools-2024.08.08-win-x64/adownload.exe
发布程序:
factory_host/dist/EG800FactoryHost.exe
默认“产测固件”指向已包含节点提示音的 FT1 整包;默认“正式固件”指向
version 目录中的正式内层 -fac.zip。两者都可在外置
factory_host_config.json 中替换,烧录时不要选择 -target.zip 外层归档。
双击表格中的工位可以分别设置烧录口和产测 DBG UART 口。默认 USB 自动等待模式不需要
填写烧录口;产测 UART 可留空并自动识别。“烧录选中”要求只选择一个工位;“批量烧录” 在未选中行时作用于全部工位,选中后只作用于选中工位。
单工位烧录时保持设备关机并连接 USB,选择工位后点击“烧录选中”。工位状态显示
“等待上电”后再给设备开机。此时 adownload 会捕获 AROM USB 下载口并开始烧录,
操作顺序与 Aboot 的 usbOnly + usbAutoEnable 默认设置一致。
串口和协议记录位于:
factory_host/dist/logs/factory_results.csv
factory_host/dist/logs/sessions/*.json
FT1 结果规则
产测结果完全采用固件的 session_result,上位机不会用模糊正则猜测硬件是否通过。
非零失败码会显示 docs/factory_test.md 中对应的中文含义。收到 power_off 后会再次
刷新同一 JSON 文件,但不会在 CSV 中重复增加记录。
AUDIO_LOOPBACK=PASS 表示 GPIO84(原三击测试按键)的录放数据链路成功。
Loopback 仍然是按住录音、松开回放,最长录音 5 秒。
产测音频包
重新生成音频包:
python -B .\factory_host\build_factory_audio_package.py
脚本会执行以下检查:
- 源目录必须且只能包含五个固定文件名。
- 每个文件必须为 16 kHz、单声道、48 kbps MP3。
- 使用 SDK
mklfs-v2.exe -m生成 262144 字节customer_fs.bin。 - 立即反向解包镜像并逐文件比对 SHA-256。
- 输出 ZIP、清单及校验值到
factory_host/dist/factory_audio/。
不要直接覆盖正式业务 customer_fs.bin。需要构建产测整包时,按照
docs/factory_test_windows_fs.md 先备份业务镜像,再临时放入产测镜像。
开发验证
python -B -m unittest discover -s factory_host -p "test_*.py" -v
powershell.exe -NoProfile -ExecutionPolicy Bypass -File factory_host\build_release.ps1