Flash 烧写工具

资源

概述

Image Tool 是 Realtek 官方为 Ameba 系列 SoC 开发的 Flash 烧写工具。

Flash 类型

UART

USB

NOR Flash

支持

支持

Image Tool 的界面如下所示:

../../rst_tools/image_tool/figures/imgtool_image_tool_ui_freertos.png

硬件设置

Flash 烧写的硬件设置如下所示:

../../rst_tools/image_tool/figures/imgtool_hardware_setup_for_image_download_dplus_cn.svg

备注

USB <—> LOGUART: LOGUART 端口可以用于控制台查看设备 log,也可以用于固件烧录

USB <—> USB: USB 端口可以用于固件烧录

客户可以根据设备实际配置,灵活选用端口。

软件设置

  • 环境要求:如 WinXP、Win7 或更高版本、Microsoft .NET Framework 4.0。

  • 软件位置:

    • Image Tool: {SDK}/tools/ameba/ImageTool/AmebaImageTool.exe

    • Device Profile Editor: {SDK}/tools/ameba/DeviceProfileEditor/AmebaDeviceProfileEditor.exe

    • Device profiles: {SDK}/tools/ameba/ImageTool/Devices/Profiles,Device profiles 提供烧写 Flash 所需的设备信息,命名规则为:

      <SoC name>_<OS type>_<Flash type>[_<Extra info>].rdev
      

      其中:

      <SoC name>:

      指代 Realtek Ameba 系列中的具体 SoC 名称。

      <OS type>:

      操作系统类型,包括 FreeRTOS 或 Linux。

      <Flash type>:

      存储类型,为 NOR 或 NAND。

      <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应用程序

备注

具体 Flash 分区信息,请参考 Flash 布局

Flash 烧写

基础参数设置

  • 选择 Device Profile。

    打开 Image Tool, 点击 File > Open 并选择适当的 Device Profile AmebaDplus_FreeRTOS_NOR.rdev

    备注

    Device Profile 加载后会保存在 {ImageTool}/setting.json 文件, 每次重启烧写工具会默认加载,无需重复设置。

  • 选择对应的串口并设定传输波特率。 默认波特率为 1500000。

    备注

    波特率设置之后会保存在 {ImageTool}/setting.json 文件, 每次重启烧写工具会默认加载,无需重复设置。对于通过 USB 进行烧写的情况,忽略波特率。

../../rst_tools/image_tool/figures/imgtool_basic_configuration.png
  • 设备进入烧录模式。

    根据设备所处的状态,进入烧录模式的方法不同,从原理上解释,主要有两种方法:

    • 软件应用(含 ROM)预置了 reboot uartburn 指令,系统通过串口接收到该指令,即使是空片状态,也可以响应指令,使系统进烧录模式。如果设备串口可以正常响应 reboot uartburn 指令,无需额外操作,烧录工具会通过指令使设备自动进烧录模式,直接开始固件下载。

    • 硬件采用电气信号触发,把 LOGUART Tx 引脚接 GND,同时重启设备,最后断开 LOGUART Tx 引脚和 GND。如果设备不能借助软件方法自动进烧录模式,可通过硬件强制进烧录模式。关于 LOGUART Tx 引脚,可以参考 Trap 引脚 章节。

      • Realtek 公板,操作方法如下:

        1. 按下 UART_DOWNLOAD 按钮并保持按下状态。

        2. 按下 CHIP_EN 按钮。

        3. 松开 UART_DOWNLOAD 按钮。

      • 客户定制板,可能没有按钮可用,进入烧录模式方法如下:

        1. LOGUART Tx 引脚接 GND。

        2. 重新接通设备电源。

        3. 断开 LOGUART Tx 引脚和 GND。

      • 可以通过外部 DTR/RTS 控制 LOGUART TxCHIP_EN 引脚, 使设备自动进入烧录模式

        Realtek 公板中,提供了一种与 DTR/RTS 控制相关联的自动进入烧录模式的电路设计方案。该电路默认处于未激活状态,但可通过特定方法使能这一功能(有关启用方法,请参考 自动烧录方案)。一旦使能此功能,硬件板便可自动切换至烧录模式,仅需在工具软件中调整相应的配置参数(具体配置步骤详见 DTR/RTS 配置)。

        此外,客户也可以根据具体需求,自行设计和实现自动进入烧录模式的电路及其时序控制方案。

    此时设备已进入烧录模式,可以开始后续操作。

