上一篇文章中,我们介绍了如何把一个国产单片机的烧录算法加载到JFlash中,以便于直接使用Jflash软件进行固件程序的烧录。
今天,我们编写一个批处理指令,调用J-link commander来进行一键烧录固件,这样的程序可以直接应用在我们的产线上,一边下载,一边测试,轻松省掉一个烧录器。我们使用两个文件来完成这项工作。
1、 编写 jlink commander 脚本
首先我们编写一个jlink的脚本文件,内容如下
connect
loadfile D:cw32_bms.hex
r
g
q
创建一个文件,使用记事本编辑内容如上,然后保存为down_script.jlink ,注意这个后缀名,他是一个jlink软件可以识别的工程文件。指令很简单:
- connect 表示 链接目标芯片loadfile hex路径,这里就是让jflash加载我们要烧录的hex固件,并启动烧录。r 表示重启目标芯片g 表示运行目标芯片q 表示退出命令行窗口
2、 编写批处理文件
接下来,我们在写一个批处理文件来调用这个jlink的脚本,命名为 download.bat
@echo off
set JLINK_PATH="C:Program FilesSEGGERJLinkJLink.exe"
set HEX_FILE_PATH="cw32_bms.hex"
set CHIP_MODEL=CW32L031CxTx
%JLINK_PATH% -device %CHIP_MODEL% -if SWD -speed 4000 -CommanderScript down_script.jlink
解释一下:
@echo off
- 这行代码关闭命令行回显,使得批处理文件运行时不显示命令本身,仅显示执行结果。
set JLINK_PATH="C:Program FilesSEGGERJLinkJLink.exe"
-
- 这行代码设置了一个名为JLINK_PATH的环境变量,指向J-Link命令行工具的路径。
set HEX_FILE_PATH="D:cw32_bms.hex"
-
- 这行代码设置了一个名为HEX_FILE_PATH的环境变量,指向要烧录的.hex文件的路径。
set CHIP_MODEL=CW32L031CxTx
-
- 这行代码设置了一个名为CHIP_MODEL的环境变量,指定要烧录的芯片型号为CW32L031CxTx。
%JLINK_PATH% -device %CHIP_MODEL% -if SWD -speed 4000 -CommanderScript down_script.jlink
-
- 这一行代码实际执行J-Link命令行工具。具体参数说明如下:
%JLINK_PATH%
:调用J-Link工具,可执行文件的路径已在前面定义。
-device %CHIP_MODEL%
:指定目标设备型号,这里使用前面定义的CW32L031CxTx。
-if SWD
:指定使用的接口类型为SWD(Serial Wire Debug)。
-speed 4000
:设置J-Link调试器与目标设备之间的通信速度为4000kHz。
-CommanderScript down_script.jlink
:指定要执行的J-Link Commander脚本文件down_script.jlink
。
3、 运行效果
完成以上工作后,我们只需要双击我们的 download.bat 文件,或者选中这个文件,回车一下就可以自动进行程序烧录了。