Search K
Appearance
Appearance
最近研究了下新版本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目录不存在,则需要自行创建。
官方推荐的JLinkDevices目录结构如下:
其中Vendor代表厂商,DevFamily代表设备系列,Devices代表详细设备。 由于JLink会将JLinkDevices目录下的所有XML文件视为JLinkDevices.xml,所以也可以像旧版本一样用一个JLinkDevices.xml文件进行设备的管理。
要添加设备就需要对XML文件进行编辑,XML共有4个元素:
<Database>
为XML文件的根元素,一个XML文件只能有一个<Database>
;
<Device>
用于描述新设备,该元素无属性;
<ChipInfo>
为<Device>
子元素,用于描述设备的基础信息;
<FlashBankInfo>
为<Device>
子元素,用于描述设备的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用于描述设备的基础信息,如厂商名、设备名等,具体属性如下:
属性 | 说明 |
---|---|
Vendor | 厂商名 |
Name | 设备名 |
WorkRAMAddr | RAM的起始位置 |
WorkRAMSize | RAM的大小 |
Core | 内核型号 |
JLinkScriptFile | JLink脚本文件的路径*(非必要)* |
其中Core属性需要输入JLink指定范围内的参数,常用参数如下:
FlashBankInfo用于描述设备的Flash Bank信息,其具体属性如下:
属性 | 说明 |
---|---|
Name | 设备Flash Bank名 |
BaseAddr | Flash Bank的起始位置 |
AlwaysPresent | 指定Flash Bank是否始终存在 ,如果为“1”,该Flash Bank会受“erase”命令影响 |
FlashBankInfo还有一个子元素<Loader>
,该元素用于描述该Flash Bank的Flash Loader信息,其具体元素如下:
属性 | 说明 |
---|---|
Name | Flash Loader名 |
MaxSize | Flash烧录范围的大小 |
Sectorization | 用于代替FLM/ELF文件中的Sectorization*(非必要)* |
Loader | FLM/ELF文件的路径 |
LoaderType | Flash Loader的类型,填“FLASH_ALGO_TYPE_OPEN” |
添加演示 接下来进行一次”My Device”的新设备添加演示。 首先向/AppData/Roaming/SEGGER/JLinkDevices中准备新设备的目录,并向其中加入FLM下载文件和XML文件
向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,显示如下
现在,我们自定义的新设备就添加完成了,实际项目中根据项目设备的信息对其修改即可。
[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添加新器件方法