1. 程式人生 > >Jlink使用技巧之燒寫SPI Flash儲存晶片

Jlink使用技巧之燒寫SPI Flash儲存晶片

前言

大多數玩微控制器的人都知道Jlink可以燒寫Hex檔案,作為ARM模擬偵錯程式,但是知道能燒寫SPI Flash的人應該不多,本篇文章將介紹如何使用JLink來燒寫或者讀取SPI Flash儲存器,JLink軟體包含的工具中,有一個是JFlashSPI工具,這就是一個燒寫和讀取SPI儲存器的工具了。

準備

  • 要燒寫程式或讀取程式的的Flash晶片:SPI協議的Flash都可以,如W25Q128。
  • JFlashSPI軟體工具:在Jlink系列軟體的安裝目錄下
  • JLink V9模擬器
  • 要燒寫的檔案:如GBK字型檔檔案,UNIGBK.BIN

硬體連線

Jlink內部集成了SPI協議,部分介面是作為SPI複用功能的,具體硬體連線,如下圖所示:

對於20P的標準JTAG介面

引腳編號 名稱 輸入輸出
5 DI 輸入
7 nCS 輸出
9 CLK 輸出
13 DO 輸出

對於10P的JTAG介面

引腳編號 名稱 輸入輸出
2 nCS 輸出
4 CLK 輸出
6 DO 輸出
8 DI 輸入

這裡要注意的一點,正版的Jlink模擬器1腳是輸入引腳,是外部提供參考電平的,但由於現在大部分的JLink模擬器都是學習(dao)版的,1腳不是輸入,而是3.3v的輸出,所以可以直接用這個管教來給SPI Flash供電。

1.開啟

有兩個工具,一個是JFlashSPI.exe是圖形化工具,一個JFlashSPI_CL.exe是命令列操作,這裡重點介紹圖形化工具JFlashSPI,開啟Jlink軟體的安裝目錄,雙擊開啟JFlashSPI,介面和之前介紹的JFlash差不太多。

2.連線SPI Flash晶片

點選Target->Connect,如果連線成功的話,會在底部輸出連線資訊,會顯示Flash晶片的型號,生產廠家,Flash ID等等資訊。

就像我這個Flash晶片,絲印明明寫的華邦Winbond W25Q128,這裡讀取的卻是飛索Spansion S25FL128K,難道是盜版晶片?

3.開啟程式檔案

點選File->Open data file,開啟要燒寫的字型檔檔案,支援多種格式的檔案,由於是選擇的Bin檔案,沒有起始地址,所以手動輸入燒寫的起始地址,這裡填寫0就可以了。關於燒寫檔案的格式說明,可以檢視之前的一篇文章:BIN、HEX、AXF、ELF檔案格式有什麼區別

4.下載

點選Target->Auto下載程式到Flash晶片內。

下載完成後,會在底部視窗顯示下載成功的資訊,可以看出燒寫速度還是比較快的,170KB的字型檔檔案,用時不到1秒鐘。

5.程式檔案的讀取

和讀寫微控制器程式一樣,也是支援讀取SPI Flash晶片程式的,為了尊重他人的勞動成果,這裡的介紹僅供學習使用,不可用於商業破解目的。

可以看出,和下載相比,讀寫速度明顯要慢得多,因為是讀取的整個16M的儲存區,所以時間會相對長一些。

6.程式檔案的儲存

程式檔案讀取完成後,可選擇將檔案儲存到本地目錄,儲存格式可根據需要選擇。

7.命令列工具的使用

JFlashSPI_CL.exe是JFlashSPI的命令列工具,通過輸入命令實現讀寫Flash,這裡簡單介紹一下燒寫功能。

在終端執行:./JFlashSPI_CL.exe

可看到一些幫助資訊,主要是指令的說明:

可以看到-connect連線,-open開啟燒寫檔案,-auto燒寫,如果是燒寫,這3個命令就夠了,首先把要燒寫的檔案複製到JFlashSPI_CL.exe同級目錄,輸入指令:

./JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto

可以看到,燒寫成功

為了方便快捷,我們可以將以上命令寫成一個批處理命令,直接雙擊執行即可,

新建download.bat檔案,並以記事本方式開啟,輸入以下內容

JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto
echo 程式燒寫完成!
pause

然後將這個bat檔案和要燒寫的字型檔檔案放到一個資料夾下。雙擊直接執行就可以直接燒寫,是不是方便了許多呢?

支援的晶片列表

支援的Flash晶片多達百種,如Atmel的AT25系列,國產兆易的GD25Q系列等等,基本上常見的SPI協議Flash晶片都支援,具體的晶片列表可檢視SEGGER官方網址:List of supported SPI flashes

速度說明

對於不同型號的Flash晶片,Jlink燒寫器最大的寫入速度也不同,具體可參考:

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

參考資料:

J-Flash SPI

JLink軟體的下載

JLink_Windows_V614b軟體下載連結:JLink_Windows_V614b.exe


Jlink使用技巧系列文章:


歡迎大家關注我的個人部落格

或微信掃碼關注我的公眾號