前言:最近在开发一些国产的单片机,项目量产的时候,这些厂家老喜欢推荐他们的脱机烧录器,而且他们的脱机烧录器还价格不菲,便宜的几百块钱,贵的要好几千。正好之前用过nordic的芯片,我看他们家的芯片量产可以直接兼容j-link,利用脚本就可以下载了。受到启发我也弄了一个基于j-link的烧录脚本
准备的工具
软件:JLink(可以到SEGGER官网上下载)
硬件:j-link仿真器(淘宝上几十到几百块的比较多)
j-link下载完成后直接一路点击next安装即可,安装路径也使用默认的,截图是我的安装的路径
接下来就是根据单片的不同需要做的事情了:
1.首先需要找到flash下载算法,这个一般芯片供应商会提供一个pack包,如果是基于keil开发环境的,如下就是我使用的单片机,芯片厂商给了一个Vango.V85XX.4.0.2.pack文件给我,这个文件你只需要直接双击然后一直点next就可以,他会解压出来一个flm后缀的算法文件,安装路径需要记录一下,等下会用到
2.然后你就可以在刚才的安装路径下面找到这个flm文件了,下面是我的flm文件路径
以上步骤的主要目的就是找到这个flm flash算法下载文件
3. 接下来就是如何使用这个flm算法文件了
将改文件拷贝到j-link的Device文件夹下面,如图所示,然后再Device文件夹下面创建一个文件夹,名字可以自定义
将刚才你从pack包里面解压出来的flm文件拷贝到你刚才创建的文件夹下面,我的文件夹名字叫vango,所以我放到vango文件夹里面
然后找到C:\Program Files\SEGGER\JLink\JLinkDevices.xml 文件,修改该文件
修改的内容如下:
修改的含义如下(注意你的单片机是使用cortex-m几的内核,你就选择对应的内核):
这个地方的参数修改需要结合自己单片机的规格来修改,具体需要参考单片机的 datasheet
如下是我的查看方法:
首先找到datasheet中的内存映射章节
然后查看ram的起始地址和结束地址以及flash的起始地址和结束地址
3.最后一步就是写烧录脚本
需要准备两个脚本文件
download.jlink
testdownload.bat
其中download.jlink 脚本是专门给j-link用的,download.jlink 的内容如下:
r
loadfile D:\q_code\c9\Project\MDK-ARM\Objects\c9_project.hex
exit
loadfile后面跟的是你用keil编译出来的hex文件的·路径,可以使用相对路径也可以使用绝对路径。
testdownload.bat脚本的内容如下:
jlink.exe -device v8530 -if SWD -speed 10000 -autoconnect 1 -CommandFile download.jlink
脚本各个参数的含义以及需要修改的地方
其中v8530的选择是根据如下截图中的名字来的
脚本写好之后,直接在cmd中运行 testdownload.bat 批处理,如果出现如下结果就是下载成功:
正常下载会弹出一个SEGGER的下载进度条
可能出现的问题就是cmd提示找不到JLink.exe 命令,这是因为你的j-link执行文件没有添加到环境变量中,你只需要添加·一下环境变量即可,一下是我的环境变量设置: