2024-07-02
GR5526 GUI专题(4) - Lvgl字体的位图数组合并转换为bin文件的说明
写技术文章
精选推荐
Seiyou
本文将介绍如何使用JLink Commander或JFlash下载GR5xxx系列SoC的固件。下面的内容将以Windows操作系统为例,MacOS与Linux系统与Windows操作类似。
请确保电脑上正确安装了SEGGER J-Link软件。
首先打开JLink的安装目录。下面是不同平台的默认安装目录,可以作为参考:
平台 | 默认安装路径 |
---|---|
Windows | C:\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
文件夹中,如图所示:
至此,所有环境准备工作就完成了。
将开发板或芯片通过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。
使用J-Link Commander同样可以下载固件,并且不需要J-Flash License。将芯片/开发板通过JLink连接到电脑,打开J-Link Commander软件:
在命令行中输入connect
连接设备,当出现“Please specify device/core.”字样提示时,输入对应芯片型号并回车。也可以输入?并回车使用图形化界面进行芯片选择:
在提示"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。
利用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
。
打开微信,使用“扫一扫”即可关注