JFLASH添加华大型号详细教程

先声明,本文参考了以下两处文章,结合他们的内容做出总结和调整,并加入自己摸索得出的一些细节。

修改配置文件添加华大型号文章。

使用Jflash给华大半导体的MCU烧录程序_荻夜的博客-CSDN博客_华大jflash前言因 ST 单片机的疯狂涨价,国产单片机迎来了一个非常好的发展契机,项目上的 STM32F103VET6 因为缺货,正式将硬件方案修改为华大半导体的MCU(HC32F460PETB),程序移植好了之后,手里一直用的是JLINK调试,使用JFLASH下载程序,但是官方的JFLASH是不支持华大的MCU的,我们通过官方提供的算法文件,并且在JFLASH的设备列表中添加华大的MCU。JFLASH添加华大MCU的方法将华大半导体官方提供的算法文件复制到JLink的软件按键目录下D:\Programhttps://blog.csdn.net/u012121390/article/details/114890761配置文件详细解释文章

华大 MCU 之一 ST MCU 移到 华大 MCU HC32F460 记录 - 灰信网(软件开发博客聚合)https://www.freesion.com/article/43431393908/好了,现在开始我们的详细完整教程。

 以HC32F460为例,其他型号同样操作:

  1. 获取华大算法文件。安装HC32F460_IDE_Rev1.0.8支持包,可以从华大官方网站下载

安装支持包,安装完成后会在KEIL5安装目录下出现HDSC文件夹。

 在D:\KEIL5\HDSC\HC32F460\1.0.8\FlashARM目录下包含了HC32F460型号算法文件。

2、复制 算法文件到JFLASH安装目录下的Devices文件夹。

直接复制DHSC文件夹 到Devices文件夹目录下。这里我的JFLASH安装目录为C:\Program Files (x86)\SEGGER\JLink。注意自己的安装目录。

3、修改配置文件,添加华大型号

 打开JFLASH安装目录下的JLinkDevices.XML文件,可以使用记事本打开或者notepad++打开,个人习惯用notepad++,比较直观。在文件后面,</DataBase>字段之前,添加如下代码,注意Loader="Devices\HDSC\HC32F460\1.0.8\FlashARM/HC32F460_512K.FLM"。是刚刚复制过来算法文件的相对路径,要填写正确。

<!--                 -->
<!-- HDSC (HC32)     -->
<!--                 -->
<Device>
    <ChipInfo Vendor="HDSC" Name="HC32F46x"  WorkRAMAddr="0x20000000" WorkRAMSize="0x10000" Core="JLINK_CORE_CORTEX_M4"/>
    <FlashBankInfo Name="Flash_512K" BaseAddr="0x0" MaxSize="0x80000" Loader="Devices\HDSC\HC32F460\1.0.8\FlashARM/HC32F460_512K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>

添加代码后如下所示。

 保存,完毕,你现在可以使用JFLASH烧录华大型号的HEX文件啦,试试吧,亲测有效。

4、添加代码解释。

(1)最开始的三行是注释 。

(2)<Device></Device>必须成对出现,而且没有属性表。每个(系列)芯片都对应着这么一对。

(3)ChipInfo是描述芯片的信息,必须在 <Device></Device>内。

参数说明
Vendor芯片厂家的名字,比如这里的"HDSC"就是华大半导体
Name芯片的具体型号,我用的就是HC32F460JETA
WorkRAMAddr芯片RAM的起始地址,这个可以在用户手册里找到,也可以打开SDK里的官方例程,然后在工程配置里找到
WorkRAMSize芯片RAM的大小,同样可以在用户手册里找到,也可以打开SDK里的官方例程,然后在工程配置里找到
Core

芯片的内核,这个必须是JLink支持的内核之一,本文的这颗芯片是M4的内核。

 (4)FlashBankInfo描述芯片的Flash信息,有多块flash的话,每块对应一个FlashBankInfo

参数说明
Nameflash的名字,名字可以随便起
BaseAddrflash的起始地址,可以在用户手册里找到
MaxSizeflash的大小,可以在用户手册里找到
Loader烧录的算法,segger官方的是.elf格式,.flm是ARM的格式,keil里就用这个。这个路径可以是绝对地址也可以是相对地址,相对地址的话是从JLinkDevices.xml所在的路径为起始地址
LoaderType必须是12.5.4.1 Attribute values - LoaderType中列出的类型之一,目前只有FLASH_ALGO_TYPE_OPEN一个类型,而*.flm是支持这个类型的
AlwaysPresent指示这个块flash是不是一直存在,本文是内部flash,当然一直存在


版权声明:本文为qq_42790070原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。