JFLASH烧录-添加新芯片
声明:该文档为借鉴博客园博主制作完成,博主文献连接:JFLASH烧录-添加新芯片 - 推动故事情节发展 - 博客园如侵权联系我删除!!!
该文档为后续开发有新的芯片加入做记录,方便以后添加新的芯片。
1、先安装好JLINK软件,如果没有去官网下载jlink,我这里为7.56。Software Development Tools by SEGGER – The Embedded Experts
2、使用JFLASH软件烧录对应的芯片,首先要在软件下,有对应的芯片安装包和芯片说明。如果已经有了,可以直接跳到第5步烧录软件,如果没有,继续以下操作。
例如这里需要,烧录的是一款APM32F00x芯片。
在使用Keil编写软件时,我们肯定已经安装过对应的驱动开发安装包了,在Keil下可以找到它。
D:\APP\KEILL\Geehy\APM32F00x_DFP\1.0.5\Flash。每个芯片都不一样,找到对应的APM32F00x_32.FLM。
3、找到JLINK软件安装的位置,一般情况把APM32F00x_32.FLM复制到..\Devices目录下,一般新建一个文件夹方便记录更改,如果有相应的芯片,也可以直接该文件夹下面,
记下路径,这里是..\Devices\(APM32\SPM32F00x\APM32F00x_32.FLM)。
4、也是在JLINK软件安装的位置,找到JLinkDevices.xml文件,可以用记事本打开,加上这个芯片的说明。
<Device>
<ChipInfo Vendor="GEENHY" Name="APM32F00x" WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
<FlashBankInfo Name="Flash_32K" BaseAddr="0x0" MaxSize="0x8000" Loader="Devices/APM32/APM32F00x/APM32F00x_32.FLM"
LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
内容描述:
<Device> *** </Device> :Device必须成对出现,Device标签中包含对芯片信号的描述;
Vendor :芯片厂家的名字;
Name :芯片的具体型号;
Core :芯片的内核,这个必须是JLink支持的内核之一,这里是JLINK_CORE_CORTEX_M0;
WorkRAMAddr :芯片RAM的起始地址;
WorkRAMSize :芯片RAM的大小;
Aliases :同系列的相同RAM和FLASH的型号;这里没写
JLinkScriptFile :高级用法,有些芯片操作比较特殊,可以通过脚本去实现;这里没写
FlashBankInfo :描述芯片的Flash信息,有多块flash的话,每块对应一个FlashBankInfo;这里没写
Nameflash :Nameflash的名字,名字可以随便起;
BaseAddr :flash的起始地址,可以在用户手册里找到
MaxSize :flash的大小,可以在用户手册里找到
Loader :flash烧录的算法,segger官方的是.elf格式,.flm是ARM的格式。这个路径可以是绝对地址也可以是相对地址,相对地址的话是从JLinkDevices.xml所在的路径为起始地址。
LoaderType :必须是12.5.4.1 Attribute values - LoaderType中列出的类型之一,目前只有FLASH_ALGO_TYPE_OPEN一个类型,而*.flm是支持这个类型的
AlwaysPresent :指示这个块flash是不是一直存在,本文是内部flash,当然一直存在
想RAM或者Flash等还要去查找,可以直接在Keil里面看到
最后结果,配置就完成了。
5、JLINK安装路径下有jflash驱动exe,打开JFLASH软件,左上角File->New Project,再选择Target Device,选中需要的芯片。
6、连接JLINK烧录器,接好烧录线
点击Target->connect,提示连接成功。
点击File->Open data file打开需要烧录的软件
再点击Target->Production programming,烧录成功。
此外该方法也适用于jlink的RTT打印功能