本指南旨在详细指导您如何使用PC电脑上的瑞芯微开发工具,对讯飞智能车进行固件烧录、分区镜像烧写和设备擦除等高级操作。这些操作通常用于系统出现严重问题、需要全新部署固件或进行底层恢复时。
一、所需设备与工具
在开始操作之前,请确保您准备好以下设备和软件:
- PC电脑: 操作系统建议为Windows系统,用于运行瑞芯微开发工具。
- USB数据线: 用于连接智能车与PC电脑。
- 瑞芯微开发工具: 需安装在PC电脑上。本文档中提及的版本为V2.88。
- 智能车设备: 您的讯飞智能车。
- 固件文件:
.img
格式的完整固件包(如update.img
),或分区镜像文件(如Loader
、Uboot
、Boot
、Recovery
、Super
等)以及parameter
文件。
二、技术原理讲解
理解瑞芯微开发工具的工作原理,将帮助您更好地掌握各项烧录操作的目的和可能遇到的问题。
1. 设备模式与引导(Maskrom, Loader, ADB)
瑞芯微芯片的设备通常支持多种工作模式,这些模式决定了PC电脑与设备之间的通信方式和可执行的操作:
- Maskrom 模式: 这是瑞芯微芯片的最低级引导模式。它内置于芯片硬件中,无法被擦除或修改。当设备无法正常启动或固件完全损坏时,通常需要进入
Maskrom
模式来重新烧录引导程序。在此模式下,开发工具可以进行最底层的操作,例如烧录Loader
或执行设备擦除。 - Loader 模式:
Loader
是设备端的升级代码。当设备处于Maskrom
模式时,通常需要先通过PC工具“下载Boot”(即LoaderToDDR
)到设备的DDR内存中,使设备进入Loader
模式。在此模式下,可以执行固件烧录、分区镜像烧写等操作。Loader
烧录操作会生成IDBlock
并写入设备存储。 - ADB (Android Debug Bridge) 模式: 当设备正常启动并开启了USB调试功能时,它会以
ADB
模式连接到PC。此模式主要用于开发调试,例如安装应用、查看日志等,不直接用于固件烧录,但可以通过开发工具从ADB
模式切换到烧录模式。 - MSC/MTP/UVC 等模式: 其他USB连接模式,如大容量存储设备(MSC)、媒体传输协议(MTP)、USB视频类别(UVC)等。这些模式主要用于文件传输或特定功能,需要通过开发工具切换到烧录模式才能进行固件操作。
2. 固件结构与分区烧录
瑞芯微设备的存储通常被划分为多个逻辑分区,每个分区存放特定类型的镜像文件。
- Parameter 文件: 这是一个关键的配置文件,它定义了设备存储的分区表,包括每个分区的名称、起始地址和大小。在烧录分区镜像时,开发工具会根据
parameter
文件来确定每个镜像应该烧录到存储的哪个位置。 - 分区镜像: 对应于
parameter
文件中定义的不同分区,例如:Loader
:设备的引导加载程序,负责启动操作系统。Uboot
:U-Boot,另一个引导加载程序,负责初始化硬件和加载内核。Boot
:Android系统的启动分区,包含内核和ramdisk。Recovery
:恢复模式分区,用于系统恢复、刷机等。Super
:超级分区,可能包含多个动态分区。- 其他:如
Misc
、Dtbo
、vbmeta
等功能分区。
update.img
固件: 这是一个包含所有必要分区镜像和引导文件的完整固件包。它经过特定打包工具(如afptool
)打包,用于设备的整体升级或恢复。使用update.img
烧录通常是最简单和推荐的整体系统恢复方法。开发工具可以“解包固件”来查看其内部组成。
3. 烧录过程概览
无论是烧录分区镜像还是整个固件包,基本流程都遵循以下步骤:
- 连接设备: 将智能车通过USB连接到PC。
- 识别设备模式: 开发工具会自动识别设备的当前模式(Maskrom、Loader、ADB等)。
- 进入烧录模式: 如果设备不在
Maskrom
或Loader
模式,需要手动切换。 - 加载固件/配置: 选择要烧录的
update.img
固件,或导入parameter
文件并配置分区镜像。 - 执行烧录: 工具将文件传输并写入到设备的对应存储区域。
- 验证与重启: 烧录完成后,设备通常会自动重启或需要手动重启以使新固件生效。
三、瑞芯微开发工具PC电脑烧录:手把手教学
本节将详细指导您如何使用瑞芯微开发工具进行各项PC电脑烧录操作。
1. 启动工具与设备连接
- 安装驱动: 首次使用时,请确保在您的PC电脑上安装了瑞芯微USB驱动(通常随开发工具包提供)。正确安装驱动是PC能识别设备的前提。
- 启动瑞芯微开发工具: 在PC电脑上双击运行“瑞芯微开发工具.exe”应用程序。
- 连接智能车: 使用USB数据线将您的讯飞智能车连接到PC电脑。
- 观察设备状态: 工具界面底部会显示当前连接的设备状态,例如“发现一个MASKROM设备”、“发现一个LOADER设备”或“发现一个ADB设备”。
2. 设备模式切换
烧录操作通常需要在 Maskrom
或 Loader
模式下进行。
- 从 ADB/MSC/MTP/UVC 切换到 Rockusb (Maskrom 和 Loader):
- 确保设备已连接并被工具识别(例如显示“发现一个ADB设备”)。
- 在工具界面,找到并点击“切换”按钮。
- 观察设备状态,直至其变为“发现一个MASKROM设备”或“发现一个LOADER设备”。
- 从 Loader 切换到 Maskrom:
- 确保设备已连接并被工具识别为“发现一个LOADER设备”。
- 切换到工具顶部的“高级功能”页签。
- 在“高级功能”区找到并点击“进入Maskrom”按钮。
- 观察设备状态,直至其变为“发现一个MASKROM设备”。
3. 烧录前的配置准备
3.1 创建烧录配置(导入 parameter
文件)
这适用于您需要烧录多个分区镜像,或需要自定义分区内容的情况。
- 在“下载镜像”页签下,找到“下载配置区”(通常是左侧的文件列表区域)。
- 在下载配置区右击鼠标,在弹出的菜单中选择“导入配置”。
- 在弹出的文件选择对话框中,将“文件类型”设置为“ParameterFile(*.txt)”。
- 浏览并选择您的固件包中包含的
parameter.txt
文件,然后点击“打开”。 - 工具会自动根据
parameter
文件中的分区表创建下载项,列出所有分区名称、地址等信息。 - 配置下载文件: 对于每个需要烧录的分区项(例如
Uboot
、Boot
、Recovery
等),双击其“路径”列,选择对应的镜像文件(如uboot.img
、boot.img
、recovery.img
等)。 - (可选)删除不需要的下载项: 如果某些分区不需要烧录,可以选中该项,右击选择“删除”。
- (可选)设置下载到的存储: 如果设备上存在多种存储器件(如 eMMC, SPI NOR),在“存储”列选择对应的目标存储。单存储设备可跳过此步。
- (可选)导出配置: 配置完成后,右击下载配置区,选择“导出配置”,将当前配置保存为
ConfigFile(*.cfg)
,方便下次直接导入使用,无需重复配置。 - (可选)设置自动加载配置: 您可以将
.cfg
文件的路径配置到工具目录下的config.ini
文件中的DEFAULT_IMAGE_CONFIG
项,使工具启动时自动加载该配置。
4. 执行烧录操作
4.1 下载Boot(LoaderToDDR)
当设备处于 Maskrom
模式时,这是进行后续烧录操作的第一步。此操作不会写入设备存储,而是将 Loader
暂时加载到DDR内存中。
- 确保设备已处于“发现一个MASKROM设备”状态。
- 在“下载镜像”页签下,双击下载区第一行的“Loader”项(通常是第一行),在下拉列表中选择“LoaderToDDR”。
- 勾选该项旁边的复选框。
- 点击下方的“执行”按钮。
- 等待提示“Loader Ver:X.XX”出现,表示
Boot
下载成功。
4.2 烧写Loader
此操作会将真正的 Loader
程序烧录到设备的存储中,并生成 IDBlock
。适用于设备 Loader
损坏或需要更新 Loader
版本时。
- 确保设备处于“发现一个MASKROM设备”或“发现一个LOADER设备”状态。
- 在“下载镜像”页签下,双击下载区第一行的“Loader”项,在下拉列表中选择“Loader”。
- 勾选该项旁边的复选框。
- 点击下方的“执行”按钮。
- 等待烧录完成。
4.3 烧录分区镜像
此操作用于将特定分区(如 Uboot
、Boot
等)的镜像文件烧录到设备存储中。每个分区的地址和大小需要通过选择 parameter
文件获取。
- 确保您已经通过 3.1 创建烧录配置 步骤,配置并选择了要烧录的分区镜像文件。
- 确保设备处于“发现一个LOADER设备”或“发现一个MASKROM设备”状态。
- 勾选您需要烧录的分区项旁边的复选框。
- 点击下方的“执行”按钮。
- 等待烧录完成。
4.4 升级固件(烧录完整的 update.img
固件)
这是最常用且简便的整体系统升级或恢复方法。
- 切换到工具顶部的“升级固件”页签。
- 点击“固件”旁边的“…”按钮,选择您的
update.img
固件文件。 - 确保设备已连接并处于“发现一个LOADER设备”状态。
- 点击“升级”按钮。
- 等待固件烧录完成。烧录过程中,工具会显示进度。
5. 高级操作
5.1 设备擦除
擦除操作会清空设备存储上的所有数据。此操作通常用于彻底清除设备内容或解决严重的存储问题。
- 确保设备已进入“Maskrom”模式。如果不在,请参照 2. 设备模式切换 进行操作。
- 确保已成功“下载Boot”(LoaderToDDR),这是在
Maskrom
下进行擦除操作的前提。 - 切换到“高级功能”页签。
- 选择擦除方式:
- 擦除扇区: 根据“起始扇区”和“扇区数”进行扇区擦除。目前只支持eMMC存储。
- 擦除所有: 清空存储上的所有数据,支持eMMC、NOR、NAND等多种存储。
- 点击“擦除扇区”或“擦除所有”按钮执行操作。
5.2 读取固件打包时使用的芯片标识
此功能用于获取固件兼容的芯片信息,在固件烧录失败时用于排查问题。
- 确保设备处于“LOADER”或“MASKROM”模式。
- 切换到“高级功能”页签。
- 点击“读取Chip信息”按钮。
- 在右侧的日志窗口中,您将看到输出的“Image Chip Flag”,这就是打包固件时使用的芯片标识。
5.3 多存储操作(读取存储列表、切换存储)
当设备上存在多个存储器件(如 eMMC, NOR, NAND)时,可以进行以下操作。这些操作需要在 Maskrom
模式下进行,并成功下载 Boot
。
- 确保设备处于“Maskrom”模式,且已成功“下载Boot”。
- 切换到“高级功能”页签。
- 读取存储列表: 点击“读取存储列表”按钮。右侧窗口将显示设备支持的存储列表,例如
Flash(√)
、Emmc(X)
等,其中“√”表示当前选中的存储,“○”表示当前支持的存储,“X”表示不支持的存储。 - 切换存储:
- 从列表中选择要切换的存储(带有“○”标志的表示支持切换)。
- 点击“切换存储”按钮。
5.4 解包固件
此功能可以将 update.img
固件解包到开发工具的 output
目录下,方便您查看固件的组成或提取特定镜像文件。
- 切换到“高级功能”页签。
- 在“固件”字段点击“…”按钮,选择您想要解包的
update.img
文件。 - 点击“解包”按钮。
- 解包完成后,您可以在工具安装目录下的
output
文件夹中找到解包后的文件。通常:boot.bin
是打包时的loader
。firmware.img
是打包时的afptool
生成的固件。Android
目录下为firmware.img
的展开内容。
5.5 多设备选择
当有多个瑞芯微设备同时连接到PC时,您可以通过设备下拉列表选择要操作的特定设备。
- 在工具界面底部右侧,找到设备状态显示区域,通常会有一个下拉列表,显示当前连接的所有设备(例如“1-10 MASKROM”中的“1-10”代表设备数量)。
- 点击下拉列表,选择您想要操作的设备。
四、常见问题与故障排除
在使用瑞芯微开发工具时,可能会遇到以下问题。
- “请检查DDR或者主控,重试请先重启设备”: 这通常指示DDR内存或主控芯片可能存在问题。尝试重新连接设备,并重启智能车。
- “请检查USB,重试请先重启设备” / “通讯异常”: 检查USB数据线是否良好,尝试更换USB端口或数据线。重启PC和智能车后重试。如果问题持续出现,可能是设备端USB接口或通讯电路问题。
- “请检查Flash是否在支持列表或者硬件虚焊”: 确认设备的Flash存储芯片型号是否在瑞芯微开发工具的支持列表中。如果支持,则可能是硬件连接不良或虚焊导致的问题。
- “固件中芯片标志不正确”: 这意味着您尝试烧录的固件与设备的芯片型号不兼容。使用“高级功能”中的“读取Chip信息”获取正确的芯片标识(Image Chip Flag),然后重新生成或获取兼容的固件。
- “请检查镜像文件是否存在或被占用” / “固件是否存在或者被占用”: 确保您选择的镜像或固件文件存在于指定路径,并且没有被其他程序(如压缩软件、文件浏览器等)打开或占用。
- “分区定义过小,镜像过大的情况” / “固件中存在分区定义过小,镜像过大的情况”: 这表示
parameter
文件中定义的分区大小不足以容纳您尝试烧录的镜像文件。需要修改parameter
文件以调整分区大小,或使用更小尺寸的镜像。 - “固件标识错误” / “固件摘要检查失败” / “固件读取失败”: 这些错误通常表明固件文件已损坏、不完整或被篡改。建议重新下载或获取一份完整的、未经修改的固件文件。