Flash 烧写工具
资源
概述
Image Tool 是 Realtek 官方为 Ameba 系列 SoC 开发的 Flash 烧写工具。
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
支持 |
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
不支持 |
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
不支持 |
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
不支持 |
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
不支持 |
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
支持 |
NAND Flash |
支持 |
支持 |
Flash 类型 |
UART |
USB |
|---|---|---|
NOR Flash |
支持 |
支持 |
Image Tool 的界面如下所示:
硬件设置
Flash 烧写的硬件设置如下所示:
备注
USB <---> LOGUART: LOGUART 端口可以用于控制台查看设备 log,也可以用于固件烧录
USB <---> USB: USB 端口可以用于固件烧录
客户可以根据设备实际配置,灵活选用端口。
软件设置
环境要求:如 WinXP、Win7 或更高版本、Microsoft .NET Framework 4.0。
软件位置:
Image Tool:
{SDK}/tools/ameba/ImageTool/AmebaImageTool.exeDevice Profile Editor:
{SDK}/tools/ameba/DeviceProfileEditor/AmebaDeviceProfileEditor.exe
Device profiles:
{SDK}/tools/ameba/ImageTool/Devices/Profiles,Device profiles 提供烧写 Flash 所需的设备信息,命名规则为:<SoC name>[_<SDK type>][_<Flash type>][_<Extra info>].rdev
其中:
- <SoC name>:
支持的 Realtek Ameba SoC 名称。
- <SDK type>:
支持的 SDK 类型,例如 FreeRTOS、Linux、Zephyr,可选,如未指定,默认支持 FreeRTOS 和 Zephyr。
- <Flash type>:
支持的 Flash 类型,例如 NOR 或 NAND,可选,如未指定,默认支持 NOR Flash。
- <Extra info>:
额外信息,如 Flash 的容量、具体应用等相关附加信息,可选。
备注
在后续章节中,
{ImageTool}将用于指代{SDK}/tools/ameba/ImageTool。如需通过 LOGUART 接口烧写 Flash,需预先安装板载 USB 转 UART 适配器(例如 PL2303GC )的主控制器驱动, 相关驱动请至相应 USB 转 UART 适配器厂商官方网站获取。
针对 Windows XP 或 Windows 7 系统,如需通过 USB 接口烧写 Flash,请先安装 USB 驱动
ImageTool/RtkUsbCdcAcmSetup.INF。
固件文件
固件名称 |
描述 |
是否必需? |
|---|---|---|
km4_boot_all.bin |
KM4 引导程序 |
是 |
km0_km4_app.bin |
KM0/KM4 应用程序 |
是 |
km0_km4_app_mp.bin |
KM0/KM4 MP应用程序 |
否 |
固件名称 |
描述 |
是否必需? |
|---|---|---|
km4_boot_all.bin |
KM4 引导程序 |
是 |
kr4_km4_app.bin |
KR4/KM4 应用程序 |
是 |
kr4_km4_app_mp.bin |
KR4/KM4 MP应用程序 |
否 |
固件名称 |
描述 |
是否必需? |
|---|---|---|
km4_boot_all.bin |
KM4 引导程序 |
是 |
kr4_km4_app.bin |
KR4/KM4 应用程序 |
是 |
kr4_km4_app_mp.bin |
KR4/KM4 MP应用程序 |
否 |
固件名称 |
描述 |
是否必需? |
|---|---|---|
km4_boot_all.bin |
KM4 引导程序 |
是 |
kr4_km4_app.bin |
KR4/KM4 应用程序 |
是 |
kr4_km4_app_mp.bin |
KR4/KM4 MP应用程序 |
否 |
DSP 相关内容,请参考 DSP 编译和烧录 。
固件名称 |
描述 |
是否必需? |
|---|---|---|
km4_boot_all.bin |
KM4 引导程序 |
是 |
kr4_km4_app.bin |
KR4/KM4 应用程序 |
是 |
kr4_km4_app_mp.bin |
KR4/KM4 MP应用程序 |
否 |
DSP 相关内容,请参考 DSP 编译和烧录 。
固件名称 |
描述 |
是否必需? |
|---|---|---|
km4_boot_all.bin |
KM4 引导程序 |
是 |
km0_km4_ca32_app.bin |
KM0/KM4/CA32 应用程序 |
是 |
固件名称 |
描述 |
是否必需? |
|---|---|---|
A: km4_boot_all.bin |
A 槽:KM4 引导程序 |
是 |
A: km0_km4_app.bin |
A 槽:KM0/KM4 应用程序 |
是 |
A: boot.img |
A 槽:CA32 固件包,包括 BL1、BL2、BL32 和 BL33 |
是 |
B: km4_boot_all.bin |
B 槽:KM4 引导程序 |
否 |
B: km0_km4_app.bin |
B 槽:KM0/KM4 应用程序 |
否 |
B: boot.img |
B 槽:CA32 固件包,包括 BL1、BL2、BL32 和 BL33 |
否 |
A: vbmeta.img |
A 槽:仅用于安全启动的 AP Linux 元数据固件 |
否 |
B: vbmeta.img |
B 槽:仅用于安全启动的 AP Linux 元数据固件 |
否 |
A: xxx.dtb* |
A 槽:AP Linux DTB (设备树块) |
是 |
B: xxx.dtb* |
B槽:用于恢复的AP Linux DTB |
否 |
A: kernel.img |
A 槽:AP Linux 内核 |
是 |
B: kernel.img |
B 槽:AP Linux 内核 |
否 |
rootfs.img |
AP Linux 根文件系统二进制文件 |
是 |
userdata.img |
AP 用户数据二进制文件 |
是 |
备注
* : xxx.dtb 文件需要根据实际使用选择合适的 dtb 文件。
固件名称 |
描述 |
是否必需? |
|---|---|---|
amebagreen2_boot.bin |
amebagreen2 引导程序 |
是 |
amebagreen2_app.bin |
amebagreen2 应用程序 |
是 |
备注
具体 Flash 分区信息,请参考 Flash 布局 。
Flash 烧写
基础参数设置
选择 Device Profile。
打开 Image Tool, 点击 并选择适当的 Device Profile
RTL8721Dx.rdev。打开 Image Tool, 点击 并选择适当的 Device Profile
RTL8720E.rdev。打开 Image Tool, 点击 并选择适当的 Device Profile
RTL8710F.rdev。打开 Image Tool, 点击 并选择适当的 Device Profile
RTL8726E.rdev。打开 Image Tool, 点击 并选择适当的 Device Profile
RTL8713E.rdev。打开 Image Tool, 点击 并选择适当的 Device Profile。
对于 NOR Flash SoC,选择
RTL8730E_NOR.rdev对于 NAND Flash SoC,选择
RTL8730E_NAND.rdev
打开 Image Tool, 点击 并选择适当的 Device Profile。
对于 NOR Flash SoC,选择
RTL8721F_NOR.rdev对于 NAND Flash SoC,选择
RTL8721F_NAND.rdev
备注
Device Profile 加载后会保存在
{ImageTool}/setting.json文件, 每次重启烧写工具会默认加载,无需重复设置。选择对应的串口并设定传输波特率。 默认波特率为 1500000。
备注
波特率设置之后会保存在
{ImageTool}/setting.json文件, 每次重启烧写工具会默认加载,无需重复设置。对于通过 USB 进行烧写的情况,忽略波特率。
设备进入烧录模式。
根据设备所处的状态,进入烧录模式的方法不同,从原理上解释,主要有两种方法:
软件应用(含 ROM)预置了 reboot uartburn 指令,系统通过串口接收到该指令,即使是空片状态,也可以响应指令,使系统进烧录模式。如果设备串口可以正常响应 reboot uartburn 指令,无需额外操作,烧录工具会通过指令使设备自动进烧录模式,直接开始固件下载。
硬件采用电气信号触发,把
LOGUART Tx引脚接 GND,同时重启设备,最后断开LOGUART Tx引脚和 GND。如果设备不能借助软件方法自动进烧录模式,可通过硬件强制进烧录模式。关于LOGUART Tx引脚,可以参考 Trap 引脚 章节。Realtek 公板,操作方法如下:
按下 UART_DOWNLOAD 按钮并保持按下状态。
按下 CHIP_EN 按钮。
松开 UART_DOWNLOAD 按钮。
客户定制板,可能没有按钮可用,进入烧录模式方法如下:
LOGUART Tx引脚接 GND。重新接通设备电源。
断开
LOGUART Tx引脚和 GND。
可以通过外部 DTR/RTS 控制
LOGUART Tx和CHIP_EN引脚, 使设备自动进入烧录模式Realtek 公板中,提供了一种与 DTR/RTS 控制相关联的自动进入烧录模式的电路设计方案。该电路默认处于未激活状态,但可通过特定方法使能这一功能(有关启用方法,请参考 自动烧录方案)。一旦使能此功能,硬件板便可自动切换至烧录模式,仅需在工具软件中调整相应的配置参数(具体配置步骤详见 DTR/RTS 配置)。
此外,客户也可以根据具体需求,自行设计和实现自动进入烧录模式的电路及其时序控制方案。
此时设备已进入烧录模式,可以开始后续操作。
固件烧写步骤如下所示:
参考 基础参数设置
点击 按钮选择要烧写的固件。
备注
可根据需要调整 Flash layout。 建议通过
Device Profile Editor而非Image Tool调整 Flash layout,并相应修改 SDK 中的 Flash layout。 详情请参阅章节 修改 Device Profile 。工具会把加载的固件保存到
{ImageTool}/setting.json文件, 每次重启烧录工具之后,如果固件路径没改变,也无需重复加载。点击 按钮开始烧写。
固件烧写步骤如下所示:
参考 基础参数设置
点击 按钮选择要烧写的固件。
备注
可根据需要调整 Flash layout。 建议通过
Device Profile Editor而非Image Tool调整 Flash layout,并相应修改 SDK 中的 Flash layout。 详情请参阅章节 修改 Device Profile 。点击 按钮开始烧写。
Flash 擦除
擦除 Flash 的步骤如下所示:
基础参数设置 。
选择对应的 。
设置擦除起始地址。
NOR Flash:擦除起始地址值应为 4KB 对齐。
NAND Flash:擦除起始地址值应与块大小对齐。
备注
NAND Flash 的物理块大小参数请查阅数据手册。
设置擦除范围。
NOR Flash:指定擦除数据长度确定擦除范围。擦除大小值应为 4KB 的倍数。
NAND Flash:指定擦除截止地址确定擦除范围。擦除截止地址应为块大小的倍数(不擦除截止地址位)。
点击 按钮,启动擦除过程。
操作状态实时显示于日志窗口。
备注
固件下载流程已包含自动擦除机制,常规情况下无需单独执行擦除操作
如 步骤 5 检测到 Flash 块保护状态,请参照章节 Flash 块保护检测 进行异常处理。
Flash 寄存器访问
此功能专为专业技术人员设计,用于访问 Flash 状态寄存器。此功能自版本 v2.2.0 起开始支持。
小心
任何 Flash 寄存器操作(特别是写入操作),必须遵循 Flash 的数据手册规范,否则可能导致 Flash 数据丢失甚至损坏。
访问 Flash 寄存器的准备步骤如下:
确保 Image Tool 已关闭。
编辑
<ImageTool>/Setting.json文件 ExpertMode 的值为非零整数(例如 1),进入 expert mode 。基础参数设置 。
NOR 或 NAND 寄存器访问的具体操作如下:
NAND 坏块管理
NAND 坏块管理功能专为专业技术人员设计,用于扫描或标记 NAND 块状态。此功能自版本 v2.5.10 起开始支持。
执行 NAND 坏块管理的准备步骤:
确保 Image Tool 已关闭。
编辑
<ImageTool>/Setting.json文件 ExpertMode 的值为非零整数(例如 1),进入 expert mode 。参考 基础参数设置 。
点击 并选择 项,打开 NAND Flash 坏块管理对话框:
块状态扫描
在完成准备步骤后,继续下面的步骤来扫描块状态:
根据需要勾选 复选框。
未选中(默认),Image Tool 仅执行坏块标记扫描,生成不良块列表。
选中,Image Tool 执行全块状态扫描及页级检测,获取块/页详细状态报告,这将比仅扫描坏块花费更多的时间。
根据需要勾选 复选框。
未选中(默认),Image Tool 显示所有块的状态信息。
选中,Image Tool 仅输出坏块及弱块状态。(推荐)
点击 按钮。
NAND Flash 块状态扫描操作
扫描结果如下所示:
对于仅坏块扫描结果,坏块会在地址单元中显示为红色背景。
NAND Flash 坏块扫描结果
对于弱块扫描结果, block 的地址单元和 page 的单元将用特殊颜色标记:
对于坏块,block 的地址单元将标记为红色,而 block 的 page 将不会被标记。
对于弱块,block 的地址单元将标记为:
黄色: 存在 page 位翻转警告
橙色: 存在 page 位翻转错误
棕色: 存在严重 page 翻转错误
灰色: 状态扫描导致其他错误
对于弱页,page 的单元将标记为:
黄色: page 读取导致位翻转警告
橙色: page 读取导致位翻转错误
棕色: page 读取导致严重位翻转错误
灰色: page 读取导致其他错误
NAND Flash 弱块扫描结果
块状态标记
在完成块扫描操作后,用户可以根据需要,将特定块的状态标记为“良好”或“损坏”。该功能主要用于内部调试目的。
小心
更改块状态需谨慎,尤其是在将坏块标记为良好的过程中,以免影响存储系统的稳定性和可靠性。
操作步骤:
Flash 块保护检测
在执行固件烧写或 Flash 擦除操作的过程中,若检测到设备上的 Flash 块存在保护配置,Image Tool 将弹出提示对话框,引导用户选择适当的后续操作。
系统为用户提供以下后续操作选项:
在保护状态下尝试进行操作(可能导致操作失败)
移除保护,并在操作结束后恢复保护状态
终止当前操作
此外,用户可以通过勾选 复选框,来保存选择以备后续使用。 如需重置该选择,可取消勾选 。
修改 Device Profile
修改现有 Device Profile 的步骤如下:
启动 Device Profile 编辑器。
点击 Open 按钮,加载现有的 Device Profile。
根据需要更改
Flash Layout配置。Image Name: SDK 编译生成的固件名称。Start Address: 十六进制格式的起始地址。对于 NAND Flash,值应与块大小对齐。End Address: 十六进制格式的结束地址。对于 NAND Flash,值应与块大小对齐,分区大小应为块大小的倍数,且需分配适当比例的备用块(至少一个)用于坏块管理。Full Erase: 标识 ImageTool 在固件烧写前是否擦除整个分区。选中: 完全擦除,通常用于文件系统分区;对于 NAND Flash,所有分区将默认选中且不允许取消选中。
取消选中: 不完全擦除,仅擦除固件文件的实际大小,仅适用于 NOR Flash 的非文件系统分区。
Mandatory: 标识 ImageTool 是否默认启用分区进行烧写。选中: 强制分区,默认启用。
取消选中: 可选分区,默认禁用。
Description: 描述文本,用于描述固件,将在鼠标悬停固件时显示此信息。
点击 Save 按钮以覆盖现有 Device Profile,或点击 Save As 按钮将修改后的 Device Profile 保存到新文件中。
固件合成
该功能支持依据相应的偏移量将多个固件文件合并为一个固件文件。此功能自版本 v2.7.10 起开始支持。
固件合成的步骤如下: