CN / EN
CN / EN

写技术文章

如何使用JLink Commander或JFlash下载GR5xxx系列SoC的固件

Seiyou

汇顶员工
2025-01-03 10:29:43

0.简介

本文将介绍如何使用JLink Commander或JFlash下载GR5xxx系列SoC的固件。下面的内容将以Windows操作系统为例,MacOS与Linux系统与Windows操作类似。

1.环境准备

请确保电脑上正确安装了SEGGER J-Link软件。

首先打开JLink的安装目录。下面是不同平台的默认安装目录,可以作为参考:

平台默认安装路径
WindowsC:\Program Files (x86)\SEGGER\JLink
Linux/opt/SEGGER/JLink
MacOS/Applications/JLink

在JLink的安装目录下找到JLinkDevices.xml文件,并使用编辑器打开并在</DataBase>之前插入如下内容:

<Device>

    <ChipInfo Vendor="Goodix" Name="GR551x" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x30000000" WorkRAMSize="0x8000" />

    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />

  </Device>

  <Device>

    <ChipInfo Vendor="Goodix" Name="GR5525" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" />

    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />

  </Device>

  <Device>

    <ChipInfo Vendor="Goodix" Name="GR5526" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" />

    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />

  </Device>

  <Device>

    <ChipInfo Vendor="Goodix" Name="GR533x" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" />

    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />

  </Device>

完成后效果如图所示(不同版本JLink文件内容会有所不同,只关注添加的部分即可)

如果没有找到这一文件,则需要自行创建并写入下面的内容:

<DataBase>
  <Device>
    <ChipInfo Vendor="Goodix" Name="GR551x" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x30000000" WorkRAMSize="0x8000" />
    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />
  </Device>
  <Device>
    <ChipInfo Vendor="Goodix" Name="GR5525" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" />
    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />
  </Device>
  <Device>
    <ChipInfo Vendor="Goodix" Name="GR5526" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" />
    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />
  </Device>
  <Device>
    <ChipInfo Vendor="Goodix" Name="GR533x" Core="JLINK_CORE_CORTEX_M4" WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" />
    <FlashBankInfo Name="Internal Flash" LoaderType="FLASH_ALGO_TYPE_OPEN" Loader="Devices/Goodix/GR5xxx_16MB_Flash.FLM" BaseAddr="0x00200000" MaxSize="0x40000000" />
  </Device>
</DataBase>

修改完成保存后,在JLink安装目录下找到并进入Devices文件夹(如果没有则需要创建),在该文件夹中创建一个名为Goodix的文件夹,并将SDK中<SDK_Folder>/build/keil/GR5xxx_16MB_Flash.FLM文件拷贝到刚才创建的Goodix文件夹中,如图所示:

至此,所有环境准备工作就完成了。

2.使用JFlash烧录固件

将开发板或芯片通过JLink连接到电脑,打开J-Flash软件,选择“Create a new project”,点击"Start J-Flash",如图所示:

在弹出的"Create New Project"对话框中,点击"Target Device"旁边的按钮,选择对应的芯片型号。选择完成后确认"Target Interface"选择的是"SWD",如图所示:

project创建完成后,将编译得到的Hex文件拖入J-Flash中(或通过菜单File -> Open data file加载),点击菜单Target -> Connect连接到芯片,连接成功后点击菜单Target -> Production Programming来下载固件。

需要注意的是,Starter Kit板载的J-Link OB并没有包含J-Flash的License,故使用开发板会弹出如图的提示。出现该提示时请自行购买J-Flash License。

3.使用J-Link Commander下载固件

使用J-Link Commander同样可以下载固件,并且不需要J-Flash License。将芯片/开发板通过JLink连接到电脑,打开J-Link Commander软件:

在命令行中输入connect连接设备,当出现“Please specify device/core.”字样提示时,输入对应芯片型号并回车。也可以输入?并回车使用图形化界面进行芯片选择:

image.png

在提示"Please specify target interface:"时输入"S"并回车选择"SWD"接口,在提示“Specify target interface speed [kHz].”时直接回车使用默认值。此时JLink会尝试连接芯片,连上之后如图所示:

在J-Link Commander中依次输入下面的内容来下载并运行固件:

r
halt
loadfile <path_to_firmware> <load_address>

如图所示:

开始下载固件后会弹出如图对话框表示进度:

下载完成后会提示OK:

此时可以执行go来运行固件,也可以直接手动复位开发板来运行固件。

如果提示下载不成功或是下载后无法正常运行,请尝试更新J-Link软件版本。目前已知的最低支持的J-Link版本为6.51a

4.使用脚本结合J-Link Commander简化固件下载

利用J-Link Commander的CommandFile功能,可以将上述内容编写成脚本简化下载流程。

首先创建一个flash.jlink脚本文件,输入以下内容,注意替换固件路径和下载地址:

r
halt
loadfile <path_to_firmware> <load_address>
go
exit

然后就可以通过在命令行调用J-Link Commander执行脚本来完成下载:

<jlink_executable> -AutoConnect 1 -Device <device> -If SWD -Speed 4000 -CommandFile flash.jlink

如图所示:

需要注意的是,在Linux与MacOS平台下,J-Link Commander的可执行文件名为JLinkExe,而在Windows下为JLink


0收藏

0赞成

您的评论
我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注