J-Flash软件实现对多台设备同时烧写
前言
刚刚在写一个串口服务器的项目的烧写说明,在看烧写软件J-flash的使用说明的时候发现有CLI(Command Line Interface),就试着用了下,发现挺好使的, 使用CLI可以简化烧写时的配置,减少生产人员在烧写时对工具配置工作,简化烧写步骤,减少出错的机会.
此外,利用CLI可以实现一个PC使用多个仿真器进行烧写,以下是我根据J-flash的手册写的一个脚本,用于烧写LPC1768芯片
脚本内容
对一个设备进行烧写
脚本如下:
@REM @Author: zhangbin.eos@foxmail.com
@REM @Date: 2021-02-19 14:02:16
@REM @Last Modified by: zhangbin.eos@foxmail.com
@REM Modified time: 2021-02-19 14:29:41
@REM 设置环境变量,以便脚本能够正确的执行JFlash.exe
SET PATH=%PATH%;"C:\Program Files (x86)\SEGGER\JLink\"
@REM JFlash.exe的配置文件,指定了芯片型号,时钟等
SET PROJECT_FILE="./ETH_RS232.jflash"
@REM 待烧写的文件
SET DATA_FILE="./ETH_RS232_release_v1.0.1_with_boot.bin"
@REM 烧写的起始位置
SET DOWNLOAD_ADDR=0x0000
@REM JFlash.exe日志
SET LOG_FILE="./Burn_ETH_RS232.LOG"
@ECHO OFF
ECHO Open a project and data file, start auto processing and exit
start /wait JFlash.exe -openprj%PROJECT_FILE% -open%DATA_FILE%,%DOWNLOAD_ADDR% -auto -startapp -exit -jflashlog%LOG_FILE%
IF ERRORLEVEL 1 goto ERROR
goto END
:ERROR
ECHO J-Flash ARM: Error!
pause
:END
ECHO J-Flash ARM: Success! >> %LOG_FILE%
对多个设备烧写
当一个PC连接多个J-link仿真器的时候,可以对多个设备同时烧写,提高效率;
@REM @Author: zhangbin.eos@foxmail.com
@REM @Date: 2021-02-19 14:02:16
@REM @Last Modified by: zhangbin.eos@foxmail.com
@REM Modified time: 2021-02-19 15:13:14
SET PATH=%PATH%;"C:\Program Files (x86)\SEGGER\JLink\"
SET CPU_TYPE=LPC1768
SET CPU_VENDOR=NXP
SET CPU_CLOCK=0x00B71B00
SET PROJECT_FILE="./ETH_RS232.jflash"
SET DATA_FILE="./ETH_RS232_release_v1.0.1_with_boot.bin"
SET DOWNLOAD_ADDR=0x0000
SET LOG_FILE="./Burn_ETH_RS232.LOG"
setlocal ENABLEDELAYEDEXPANSION
set "lock=%temp%\wait!random!.lock"
echo Starting J-Flash...
start "" 9>"!lock!1" start /wait "J-Flash" JFlash.exe -openprj%PROJECT_FILE% -open%DATA_FILE%,%DOWNLOAD_ADDR% -usb59400616 -auto -startapp -exit -jflashlog%LOG_FILE%
start "" 9>"!lock!2" start /wait "J-Flash" JFlash.exe -openprj%PROJECT_FILE% -open%DATA_FILE%,%DOWNLOAD_ADDR% -usb59768890 -auto -startapp -exit -jflashlog%LOG_FILE%
REM Wait for processes to finish before continuing
for %%N in (1 2) do (
call :WaitForUnlock !lock!%%N
) 2>nul
REM Delete temporary lock files
del "!lock!*"
echo Done.
exit 0
:WaitForUnlock
:Retry
some time waiting for J-Flash to finish
goto Retry
exit /b
这个脚本将启动两个J-flash.exe程序同时对两个设备进行烧写,脚本中的-usb59400616表示选择哪个仿真器进行烧写,59400616是仿真器的SN编号
SN编号获取
当多个仿真器插入的时候,启动j-flash,点击target=>connet,会弹出一个仿真器选择的对话框,在这个对话框中有仿真器的SN