RK3568量产并行烧录实践:从RKDevTool到FactoryTool的关键决策

发布时间:2026/10/3 21:05:55
RK3568量产并行烧录实践:从RKDevTool到FactoryTool的关键决策 我最早是用RKDevTool一块一块点RK3568板子烧录的那会儿产线一天要出几百片板操作员坐在电脑前插拔一整天中间还得盯着进度条防止哪个分区没烧进去。后来换成FactoryTool做并行烧录之后一批八块板子同时插上四五分钟搞定一整批产线的老师傅都觉得这次系统升级比换硬件还顶用。这篇文章不打算念说明书而是把从研发单板调试切到工厂量产并行烧录的完整过程、关键决策和踩过的坑写清楚给正在搭RK3568产线或者被烧录效率折磨的朋友做个参考。1. 单板调试工具与工厂量产工具为什么量产必须换一套思路1.1 从一把螺丝刀到一条流水线两套工具的本质差异先用最直白的话说清楚这两套东西的区别。RKDevTool是Rockchip官方的开发工具背后是rockusb协议用来对单块板卡做分区读写、固件烧录、单独调试某个镜像研发阶段非常顺手。你板子进不了系统了按住recovery键插上USB打开RKDevTool选好loader和各个分区镜像点一下执行很快就能把板子拉回来。它的问题在于整个交互是围绕“单板调试”设计的一次只能接一两块设备进度、日志、结果都要人工盯着。FactoryTool则是Rockchip专门为工厂量产场景做的工具核心能力就是“一台电脑配合USB Hub插上多块板卡同时烧录”。它的界面比RKDevTool更偏向产线操作员不需要懂分区表不需要理解uboot和dtb的区别操作员只用把板卡插上去点一下启动烧录看着一整排绿灯亮起来就算完事。如果哪块板子烧失败了工具会标红并记录原因方便后面维修工位回头处理。我整理了一张对比表方便大家直观地看对比项RKDevToolFactoryTool适用场景研发调试、单板验证、救砖工厂量产、批量烧录、产线统计设备接入通常单块多口支持较弱可同时管理多块按机器/工位分组分区操作支持单独读写某个分区主要以整包固件一键烧录为主操作门槛需要理解分区、loader、参数面向操作员简单直观自动校验手动确认支持烧录后自动校验统计报表基本没有有成功/失败统计可追溯固件管理每台电脑手动加载可配置多套固件按工位绑定所以如果你还停留在“用RKDevTool给产线量产”的阶段赶紧换思路。这不是哪个工具“更好”的问题而是场景不一样螺丝刀再顺手也顶不上流水线。1.2 并行烧录的数据流和真正的性能瓶颈很多朋友第一次听说FactoryTool能并行烧录时会有个误解以为插上8块板子就像8个工人同时干活速度一定会提升8倍。实际不是这样的得先理解烧录的数据流。板卡上电后片上ROM里的maskrom bootloader会通过USB枚举成一个设备随后上位机先把一个“loader”下发到板卡的内存中运行这个loader起来之后再通过USB批量接收固件数据写入到板卡上的EMMC、SD卡或SPI Flash。也就是说每块板卡和电脑之间是一条独立的USB链路但这多条链路最终要通过USB Hub汇聚到一个USB Host控制器上共享上游带宽。以USB 2.0 High-Speed为例理论带宽480Mbps实际传输效率折算下来大概在30~40MB/s。如果单块板卡独占这条链路固件是1.6GB的Android镜像理论传输时间约40~50秒加上loader握手、EMMC编程、烧录后校验这些开销实测单板烧录大概2分半到3分钟。这个时间由“传输时间 写存储时间 校验时间”构成。并行烧录时8块板卡同时向主机要数据USB Hub上游链路会变成瓶颈。每块板卡分到的带宽下降但总吞吐量上去了8块板卡的总完成时间不会等于单板时间乘以8而是比串行快非常多。我实测过一批1.6GB固件的8块板卡并行烧录串行大概需要20分钟出头并行稳定在6~8分钟完成。如果固件精简到700MB左右8块并行压到3~5分钟很常见这也正是“5分钟搞定多块板卡”说法的来源。关键前提是固件别太大、USB Hub别太烂、板卡存储写入速度别太慢。这三条里任何一条掉链子标题里的“5分钟”就跟你无缘了。2. 环境搭建这一步足以决定量产线是否顺畅2.1 硬件拓扑USB Hub的选型比想象中更重要烧录环境搭建本质上就是“PC USB口 USB Hub 烧录治具/线材 多块板卡”这样一个物理链路。但产线不是实验室我在产线上见过太多因为Hub导致的疑难杂症。第一不要用无源Hub。USB协议从设计上允许Hub从上游取电给下游设备但8块板卡同时枚举、同时握手、同时开始传输的瞬间电流需求会很大无源Hub扛不住结果就是某一路突然掉线烧录莫名其妙失败。量产线建议全用带独立电源适配器的有源Hub并且电源适配器电流至少2A以上如果是8口Hub最好选3A以上的。第二线材长度和线径非常关键。USB 2.0信号对线材质量不是特别敏感但在产线这种长距离走线环境下超过1.5米的线就容易出问题。我一般控制在1米以内并且选那种带屏蔽层的线避开电源线走在一起。产线排线时不要让USB线和220V电源线纠缠在一起看似玄学实际上电磁干扰是真实存在的。第三Hub的级联不要超过两层。有些产线为了省事把一个8口Hub再接到另一个Hub上一个口拖十几个板卡这很容易导致枚举不稳定。我的建议是主机后端至少插两三个USB口每个口各接一个Hub每个Hub带4到8块板卡整体并发控制在8到16块。这里不要贪多稳定比数量重要。2.2 驱动与板卡状态先解决“识别不到设备”的问题驱动这块相对固定装好Rockchip的DriverAssitant然后在Windows的设备管理器里确认没有带感叹号的设备。正常情况下板卡进入烧录模式并插入USB后设备管理器里会出现“Rockchip USB Device”这样的条目。容易出问题的点在于很多人的板卡是重新上电进入烧录模式的但电脑端驱动没装好或者板卡是先插USB再上电枚举时序不对导致设备根本没被识别。我的经验是先让板卡进入烧录模式再插USB线最后上电这个顺序最稳妥。如果板卡已经是maskrom状态Flash里没有引导程序那只要接USB线就能被识别。还有一个小细节量产电脑的USB口别随便换。Windows对USB设备有记忆绑定如果每次把Hub插到不同接口偶尔会出现设备识别异常。产线固定每台工位机的USB口编号不要今天插前面板、明天插后面板能省掉很多莫名其妙的问题。2.3 RK3568进入烧录模式的几种方式RK3568这块芯片的烧录模式主要有两种Loader模式和MaskRom模式。Loader模式是最常见的。板卡上一般会有一个RECOVERY键或者UPGRADE键按住这个键再上电芯片内部的引导代码会优先从USB启动进入Loader模式。已经启动完整系统的板卡也可以通过执行adb reboot loader命令直接重启到Loader模式这在流水线上配合治具做自动化时非常方便。MaskRom模式则是“最后的保险”。当板卡Flash里的引导代码损坏、或者整颗Flash是空白状态时芯片会直接进入MaskRom模式这个模式下可以将整颗Flash重新分区、重新写入。第一次烧录从未烧过的板卡或者救砖基本都是MaskRom模式。FactoryTool对这两种模式都支持但操作时要注意MaskRom模式下如果误操作擦除整颗Flash数据恢复的难度会大很多所以配置烧录项时务必确认无误再执行。还有一个容易被忽略的点同一批板卡如果有些已经烧过系统、有些是裸片插入工具后的初始状态可能不同一个是Loader模式一个是MaskRom模式。FactoryTool一般是能统一管理的但需要你在配置里把两种模式的选项都打开否则会出现部分板卡识别不到的问题。3. FactoryTool完整操作流程从新建工厂到整批进度盘3.1 新建工程与配置烧录项FactoryTool的逻辑和RKDevTool不太一样它不是直接“选镜像然后烧”而是先建一个工厂/工程再在工程底下配置一个或多个“机器/工位”每个工位对应一套烧录配置。这个“机器”的概念实际上就是对物理USB接口或Hub通道的逻辑映射。操作上一般先进入工厂管理界面新建一个工厂命名建议带上客户、项目、日期比如PAD_3568_T3_20250512这样后续翻日志、对版本的时候一目了然。接着在工厂下新增配置选择对应的设备型号然后就要开始指定固件文件了。这一步特别重要FactoryTool的固件来源有两种玩法一种是直接加载一个完整的update.img另一种是加载解包后的分区文件loader、parameter、uboot、boot、dtb、rootfs等。量产我建议用完整的update.img省事、统一、不易出错。如果你需要定制某些分区比如换一个uboot开机动画那就要走分区模式但这种情况一般是研发先把新固件打好包再交给工厂不建议在产线上现拼分区。3.2 添加固件与校验配置加载固件后工具一般会做一次预校验检查loader、parameter与板卡存储介质是否匹配。最常见的报错是parameter里定义的分区表超出了EMMC实际容量或者loader版本和固件版本不匹配。遇到这种问题优先找研发确认固件包是否针对当前板型编译不要自己在产线上硬试浪费时间还容易把板卡刷成砖。接下来要确认的就是存储介质选项。RK3568开发板上常见的存储方案有EMMC、SD卡、SPI Nor/Nand等几种。FactoryTool一般会让你选择写入的目标介质务必选对。如果板卡既贴了EMMC又预留了SD卡座选错介质会导致烧录完成但启动不了。再有就是校验选项量产强烈建议开启“烧录后自动校验”就是烧完再从存储介质里读回来比对一遍哈希。这个操作会增加一些耗时但能拦截掉很大一部分“当时烧录成功、实际数据有问题”的隐患算下来比事后返工划算得多。3.3 批量插入板卡观察状态与日志配置保存后就可以把板卡逐个接上来了。这里说一个产线上的操作细节不要一口气把8块板卡全部插满再上电而是分成两到三批每批两到三块间隔几秒钟。原因是Hub和USB控制器同时枚举多个设备时偶尔会出现竞争导致某一路识别不到。分批上电虽然看起来“慢”了一点但整体稳定很多。板卡被识别后FactoryTool的界面上会依次出现对应的设备/工位条目每个条目显示当前状态比如“等待烧录”“正在烧录”“烧录成功”“烧录失败”。确认所有板卡都识别到位后点下启动烧录工具就会并行对所有设备分发任务。从我个人经验看设备识别这一步最容易暴露硬件问题。如果某一块板卡插上后始终不出现先别怀疑工具检查这根线、这个Hub口、这张板卡的OTG通路。产线上一半的“烧录失败”其实是物理链路问题不是工具问题。4. 实际量产中最常踩的坑USB掉线与烧录中途失败4.1 为什么会掉线信号完整性、供电与驱动USB掉线这个问题几乎每个搭过并行烧录产线的人都遇到过。具体表现是烧录进行到一半某一两块板卡的进度条突然清零报错状态变成红色重新插拔后又能继续但没准下次烧一半又掉。原因是多方面的我按重要性排个序供电不足这是最容易被忽略的。无源Hub或者电源适配器功率不够多块板卡同时写入EMMC时电流波动大USB端口保护触发链路直接断开。信号质量问题线材太细、线缆过长、Hub PCB走线差都会导致D/D-差分信号质量下降在高速传输时偶发错误。USB控制器资源竞争一块主板只有有限的USB Host控制器资源同时挂太多设备某些低端主板的控制器会处理不过来出现设备随机掉线。板卡OTG供电设计部分板卡设计方案里OTG口的VBus和板卡主电源之间有耦合外部电源波动会影响USB PHY工作状态。这些原因单独拆开看都不难解决但它们通常“组合作案”所以排查起来需要方法。4.2 一次典型故障的排查链路完整过程去年我帮朋友搞定过一个案例情况和很多群友问的几乎一样新到一批8口USB Hub接4块RK3568板卡同时烧录总是有两块在中途失败报错类似“设备断开”或“下载失败”但每次失败的口不固定随机性很强。我的排查过程是这样的第一步串行测试。先只接一块板卡到这个Hub上烧录重复了5次全部成功。再换另一块板卡也成功。这一步证明板卡本身、固件、工具配置都没问题。第二步接上4块板卡同时烧果然又出现随机掉线。这时候基本排除单板硬件问题把矛头指向Hub或供电。第三步换一个不同品牌的8口有源Hub同样接4块板卡问题仍然偶尔出现。这说明单纯换Hub不治本。第四步检查Hub的电源适配器。发现这个8口Hub配的适配器标称2A但板卡烧录时如果从Hub取电4块板卡峰值电流很容易超过2A。我把板卡改成外部独立电源供电USB线只走数据问题基本上不再出现。第五步为了验证稳定性我又把那根连接主机和Hub的USB线换成了短线并把Hub放在远离电源适配器的位置烧了两轮各4块板卡全程没掉线。这个案例给我的教训很直接并行烧录环境里板卡供电和数据链路必须分开不要指望一个Hub同时解决供电和数据。产线上标准的接线方式是“板卡独立电源适配器供电USB线只传数据”通过治具压接的时候电源和数据也是分开走的。4.3 减少掉线的实用对策结合这些年的经验我把减少烧录掉线的对策整理成几条大家可以直接抄作业给每一块板卡独立供电USB链路只走数据。这是最重要的一条没有之一。使用有源Hub适配器功率宁大勿小。8口Hub至少配3A以上有条件直接上5A。主机和Hub之间用短线、粗线Hub到板卡的线也控制在30厘米以内产线治具最好用探针压接不要用劣质长线。分批上电让USB枚举逐步完成别一次插满。在Windows的电源管理里关掉“USB选择性暂停”设置避免系统在烧录过程中把USB口休眠掉。定期检查Hub的连接可靠性这类设备在产线高强度使用下几个月后USB座子松动的概率很高。这些对策看起来都很基础但产线上的问题恰恰就是这些基础问题叠加出来的。把物理链路整稳定了99%的烧录问题会自动消失。5. 固件里的板级细节设备树、uboot开机动画与摄像头驱动在量产中的角色5.1 一个量产镜像里到底装了些什么在产线上跑量产的人很多并不关心固件内部长什么样但我觉得至少有一个人要懂否则出了问题都不知道找谁。一个RK3568量产镜像拆开看大致包含这些内容loader芯片初始化程序负责引导和USB烧录通信不进系统。parameter分区表定义EMMC上每个分区的起始地址、大小和名字。uboot二级引导程序加载内核同时包含开机的logo或动画资源。dtb设备树二进制描述这块板子的硬件细节比如存不存在某个摄像头、某个网口触摸屏默认横屏还是竖屏。boot内核和ramdisk系统的核心部分。rootfs / super根文件系统承载Android或Linux用户空间的所有文件。量产烧录的本质就是把上面这些文件按parameter定义的布局通过loader一条一条写进存储介质。所以如果你听到研发说“这次改了一下开机动画”“把触摸竖屏改成横屏”“合入了一颗新的以太网PHY芯片”这些改动最终都会反映在重新编译生成的固件包里。产线要做的就是确保烧到板子上的这个固件包和这批板卡的硬件配置完全一致。5.2 研发阶段的功能调整与量产烧录的分工边界很多朋友在群里聊RK3568调试比如ov5695、ov8858这类MIPI CSI摄像头或者bt1120输出、yt6801网卡、EtherCAT实时方案这些都属于研发阶段的工作。以ov5695为例这是一颗500万像素的MIPI摄像头Sensor要在RK3568上点亮它需要设备树里正确配置I2C地址、复位引脚、电源时序、MIPI D-PHY参数并且把对应的驱动编进内核。tyt6801是国产以太网PHY芯片同样需要在设备树里配置PHY地址和模式还要确认内核里合入了对应驱动。这些工作做完、验证通过之后最终产物就是一份“针对当前板型的完整固件”。量产的工程人员和操作员不需要理解ov5695和ov8858在寄存器层面有多大区别也不需要知道bt1120的视频时序是怎么配出来的只需要知道“这批板卡有摄像头就得烧带摄像头驱动的固件那批板卡是接工业相机方案的就得烧EtherCAT对应的内核镜像”。这就是研发和量产的分工边界研发负责把功能做出来量产负责把包含这些功能的固件稳定、高效地烧到每一块板卡上。5.3 多板型产线如何用FactoryTool管理不同固件版本如果你同时生产“带摄像头版”和“不带摄像头版”或者“标准版”和“网口增强版”在烧录环节就要特别小心。FactoryTool允许在一个工程里创建多个配置每个配置绑定一套固件同时对应不同的机器/工位。在实际产线布置上我会这样安排机器1到机器4绑定“标准版固件”机器5到机器8绑定“摄像头版固件”。操作员只需要按照工位SOP把对应板型的板卡放到对应工位上工具自动按工位匹配固件不需要人为去选。这样能很大程度避免“板子是对的固件烧错了”这种返工事故。每个配置文件命名时建议把板卡型号、硬件版本、固件版本都写进去比如T3_20250512_v2.0_CAM。同时固件发布的时候单人负责制研发把固件拷到指定目录产线只从那个目录加载杜绝U盘随插随拷。6. 良率统计与后续提效让量产线越用越顺手6.1 烧录状态与日志管理FactoryTool不只是帮你点个批量烧录它其实是一座信息金矿。每次烧录工具都会记录每块板卡的结果、耗时、失败原因。产线管理最忌讳“靠记忆管质量”哪一批板卡是哪天烧的、用了哪个固件版本、良率是多少这些数据如果工具能生成一定要导出归档。我自己的习惯是每完成一批订单就把FactoryTool的日志和报表按订单号归档保存文件名带上日期和固件版本。这样做的好处是等板子出货后如果出现了批量性问题可以很快回溯到“这批板卡烧录时是否有异常”是硬件问题、固件问题还是烧录环节的问题范围唰一下就缩小了。常见的失败原因可以归纳成几类失败类型常见原因处理建议设备识别不到线材、Hub口、OTG通路问题检查物理链路重启设备枚举loader下载失败板卡供电不稳、MaskRom模式异常检查电源和USB握手时序写存储介质超时EMMC坏块、Hub带宽不足换板卡或降并发数烧录后校验失败数据线质量问题、EMMC异常重新烧录若复现则报废看到日志里某一类错误特别集中时不要只想着“重烧一遍就好了”要顺着根因去查。比如校验失败集中在同一个Hub的同一个口上那问题大概率在Hub口或线材如果分散在各个口那要考虑固件本身或者板卡存储芯片的批量问题。6.2 固件版本迭代的节奏管理产线最怕的其实不是烧录慢而是固件版本混乱。我见过最离谱的情况是同一批50块板子有些烧的是三天前的固件有些烧的是昨天的固件出货后功能表现不一致被客户投诉才发现问题。所以量产线的固件版本管理一定要有固定节奏。我推荐的做法是产线只接受研发发出来的“release固件”不接受任何人用“我改了一个小东西你试试”的临时构建。每次release必须有明确的版本号、改动说明、测试结论。产线换固件版本要先在一个独立工位上试烧三块板卡确认启动正常、功能正常再切换到全线。所有烧录用电脑上的FactoryTool配置统一由一个人维护其他人只有查看和执行权限。这样表面上看起来流程繁琐实际上能防住90%的人为失误。6.3 与产测流程的衔接建议烧录完成只是量产流程的第一步后面通常还有产测。RK3568板卡的产测一般包括开机自检、显示屏点亮、触摸功能、摄像头预览、USB口读写、网口Ping测、EMMC读写速度等。有些工厂还会在产测阶段写入序列号、MAC地址、蓝牙地址等产品信息。FactoryTool本身只负责把固件写入存储介质不负责产测。但烧录这个环节的输出质量直接影响后续产测效率如果烧录出来的系统起不来产测工位就会大量积压不良品。所以我的建议是在烧录和产测之间加一个“开机验证”步骤烧录完成后不要立刻装箱而是让板卡断电重启一次确认系统能正常进入桌面或命令行再做产测。这条建议看着简单实际执行下来能把产测工位的无效工作量减少一半。很多时候烧录工具显示“成功”并不代表板卡真的没问题存储颗粒质量问题、供电不稳导致的分区数据异常都会在启动阶段才暴露出来。从我个人的体会来说FactoryTool这套方案用好了产线烧录这一环确实能变成“插上、点一下、收板”的省心流程。但省心的前提是前期把物理链路、固件管理、流程制度这些基础工作做扎实。工具只是工具真正决定产线顺不顺畅的还是背后这些看不见的细节。