fix(factory): stabilize multi-device automatic flashing

This commit is contained in:
chenjintao
2026-09-24 19:28:13 +08:00
parent 01d52cc3d6
commit 3dcfa2442b
6 changed files with 457 additions and 32 deletions
+9
View File
@@ -137,6 +137,15 @@ firmware/
还应在一台真实设备上验证:自动等待上电烧录、断开后才允许下一台、DBG UART 自动识别、
七项 FT1 状态、GNSS 累计数据、JSON/CSV 保存,以及产测固件和正式固件切换。
自动烧录端口枚举必须保留 USB 元数据,只接受 ASR AROM 的 `VID_2ECC/PID_3004`,并用
`location`(其次为序列号、HWID、COM 名)标识物理设备。不要把运行态的 DBG、AT、DIAG
接口交给 `adownload.exe`,否则一台设备会被误建成多个工位。
多工位烧录在设备上电前启动单个 `adownload.exe -u -a` 进程。不要等待 Python 枚举到 COM 口后
才启动下载器,也不要为每个端口分别启动下载器;自动参数中不能加入 `-q`,否则任一端口完成后
监听进程就会退出。`flash.workers` 只控制界面预建的工位数。
不要仅为并发烧录加入 `-m`;它会启用固件包中标记为 `productionOnly` 的分区操作。
## 7. 固件替换规则
- 产测与正式固件都必须是 Aboot 可直接烧录的内层 ZIP,不要选择外层 `*-target.zip`。
+8 -1
View File
@@ -66,13 +66,20 @@ factory_host/dist/
1. 启动 `START-EG800-FACTORY-TOOL.exe`,固件类型选择“产测固件”或“正式固件”,确认顶部完整路径。
2. 连接一个或多个烧录器,设备保持关机。
3. 点击醒目的“启动自动烧录”,工具每 0.5 秒持续检测烧录串口,并为每个串口建立工位。
3. 点击醒目的“启动自动烧录”。上位机会立刻启动唯一一个 `adownload.exe -u -a` 进程,先进入等待 AROM 状态。
串口扫描只负责建立工位和显示状态,不会延迟下载器启动;多台设备由同一下载器进程处理。
4. 工位显示“烧录中·等待上电”后给对应设备开机,设备进入 AROM 后自动开始烧录。
5. 工位显示“烧录成功”后先断开当前设备;工具检测到端口消失后才会允许下一次烧录,避免同一设备反复烧录。
6. 换上下一台关机设备并上电,端口重新出现后自动开始下一次烧录。
7. 全部生产完成后点击“停止烧录”;不要在实际写入过程中拔线或关闭程序。
默认参数使用 `adownload.exe -u -a` 自动等待 AROM 下载设备,因此烧录口和产测 UART 是两个不同角色。
界面只把 `VID_2ECC/PID_3004` 的 AROM 下载口识别为工位,并按 USB 物理位置去重;同一设备的
DBG、AT、DIAG 及运行态串口不会创建额外工位。启动监听前已经存在的端口作为基线,按标准流程
先启动自动烧录,再给待烧录设备上电。
开始前必须关闭单独打开的 `aboot.exe` 以及其他 `adownload.exe`。新版会检测并提示这些冲突进程,
因为多个下载器同时轮询 AROM 口会导致配置解析失败或端口占用。
## 4. 自动识别并开始产测