87 lines
3.5 KiB
Markdown
87 lines
3.5 KiB
Markdown
# EG800 FT1 工厂烧录与产测上位机
|
|
|
|
本工具配套 `test/factory-test` 分支的独立产测固件,支持批量烧录、USB CDC
|
|
协议采集、6 个硬件节点判定和结果落盘。
|
|
|
|
## 主要功能
|
|
|
|
- 产测固件和正式固件分开保存,每个工位可独立选择。
|
|
- 烧录串口和产测 CDC 串口分开配置,避免把 DIAG/AT/CDC 当成同一个端口。
|
|
- 使用原厂 `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、失败码、固件版本、节点耗时和总耗时。
|
|
|
|
## 目录和启动
|
|
|
|
完整烧录工具位于:
|
|
|
|
```text
|
|
burn_tool/aboot-tools-2024.08.08-win-x64/adownload.exe
|
|
```
|
|
|
|
发布程序:
|
|
|
|
```text
|
|
factory_host/dist/EG800FactoryHost.exe
|
|
```
|
|
|
|
默认“产测固件”指向已包含五个产测 MP3 的 FT1 整包;默认“正式固件”指向
|
|
`version` 目录中的正式内层 `-fac.zip`。两者都可在外置
|
|
`factory_host_config.json` 中替换,烧录时不要选择 `-target.zip` 外层归档。
|
|
|
|
双击表格中的工位可以分别设置烧录口和产测 CDC 口。默认 USB 自动等待模式不需要
|
|
|
|
填写烧录口;产测 CDC 口仍需填写。“烧录选中”要求只选择一个工位;“批量烧录”
|
|
在未选中行时作用于全部工位,选中后只作用于选中工位。
|
|
|
|
单工位烧录时保持设备关机并连接 USB,选择工位后点击“烧录选中”。工位状态显示
|
|
“等待上电”后再给设备开机。此时 `adownload` 会捕获 AROM USB 下载口并开始烧录,
|
|
操作顺序与 Aboot 的 `usbOnly + usbAutoEnable` 默认设置一致。
|
|
|
|
串口和协议记录位于:
|
|
|
|
```text
|
|
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 秒。
|
|
|
|
## 产测音频包
|
|
|
|
重新生成音频包:
|
|
|
|
```powershell
|
|
python -B .\factory_host\build_factory_audio_package.py
|
|
```
|
|
|
|
脚本会执行以下检查:
|
|
|
|
1. 源目录必须且只能包含五个固定文件名。
|
|
2. 每个文件必须为 16 kHz、单声道、48 kbps MP3。
|
|
3. 使用 SDK `mklfs-v2.exe -m` 生成 262144 字节 `customer_fs.bin`。
|
|
4. 立即反向解包镜像并逐文件比对 SHA-256。
|
|
5. 输出 ZIP、清单及校验值到 `factory_host/dist/factory_audio/`。
|
|
|
|
不要直接覆盖正式业务 `customer_fs.bin`。需要构建产测整包时,按照
|
|
`docs/factory_test_windows_fs.md` 先备份业务镜像,再临时放入产测镜像。
|
|
|
|
## 开发验证
|
|
|
|
```powershell
|
|
python -B -m unittest discover -s factory_host -p "test_*.py" -v
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File factory_host\build_release.ps1
|
|
```
|