现在大部分国产的单片机都支持KEIL开发,同时也提供KEIl下面的烧录算法,他们一般会提供给我们一些库文件和FLM文件,或者把所有文件打一个包,通过安装的方式拷贝到KEIL的安装目录中,因此,我们可以可以在那装原厂提供的包后,在KEIL的环境中找到FLM文件。
如何找到单片机的烧录算法文件
首先,安装keil的pack包,从安装路径中找到对应的FLM文件,这个文件也就是对应到我们的KEIL当中的下载设置。
这个文件一般放在用户数据中,可以直接按单片机型号搜索一下试试
配置烧录算法到Jlink
旧版的Jlink安装目录里面是存在Devices文件的,因此可以直接在这里添加定制的单片机,但是新版的jlink将这个目录换了一下,具体可以参照Jlink提供的用户手册。
如果用户手册中没有提到,那么可以从下面的在线wiki中找到相关信息,主要阅读Adding a Flash Loader章节。J-Link Device Support Kit - SEGGER Wiki
添加设备的方法为——向JLink指定路径下的JLinkDevices目录中添加XML文件。不同的平台,配置devices的目录不同,如下图所示
如果JLinkDevices目录不存在,则需要自行创建。
JLinkDevices目录结构
官方推荐的JLinkDevices目录结构如下:
其中Vendor代表厂商,DevFamily代表设备系列,Devices代表详细设备。 由于JLink会将JLinkDevices目录下的所有XML文件视为JLinkDevices.xml,所以也可以像旧版本一样用一个JLinkDevices.xml文件进行设备的管理。但是为了区分自己的设备独立性,还是按照官方推荐的目录建立结构比较好,如下图,我建立的武汉芯源的CW32L031芯片的目录:
XML文件的编码规范
要添加设备就需要对XML文件进行编辑,XML共有4个元素:
为XML文件的根元素,一个XML文件只能有一个;
用于描述新设备,该元素无属性;
为子元素,用于描述设备的基础信息;
为子元素,用于描述设备的Flash Bank信息;
XML文件大致格式如下:
<Database>
<Device>
<ChipInfo
Vendor="WHXY"
Name="CW32L031CxTx"
WorkRAMAddr="0x20000000"
WorkRAMSize="0x10000"
Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo
Name="Flash Bank1"
BaseAddr="0x0"
AlwaysPresent="1">
<LoaderInfo
Name="Flash loader"
MaxSize="0x10000"
Loader="FlashCW32L031.FLM"
LoaderType="FLASH_ALGO_TYPE_OPEN"/>
</FlashBankInfo>
</Device>
</Database>
ChipInfo
ChipInfo用于描述设备的基础信息,如厂商名、设备名等,具体属性如下:
其中Core属性需要输入JLink指定范围内的参数,常用参数如下:
JLINKCORECORTEX_M1
JLINKCORECORTEX_M3
JLINKCORECORTEX_M0
JLINKCORECORTEX_M4
JLINKCORECORTEX_M7
JLINKCORECORTEX_M23
FlashBankInfo
FlashBankInfo用于描述设备的Flash Bank信息,其具体属性如下:
FlashBankInfo还有一个子元素,该元素用于描述该Flash Bank的Flash Loader信息,其具体元素如下:
填写完以上的XML文件后,我们在此打开JFlash或者RTT等软件的时候,就可以在设备列表中找到我们添加的设备了。
关注我,下一篇我们看看如何通过jlink commander来制作一个批量下载的工具。