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