在“如何使用J-Flash软件烧录程序”这篇文章中,我们介绍了如何使用J-Flash这款Segger提供的软件工具来进行烧录。
前面提到的文章中解决了如何在不打开IDE的情况下单独烧录程序固件的问题,但是在烧录过程中还是需要人为的打开J-Flash软件和对应的J-Flash工程文件,通过点击“Production Programming”选项来完成烧录。如果要烧录的芯片的数量较大,那么这样的烧录方式依然较为复杂。因此Segger的J-Flash软件也支持命令行操作,让用户能够通过命令脚本的形式来实现更为复杂的操作,从而更好的适应复杂生产环境的需求。
J-Flash支持的控制命令✦
打开Windows的cmd窗口,通过cd命令跳转到JFlash.exe文件所在的保存路径。
使用J-Flash.exe -help或者JFlash.exe -?命令可以打开帮助页面,可以查看所有J-Flash软件支持的命令。注意当使用了JFlash.exe命令时,除cmd窗口中会有命令反馈外,还将同时打开电脑上的J-Flash软件。
J-Flash支持的部分常用命令行如下所述,完整的命令行列表请通过J-Flash.exe -help命令查看。
-open[,]:
open命令:用于打开一个数据文件,FILENAME参数为要打开文件的文件名,参数为可选参数,当打开的是*.bin或者*.c格式的文件时,该参数用于设置文件的起始地址。
-openprj
openprj命令:用于打开一个现有的J-Flash工程文件。
该命令通常和open命令一起使用,打开J-Flash工程后通过open命令指定要烧录的文件,如果open命令:
①没有指定要烧录的文件,那么会使用这个J-Flash工程中所最近使用到的烧录文件。
②如果openprj命令后没有加上所要打开的J-Flash工程文件,那么将会默认打开J-Flash软件中最后使用的J-Flash工程。
③如果②情形下依然无法找到对应的J-Flash工程文件,那么调用该命令时将会自动创建一个基础的J-Flash工程。
-auto
auto命令:调用该命令后将执行在J-Flash项目工程中配置的“Production Programming”选项所对应的烧录动作,默认情况下将顺序执行擦除、烧录和校验的动作。
-exit
exit命令:注意每次调用JFlash.exe命令时,完成对应的操作后命令行都需要以-exit命令结尾,否则脚本文件中之后的命令将不会被执行。
使用命令行控制J-Flash软件烧录✦
下面我们将演示如何使用一个*.bat格式的命令行脚本来控制J-Flash软件进行烧录。在这个脚本文件中我们需要完成的工作如下:
1、打开保存在C:\Projects路径下的Default.jflash工程文件。
2、打开保存在C:\ Projects路径下的data.bin烧录文件,bin文件对应的烧录起始地址为0x08000000。
3、执行自动烧录操作完成文件的烧录工作。
4、关闭J-Flash软件。
对应的命令行脚本命令参考如下:
图4中ECHO符号后的内容为脚本命令文件中的注释,该脚本需要执行的命令主要为红框中的部分,结合前面介绍的命令用法可以对该脚本文件进行分析:
cd C:\Program Files (x86)\SEGGER\JLink :跳转到J-Flash.exe文件的保存位置。
-openprjC:\Projects\Default.jflash :通过openprj命令让J-Flash软件打开C:\Projects目录下名为Default的jflash工程文件,本文中使用STM32F103ZET6开发板进行测试。
-openC:\Projects\data.bin,0x100000 :通过open命令打开要在Default.jflash这个工程中烧录的程序固件,由于要烧录的文件是bin文件,指定bin文件的起始地址为0x08000000。
-auto:调用该命令执行在J-Flash项目工程中配置的“Production Programming”选项所对应的烧录动作,默认情况下将顺序执行擦除、烧录和校验动作。
-exit:注意每次调用JFlash.exe命令时,完成对应的操作后命令行都需要以-exit命令结尾,否则脚本文件中之后的命令将不会被执行。
将图4中的脚本命令保存为*.bat格式的脚本文件,要烧录时双击执行该文件即可完成对应项目工程文件的烧录。
本文演示了如何使用命令行来控制J-Flash软件完成烧录的基本操作,在生产过程中可以结合生产需求使用脚本文件支持的条件判断和循环控制等语句来实现更精准的烧录控制, 从而能够更好的满足复杂生产环境的需求。如需使用J-Flash软件进行程序烧录,请随时与我们联系info@bmrtech.com