手动添加JLink不支持的芯片

手动添加JLink不支持的芯片

背景

市场上的新芯片层出不穷,JLink的官方支持不可能完全跟得上,这就尴尬了。但是好在Segger在设计时就想到了这一点,允许用户自己添加新芯片或扩展官方已经支持的芯片。本文只讲如何添加新芯片,参考的资料为UM08001_JLink.pdf中的第12章——Open Flashloader

最终效果

在添加前,JFlash里找不到BARROT的任何型号,

添加后如下图
在这里插入图片描述

添加方法

  • 找到Jlink安装目录下的JLinkDevices.xml并打开;

  • 默认位置C:\Program Files\SEGGER\JLink

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

      <!--                  -->
      <!-- BARROT (BR8551) -->
      <!--                  -->
      <Device>
        <ChipInfo Vendor="BARROT" Name="BR8551" Core="JLINK_CORE_CORTEX_M3" WorkRAMAddr="0x2000C000" WorkRAMSize="0x00004000"/>
        <FlashBankInfo Name="ROM" BaseAddr="0x00000000" MaxSize="0x00060000" Loader="下载算法" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
        <FlashBankInfo Name="LR_IROM1" BaseAddr="0x10000000" MaxSize="0x00080000" Loader="下载算法" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
      </Device>
    
    • 保存文件就添加完了,可以验证是否如文章开头的效果一样

代码解释

  • 最开始的三行是注释,注释嘛,随便写了,清晰明了就行;
  • <Device></Device>必须成对出现,而且没有属性表。每个(系列)芯片都对应着这么一对。
  • ChipInfo是描述芯片的信息,必须在 <Device></Device>内。
参数说明
Vendor芯片厂家的名字,比如这里的"BARROT"
Name芯片的具体型号,我用的就是BR8551
Core芯片的内核,这个必须是JLink支持的内核之一,具体的名字可以在文档里的12.5.3.1 Attribute values - Core章节找到。
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所在的路径为起始地址。
LoaderType必须是12.5.4.1 Attribute values - LoaderType中列出的类型之一,目前只有FLASH_ALGO_TYPE_OPEN一个类型,而*.flm是支持这个类型的
AlwaysPresent指示这个块flash是不是一直存在,本文是内部flash,当然一直存在

参考

工欲善其事,必先利其器:动手给JLink添加官方不支持的芯片

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值