Jlink使用技巧系列教程
前言
大多數(shù)玩單片機(jī)的人都知道Jlink可以燒寫(xiě)Hex文件,作為ARM仿真調(diào)試器,但是知道能燒寫(xiě)SPI Flash的人應(yīng)該不多,本篇文章將介紹如何使用JLink來(lái)燒寫(xiě)或者讀取SPI Flash存儲(chǔ)器,JLink軟件包含的工具中,有一個(gè)是JFlashSPI工具,這就是一個(gè)燒寫(xiě)和讀取SPI存儲(chǔ)器的工具了。
準(zhǔn)備
- 要燒寫(xiě)程序或讀取程序的的Flash芯片:SPI協(xié)議的Flash都可以,如W25Q128。
- JFlashSPI軟件工具:在Jlink系列軟件的安裝目錄下
- JLink V9仿真器
- 要燒寫(xiě)的文件:如GBK字庫(kù)文件,UNIGBK.BIN
硬件連接
Jlink內(nèi)部集成了SPI協(xié)議,部分接口是作為SPI復(fù)用功能的,具體硬件連接,如下圖所示:對(duì)于20P的標(biāo)準(zhǔn)JTAG接口
引腳編號(hào) | 名稱(chēng) | 輸入輸出 | 和SPI Flash的連接 |
---|
5 | DI | 輸入 | 連接SPI Flash的MOSI引腳 |
7 | nCS | 輸出 | 連接SPI Flash的CS引腳 |
9 | CLK | 輸出 | 連接SPI Flash的CLK引腳 |
13 | DO | 輸出 | 連接SPI Flash的MISO引腳 |
對(duì)于10P的JTAG接口
引腳編號(hào) | 名稱(chēng) | 輸入輸出 | 和SPI Flash的連接 |
---|
2 | nCS | 輸出 | 連接SPI Flash的CS引腳 |
4 | CLK | 輸出 | 連接SPI Flash的CLK引腳 |
6 | DO | 輸出 | 連接SPI Flash的MISO引腳 |
8 | DI | 輸入 | 連接SPI Flash的MOSI引腳 |
這里要注意的一點(diǎn),正版的Jlink仿真器1腳是輸入引腳,是外部提供參考電平的,但由于現(xiàn)在大部分的JLink仿真器都是學(xué)習(xí)(dao)版的,1腳不是輸入,而是3.3v的輸出,所以可以直接用這個(gè)管教來(lái)給SPI Flash供電。
1.打開(kāi)
有兩個(gè)工具,一個(gè)是JFlashSPI.exe是圖形化工具,一個(gè)JFlashSPI_CL.exe是命令行操作,這里重點(diǎn)介紹圖形化工具JFlashSPI,打開(kāi)Jlink軟件的安裝目錄,雙擊打開(kāi)JFlashSPI,界面和之前介紹的JFlash差不太多。
2.連接SPI Flash芯片
點(diǎn)擊Target->Connect,如果連接成功的話,會(huì)在底部輸出連接信息,會(huì)顯示Flash芯片的型號(hào),生產(chǎn)廠家,F(xiàn)lash ID等等信息。就像我這個(gè)Flash芯片,絲印明明寫(xiě)的華邦Winbond W25Q128,這里讀取的卻是飛索Spansion S25FL128K,難道是盜版芯片?
3.打開(kāi)程序文件
點(diǎn)擊File->Open data file,打開(kāi)要燒寫(xiě)的字庫(kù)文件,支持多種格式的文件,由于是選擇的Bin文件,沒(méi)有起始地址,所以手動(dòng)輸入燒寫(xiě)的起始地址,這里填寫(xiě)0就可以了。關(guān)于燒寫(xiě)文件的格式說(shuō)明,可以查看之前的一篇文章:BIN、HEX、AXF、ELF文件格式有什么區(qū)別
4.下載
點(diǎn)擊Target->Auto下載程序到Flash芯片內(nèi)。下載完成后,會(huì)在底部窗口顯示下載成功的信息,可以看出燒寫(xiě)速度還是比較快的,170KB的字庫(kù)文件,用時(shí)不到1秒鐘。
5.程序文件的讀取
和
讀寫(xiě)單片機(jī)程序一樣,也是支持讀取SPI Flash芯片程序的,為了尊重他人的勞動(dòng)成果,這里的介紹僅供學(xué)習(xí)使用,不可用于商業(yè)破解目的。可以看出,和下載相比,讀寫(xiě)速度明顯要慢得多,因?yàn)槭亲x取的整個(gè)16M的存儲(chǔ)區(qū),所以時(shí)間會(huì)相對(duì)長(zhǎng)一些。
6.程序文件的保存
程序文件讀取完成后,可選擇將文件保存到本地目錄,保存格式可根據(jù)需要選擇。
7.命令行工具的使用
JFlashSPI_CL.exe是JFlashSPI的命令行工具,通過(guò)輸入命令實(shí)現(xiàn)
讀寫(xiě)Flash,這里簡(jiǎn)單介紹一下燒寫(xiě)功能。在終端運(yùn)行:?
./JFlashSPI_CL.exe
可看到一些幫助信息,主要是指令的說(shuō)明:可以看到-connect連接,-open打開(kāi)燒寫(xiě)文件,-auto燒寫(xiě),如果是燒寫(xiě),這3個(gè)命令就夠了,首先把要燒寫(xiě)的文件復(fù)制到JFlashSPI_CL.exe同級(jí)目錄,輸入指令:
./JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto
可以看到,燒寫(xiě)成功為了方便快捷,我們可以將以上命令寫(xiě)成一個(gè)批處理命令,直接雙擊運(yùn)行即可,新建download.bat文件,并以記事本方式打開(kāi),輸入以下內(nèi)容
JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto
echo 程序燒寫(xiě)完成!
pause
然后將這個(gè)bat文件和要燒寫(xiě)的字庫(kù)文件放到一個(gè)文件夾下。雙擊直接運(yùn)行就可以直接燒寫(xiě),是不是方便了許多呢?
支持的芯片列表
支持的Flash芯片多達(dá)百種,如Atmel的AT25系列,國(guó)產(chǎn)兆易的GD25Q系列等等,基本上常見(jiàn)的SPI協(xié)議Flash芯片都支持,具體的芯片列表可查看SEGGER官方網(wǎng)址:
https://www.segger.com/products/debug-probes/j-link/technology/cpus-and-devices/supported-spi-flashes/速度說(shuō)明
對(duì)于不同型號(hào)的Flash芯片,Jlink燒寫(xiě)器最大的寫(xiě)入速度也不同,具體可參考:
Flash device | Programming speed1 | Flash device | Programming speed1 |
---|
ISSI IS25LP128 | 500 KB/s | Micron N25Q128A | 270 KB/s |
ISSI IS25LD040 | 100 KB/s | Micron M25P10 | 160 KB/s |
ISSI IS25LQ080 | 340 KB/s | Micron M25PX16 | 230 KB/s |
ISSI IS25CD010 | 100 KB/s | Micron M45PE10 | 230 KB/s |
ISSI IS25CQ032 | 190 KB/s | Micron M25PE4 | 215 KB/s |
Macronix MX25L3235E | 285 KB/s | Spansion S25FL128 | 410 KB/s |
Macronix MX66L1G45G | 430 KB/s | Spansion S25FL116K | 265 KB/s |
Macronix MX66L51235F | 315 KB/s | Winbond W25Q128FV | 340 KB/s |
參考資料:
https://www.segger.com/products/debug-probes/j-link/tools/j-flash-spi/JLink軟件的下載
JLink
WindowsV614b軟件下載鏈接:公眾號(hào)后臺(tái)回復(fù)“JLINK”,可獲得JLinkWindowsV614b.exe軟件下載鏈接Jlink使用技巧系列文章:
- Jlink使用技巧系列教程
- Jlink使用技巧之讀取STM32內(nèi)部的程序
- Jlink使用技巧之J-Scope虛擬示波器功能
- Jlink使用技巧之單獨(dú)下載HEX文件到單片機(jī)