上一篇文章中,我們介紹了如何把一個國產(chǎn)單片機的燒錄算法加載到JFlash中,以便于直接使用Jflash軟件進(jìn)行固件程序的燒錄。
今天,我們編寫一個批處理指令,調(diào)用J-link commander來進(jìn)行一鍵燒錄固件,這樣的程序可以直接應(yīng)用在我們的產(chǎn)線上,一邊下載,一邊測試,輕松省掉一個燒錄器。我們使用兩個文件來完成這項工作。
1、?編寫 jlink commander 腳本
首先我們編寫一個jlink的腳本文件,內(nèi)容如下
connect
loadfile D:cw32_bms.hex
r
g
q
創(chuàng)建一個文件,使用記事本編輯內(nèi)容如上,然后保存為down_script.jlink ?,注意這個后綴名,他是一個jlink軟件可以識別的工程文件。指令很簡單:
- connect ?表示 鏈接目標(biāo)芯片loadfile ?hex路徑,這里就是讓jflash加載我們要燒錄的hex固件,并啟動燒錄。r 表示重啟目標(biāo)芯片g 表示運行目標(biāo)芯片q 表示退出命令行窗口
2、?編寫批處理文件
接下來,我們在寫一個批處理文件來調(diào)用這個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
- 這行代碼關(guān)閉命令行回顯,使得批處理文件運行時不顯示命令本身,僅顯示執(zhí)行結(jié)果。
set JLINK_PATH="C:Program FilesSEGGERJLinkJLink.exe"
-
- 這行代碼設(shè)置了一個名為JLINK_PATH的環(huán)境變量,指向J-Link命令行工具的路徑。
set HEX_FILE_PATH="D:cw32_bms.hex"
-
- 這行代碼設(shè)置了一個名為HEX_FILE_PATH的環(huán)境變量,指向要燒錄的.hex文件的路徑。
set CHIP_MODEL=CW32L031CxTx
-
- 這行代碼設(shè)置了一個名為CHIP_MODEL的環(huán)境變量,指定要燒錄的芯片型號為CW32L031CxTx。
%JLINK_PATH% -device %CHIP_MODEL% -if SWD -speed 4000 -CommanderScript down_script.jlink
-
- 這一行代碼實際執(zhí)行J-Link命令行工具。具體參數(shù)說明如下:
%JLINK_PATH%
:調(diào)用J-Link工具,可執(zhí)行文件的路徑已在前面定義。
-device %CHIP_MODEL%
:指定目標(biāo)設(shè)備型號,這里使用前面定義的CW32L031CxTx。
-if SWD
:指定使用的接口類型為SWD(Serial Wire Debug)。
-speed 4000
:設(shè)置J-Link調(diào)試器與目標(biāo)設(shè)備之間的通信速度為4000kHz。
-CommanderScript down_script.jlink
:指定要執(zhí)行的J-Link Commander腳本文件down_script.jlink
。
3、 運行效果
完成以上工作后,我們只需要雙擊我們的 download.bat 文件,或者選中這個文件,回車一下就可以自動進(jìn)行程序燒錄了。