JLink7.70c更高版本驱动添加自定义设备方法

JLink7.70c更高版本驱动添加自定义设备方法

引言
最近研究了下新版本JLink添加不支持设备的方法,对资料进行整理后写下这篇笔记用于记录。
参考资料为UM08001_JLink文档的Open Flashloader章节(文件可在JLink_V780b内找到,之后版本都换成了链接文件)和SEGGER Wiki上的J-Link Device SupportKit(https://wiki.segger.com/J-Link_Device_Support_Kit)章节添加方法。
添加设备的方法为——向JLink指定路径下的JLinkDevices目录中添加XML文件。

JLinkDevices路径
JLinkDevices在不同系统中的路径如下:

image-20240809082808643

如果JLinkDevices目录不存在,则需要自行创建。

JLinkDevices目录结构
官方推荐的JLinkDevices目录结构如下:

image-20240809082846419

其中Vendor代表厂商,DevFamily代表设备系列,Devices代表详细设备。
由于JLink会将JLinkDevices目录下的所有XML文件视为JLinkDevices.xml,所以也可以像旧版本一样用一个JLinkDevices.xml文件进行设备的管理。

XML文件
要添加设备就需要对XML文件进行编辑,XML共有4个元素:

image-20240809082920595

  • 为XML文件的根元素,一个XML文件只能有一个;

  • 用于描述新设备,该元素无属性;

  • 为子元素,用于描述设备的基础信息;

  • 为子元素,用于描述设备的Flash Bank信息;

XML文件大致格式如下:

<Database>
    <Device>
        <ChipInfo
            Vendor="My Vendor"
            Name="My Device1524"
            WorkRAMAddr="0x20000000"
            WorkRAMSize="0x10000"
            Core="JLINK_CORE_CORTEX_M0"/>
        <FlashBankInfo
            Name="My Flash Bank1"
            BaseAddr="0x08000000"
            AlwaysPresent="1">
            <LoaderInfo
                Name="My Flash loader"
                MaxSize="0x30000"
                Loader="Device_128.FLM"
                LoaderType="FLASH_ALGO_TYPE_OPEN"/>
        </FlashBankInfo>
    </Device>
</Database>

ChipInfo
ChipInfo用于描述设备的基础信息,如厂商名、设备名等,具体属性如下:

属性说明
Vendor厂商名
Name设备名
WorkRAMAddrRAM的起始位置
WorkRAMSizeRAM的大小
Core内核型号
JLinkScriptFileJLink脚本文件的路径*(非必要)*

其中Core属性需要输入JLink指定范围内的参数,常用参数如下:

  • JLINK_CORE_CORTEX_M1
  • JLINK_CORE_CORTEX_M3
  • JLINK_CORE_CORTEX_M0
  • JLINK_CORE_CORTEX_M4
  • JLINK_CORE_CORTEX_M7
  • JLINK_CORE_CORTEX_M23

FlashBankInfo
FlashBankInfo用于描述设备的Flash Bank信息,其具体属性如下:

属性说明
Name设备Flash Bank名
BaseAddrFlash Bank的起始位置
AlwaysPresent指定Flash Bank是否始终存在 ,如果为“1”,该Flash Bank会受“erase”命令影响

FlashBankInfo还有一个子元素,该元素用于描述该Flash Bank的Flash Loader信息,其具体元素如下:

属性说明
NameFlash Loader名
MaxSizeFlash烧录范围的大小
Sectorization用于代替FLM/ELF文件中的Sectorization*(非必要)*
LoaderFLM/ELF文件的路径
LoaderTypeFlash Loader的类型,填“FLASH_ALGO_TYPE_OPEN”

添加演示
接下来进行一次”My Device”的新设备添加演示。
首先向/AppData/Roaming/SEGGER/JLinkDevices中准备新设备的目录,并向其中加入FLM下载文件和XML文件

image-20240809083012094

向XML中添加一下设备的描述

<Database>
    <Device>
        <ChipInfo
            Vendor="My Vendor"
            Name="My Device1524"
            WorkRAMAddr="0x20000000"
            WorkRAMSize="0x10000"
            Core="JLINK_CORE_CORTEX_M0"/>
        <FlashBankInfo
            Name="My Flash Bank1"
            BaseAddr="0x08000000"
            AlwaysPresent="1">
            <LoaderInfo
                Name="My Flash loader"
                MaxSize="0x10000"
                Loader="Device_128.FLM"
                LoaderType="FLASH_ALGO_TYPE_OPEN"/>
        </FlashBankInfo>
        <FlashBankInfo
            Name="My Flash Bank2"
            BaseAddr="0x08010000"
            AlwaysPresent="1">
            <LoaderInfo
                Name="My Flash loader"
                MaxSize="0x10000"
                Loader="Device_128.FLM"
                LoaderType="FLASH_ALGO_TYPE_OPEN"/>
        </FlashBankInfo>
        <FlashBankInfo
            Name="My Flash Bank3"  
            BaseAddr="0x08020000"
            AlwaysPresent="1">
            <LoaderInfo
                Name="My Flash loader"
                MaxSize="0x10000"
                Loader="Device_128.FLM"
                LoaderType="FLASH_ALGO_TYPE_OPEN"/>
        </FlashBankInfo>
    </Device>
</Database>

打开JFlash.exe -> Create newproject -> Start J-Flash -> …,在设备列表中查找My Device,显示如下

image-20240809083056761

image-20240809083117632

现在,我们自定义的新设备就添加完成了,实际项目中根据项目设备的信息对其修改即可。

参考
[1] https://blog.csdn.net/u013517122/article/details/127985574 JLink添加新设备用于下载/调试固件
[2] https://blog.csdn.net/weixin_42078116/article/details/121120530 手动添加JLink不支持的芯片
[3] https://blog.csdn.net/m0_37685403/article/details/126758628 Jlink新版驱动安装目录无JLinkDevices.xml添加新器件方法

版权

转载自【JLink】JLink7.70c更高版本驱动添加自定义设备方法 - - 21ic电子技术开发论坛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值