固件烧写步骤如下所示:

  • 参考 基础参数设置

  • 点击 Browse 按钮选择要烧写的固件。

    备注

    可根据需要调整 Flash layout。 建议通过 Device Profile Editor 而非 Image Tool 调整 Flash layout,并相应修改 SDK 中的 Flash layout。 详情请参阅章节 修改 Device Profile

    工具会把加载的固件保存到 {ImageTool}/setting.json 文件, 每次重启烧录工具之后,如果固件路径没改变,也无需重复加载。

  • 点击 Download 按钮开始烧写。

    进度条将显示当前固件的烧写进度,日志窗口将显示操作状态。

    ../../rst_tools/image_tool/figures/imgtool_image_download_operation_dplus.png

Flash 擦除

擦除 Flash 的步骤如下所示:

  1. 基础参数设置

  2. 选择对应的 Memory Type

  3. ​设置​擦除起始地址。

    • NOR Flash:擦除起始地址值应为 4KB 对齐。

    • NAND Flash:擦除起始地址值应与块大小对齐。

    备注

    NAND Flash 的物理块大小参数请查阅数据手册。

  4. 设置​​擦除范围。

    • NOR Flash:指定擦除数据长度确定擦除范围。擦除大小值应为 4KB 的倍数。

    • NAND Flash:指定擦除截止地址确定擦除范围。擦除截止地址应为块大小的倍数(不擦除截止地址位)。

  1. 点击 Erase 按钮,启动擦除过程。

    操作状态实时显示于日志窗口。

    ../../rst_tools/image_tool/figures/imgtool_nor_flash_erase_operation.png

    备注

    • 固件下载流程已包含自动擦除机制,常规情况下无需单独执行擦除操作

    • 步骤 5 检测到 Flash 块保护状态,请参照章节 Flash 块保护检测 进行异常处理。

Flash 寄存器访问

此功能专为专业技术人员设计,用于访问 Flash 状态寄存器。此功能自版本 v2.2.0 起开始支持。

小心

任何 Flash 寄存器操作(特别是写入操作),必须遵循 Flash 的数据手册规范,否则可能导致 Flash 数据丢失甚至损坏。

访问 Flash 寄存器的准备步骤如下:

  1. 确保 Image Tool 已关闭。

  2. 编辑 <ImageTool>/Setting.json 文件 ExpertMode 的值为非零整数(例如 1),进入 expert mode

  3. 基础参数设置

NOR 或 NAND 寄存器访问的具体操作如下:

除了准备步骤外,点击 Advanced 并选择 NOR Flash Register Access 项,打开 NOR Flash Register 寄存器访问对话框:

../../rst_tools/image_tool/figures/imgtool_nor_flash_register_access.png

在完成准备步骤后,继续下面的步骤来读取 NOR Flash 寄存器:

  1. 选择 Read Command 来读取特定寄存器。

  2. 点击 Read 按钮,寄存器值将在寄存器值文本框中显示。

../../rst_tools/image_tool/figures/imgtool_read_nor_flash_register_operation.png

NAND 坏块管理

NAND 坏块管理功能专为专业技术人员设计,用于扫描或标记 NAND 块状态。此功能自版本 v2.5.10 起开始支持。

执行 NAND 坏块管理的准备步骤:

  1. 确保 Image Tool 已关闭。

  2. 编辑 <ImageTool>/Setting.json 文件 ExpertMode 的值为非零整数(例如 1),进入 expert mode

  3. 参考 基础参数设置

  4. 点击 Advanced 并选择 NAND Flash Bad Block Management 项,打开 NAND Flash 坏块管理对话框:

    ../../rst_tools/image_tool/figures/imgtool_nand_flash_bad_block_management_smart.png

块状态扫描

在完成准备步骤后,继续下面的步骤来扫描块状态:

  1. 根据需要勾选 Check Weak Blocks 复选框。

    • 未选中(默认),Image Tool 仅执行坏块标记扫描,生成不良块列表。

    • 选中,Image Tool 执行全块状态扫描及页级检测,获取块/页详细状态报告,这将比仅扫描坏块花费更多的时间。

  2. 根据需要勾选 Show Bad/Weak Blocks Only 复选框。

    • 未选中(默认),Image Tool 显示所有块的状态信息。

    • 选中,Image Tool 仅输出坏块及弱块状态。(推荐)

  3. 点击 Scan 按钮。

    ../../rst_tools/image_tool/figures/imgtool_scan_nand_flash_block_status_operation_smart.png

    NAND Flash 块状态扫描操作

  4. 扫描结果如下所示:

    • 对于仅坏块扫描结果,坏块会在地址单元中显示为红色背景。

    ../../rst_tools/image_tool/figures/imgtool_nand_flash_bad_block_scan_result_smart.png

    NAND Flash 坏块扫描结果

    • 对于弱块扫描结果, block 的地址单元和 page 的单元将用特殊颜色标记:

      • 对于坏块,block 的地址单元将标记为红色,而 block 的 page 将不会被标记。

      • 对于弱块,block 的地址单元将标记为:

        • 黄色: 存在 page 位翻转警告

        • 橙色: 存在 page 位翻转错误

        • 棕色: 存在严重 page 翻转错误

        • 灰色: 状态扫描导致其他错误

      • 对于弱页,page 的单元将标记为:

        • 黄色: page 读取导致位翻转警告

        • 橙色: page 读取导致位翻转错误

        • 棕色: page 读取导致严重位翻转错误

        • 灰色: page 读取导致其他错误

        ../../rst_tools/image_tool/figures/imgtool_nand_flash_weak_block_scan_result_smart.png

        NAND Flash 弱块扫描结果

