JFlash烧录不知名的ARM芯片

如何添加新芯片,参考的资料为UM08001_JLink.pdf中的第12章——Open Flashloader。
12.1简介
随着可用设备的数量稳步增长,有时还处于早期阶段在MCU开发阶段,只有少数样品/电路板可用,可能不可用提供给第三方(如SEGGER)以增加对新设备的支持。还有存在的设备可能具有机密状态,因此可能不会被提及为受支持还没有公开发行。因此,最好能够添加对新应用程序的支持您自己的设备,而不依赖SEGGER和新版本的J-Link软件包。
J-Link DLL允许客户自己添加对新设备的支持。它也是可以编辑/扩展设备数据库的现有设备,例如添加新设备闪存组(例如,增加对内部EEPROM编程或SPIFI编程的支持等等)。本章介绍如何将新设备添加到DLL中,以及如何将现有设备添加到DLL中可以编辑/扩展。

12.2一般程序
默认情况下,J-Link DLL附带一个内置设备数据库,用于定义哪个设备名称是已知的,因此官方支持的J-Link DLL和软件使用J-Link DLL。此列表也可以在我们的网站上查看:支持的目标设备列表通过在XML中指定新设备,可以将它们添加到当前使用的DLL中文件,命名为JLinkDevices.xml文件. 还可以通过此XML文件从内置设备数据库编辑/扩展设备。DLL正在同一目录中查找此文件J-Link设置文件所在的位置。设置文件的位置取决于使用的IDE/软件。有关的设置文件所在位置的详细信息使用J-Link DLL的各种ide和软件,请参阅SEGGER Wiki:Getting从各种IDE开始。

12.3添加新设备
为了向J-Link DLL添加对新设备的支持,需要添加以下内容到JLinkDevices.xml文件:
在这里插入图片描述
在这里插入图片描述
添加新设备时,标记的以下属性是必需的:
• Vendor
• Name
• Core
如果还添加了标记,则除了前面提到的,必须:
如果还添加了标记,则除了前面提到的,还有以下必须:
ChipInfo-Tag
• WorkRAMAddr
• WorkRAMSize
• FlashBankInfo
FlashBankInfo-Tag
• Name
• BaseAddr
• MaxSize
• Loader
• LoaderType
• AlwaysPresent
有关标记及其属性的更多信息,请参阅XML标记和属性。
要将多个设备添加到设备数据库,只需重复…
每个设备的标签结构。

12.4编辑/扩展现有设备
为了编辑/扩展J-Link内置设备数据库中已有的设备DLL,需要将以下内容添加到JLinkDevices.xml文件:

在这里插入图片描述
标签的属性名必须与内置设备数据库中的设备指定。如果属性BaseAddr的值在内置设备中为现有设备指定现有闪存组的地址数据库中,内置数据库中的flash bank被XML文件中的flash bank替换。
添加新的闪存组时,或者如果内置数据库中的设备没有指定任何到目前为止,添加新设备的属性要求相同。为了更多信息,请参阅添加新设备。
要添加多个闪存组,只需重复<FlashBankInfo…/>>标记结构,在同一标签内。有关标记及其属性的更多信息,请参阅XML标记和属性。

12.5 XML标记和属性
下面将解释有效的XML标记及其可能的属性。
一般规则
•属性只能出现在开始标记内
•属性值必须用引号括起来
在这里插入图片描述
12.5.1
打开XML文件顶级标记。每个XML文件只显示一次。
有效属性
此标记没有属性
笔记
•每个XML文件只能出现一次
•必须通过
12.5.2
打开新设备的说明。
有效属性
此标记没有属性
笔记
•必须通过关闭。
•可能在XML文件中多次出现
12.5.3
指定要添加的设备的基本信息,如它包含的核心等。
有效属性
在这里插入图片描述
指定RAM区域地址的十六进制值可由J-Link在flash编程等过程中使用。设备上的任何dma都不应使用。不可能存在不指定WorkRAMSize。如果没有闪存盘对于新设备,此属性是可选的例,如WorkRAMAddr=“0x20000000”
在这里插入图片描述
12.5.4
指定设备的闪存组。这允许在IDE、调试器和其他使用J-Link DLL的软件(例如J-Link)中使用J-Link闪存下载功能
指挥官)这个装置。然后可以通过普通闪存编程闪存组
下载J-Link DLL的功能。有关flash下载的更多信息,请
请参阅Flash下载。对于新添加的闪存组可能存在的限制等,
请参阅添加。信息/注意事项/限制。
12.5.4.1属性值-LoaderType
以下值对LoaderType属性有效:
•闪光算法类型打开
描述了所使用的算法是一个开放的Flashloader算法。基于CMSIS
算法也通过openflashloader概念得到支持。额外的
有关详细信息,请参见添加。信息/注意事项/限制。

12.6 Example XML file

在这里插入图片描述
12.7添加。信息/注意事项/限制
注意
SEGGER不保证正确的功能,也不提供任何支持
用于定制设备/闪存组。对定制设备使用J-Link支持
已通过XML设备添加的描述文件由用户自行承担风险。

找到Jlink安装目录下的JLinkDevices.xml并打开;
在打开的文件添加如下内容,因为这个文件里没有任何华大的芯片,所以我添加到文件末尾,如果文件已经有同厂家的其它芯片,建议还是放一起,方便维护。效果和代码放下面了,代码的解释在后面!

保存文件就添加完了,可以验证是否如文章开头的效果一样
代码解释
最开始的三行是注释,注释嘛,随便写了,清晰明了就行;
和必须成对出现,而且没有属性表。每个(系列)芯片都对应着这么一对。
ChipInfo是描述芯片的信息,必须在 和内。
参数说明
Vendor芯片厂家的名字,比如这里的"HDSC"就是华大半导体
Name芯片的具体型号,我用的就是HC32L190FCUA
Core芯片的内核,这个必须是JLink支持的内核之一,具体的名字可以在文档里的12.5.3.1 Attribute values - Core章节找到。本文的这颗芯片是M0+的内核,但是列表里没有M0+,所以这里选M0!
WorkRAMAddr芯片RAM的起始地址,这个可以在用户手册里找到,也可以打开SDK里的官方例程,然后在工程配置里找到
WorkRAMSize芯片RAM的大小,同样可以在用户手册里找到,也可以打开SDK里的官方例程,然后在工程配置里找到
Aliases同系列的相同RAM和FLASH的型号,比如华大这里全是同样的配置,我就都加进去了
JLinkScriptFile高级用法,有些芯片操作比较特殊,可以通过脚本去实现,这里我用不上
FlashBankInfo描述芯片的Flash信息,有多块flash的话,每块对应一个FlashBankInfo。
参数说明
Nameflash的名字,名字可以随便起
BaseAddrflash的起始地址,可以在用户手册里找到
MaxSizeflash的大小,可以在用户手册里找到
Loader烧录的算法,segger官方的是.elf格式,.flm是ARM的格式,keil里就用这个。这个路径可以是绝对地址也可以是相对地址,相对地址的话是从JLinkDevices.xml所在的路径为起始地址。本文使用的算法文件是在华大的HDSC.HC32L19X.1.0.0.pack安装后从C:\Keil_v5\ARM\Flash拷贝过来的,没有的文件夹就自己新建
LoaderType必须是12.5.4.1 Attribute values - LoaderType中列出的类型之一,目前只有FLASH_ALGO_TYPE_OPEN一个类型,而*.flm是支持这个类型的
AlwaysPresent指示这个块flash是不是一直存在,本文是内部flash,当然一直存在 。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值