块状态标记

在完成块扫描操作后,用户可以根据需要,将特定块的状态标记为“良好”或“损坏”。该功能主要用于内部调试目的。

小心

更改块状态需谨慎,尤其是在将坏块标记为良好的过程中,以免影响存储系统的稳定性和可靠性。

操作步骤:

  • 将非坏块的状态标记为坏块:

    1. 选择一个或多个预期标记的非坏块。

    2. 点击 Mark Bad 按钮,并确认标记操作。

    ../../rst_tools/image_tool/figures/imgtool_mark_nand_flash_block_status_to_bad_smart.png
  • 将坏块的状态标记为良好:

    1. 选择一个或多个预期标记的坏块。

    2. 点击 Mark Good 按钮,并确认标记操作。

    ../../rst_tools/image_tool/figures/imgtool_mark_nand_flash_block_status_to_good_smart.png

Flash 块保护检测

在执行固件烧写或 Flash 擦除操作的过程中,若检测到设备上的 Flash 块存在保护配置,Image Tool 将弹出提示对话框,引导用户选择适当的后续操作。

对于 NOR Flash,系统将显示 Flash 类型和保护寄存器的当前值。

../../rst_tools/image_tool/figures/imgtool_nor.png

系统为用户提供以下后续操作选项:

  • 在保护状态下尝试进行操作(可能导致操作失败)

  • 移除保护,并在操作结束后恢复保护状态

  • 终止当前操作

此外,用户可以通过勾选 Remember the choice of follow-up action 复选框,来保存选择以备后续使用。 如需重置该选择,可取消勾选 Option > Remember Flash Protection Process

修改 Device Profile

修改现有 Device Profile 的步骤如下:

  1. 启动 Device Profile 编辑器。

  2. 点击 Open 按钮,加载现有的 Device Profile。

  3. 根据需要更改 Flash Layout 配置。

    • Image Name: SDK 编译生成的固件名称。

    • Start Address: 十六进制格式的起始地址。对于 NAND Flash,值应与块大小对齐。

    • End Address: 十六进制格式的结束地址。对于 NAND Flash,值应与块大小对齐,分区大小应为块大小的倍数,且需分配适当比例的备用块(至少一个)用于坏块管理。

    • Full Erase: 标识 ImageTool 在固件烧写前是否擦除整个分区。

      • 选中: 完全擦除,通常用于文件系统分区;对于 NAND Flash,所有分区将默认选中且不允许取消选中。

      • 取消选中: 不完全擦除,仅擦除固件文件的实际大小,仅适用于 NOR Flash 的非文件系统分区。

    • Mandatory: 标识 ImageTool 是否默认启用分区进行烧写。

      • 选中: 强制分区,默认启用。

      • 取消选中: 可选分区,默认禁用。

    • Description: 描述文本,用于描述固件,将在鼠标悬停固件时显示此信息。

  4. 点击 Save 按钮以覆盖现有 Device Profile,或点击 Save As 按钮将修改后的 Device Profile 保存到新文件中。

    ../../rst_tools/image_tool/figures/imgtool_edit_an_existing_device_profile.png

固件合成

该功能支持依据相应的偏移量将多个固件文件合并为一个固件文件。此功能自版本 v2.7.10 起开始支持。

固件合成的步骤如下:

  1. 点击 Generate 进入固件合成页面。

  2. 点击 Browse 依次选择需要合成的固件文件,并保持勾选。

  3. Offset 栏中输入各固件文件对应的偏移量。

  4. 点击 Generate 按钮,开始合成。

  5. 在弹窗内选择合成后固件的保存路径,并编辑文件名,点击 保存 按钮完成合成操作。

    ../../rst_tools/image_tool/figures/imgtool_generate_image.png