使用JLink燒寫bin文件到Mini2440


原文

我自己有一個Mini2440的板子,我學習了Bootloader這一節,想做一下實驗。
    很可惜,我只有筆記本電腦,不帶並口的。不過我有一個JLinkV8,聽網友們說可以有它來下載程序。
 
    網上有不少的文章講如何使用JLink燒程序到Mini2440,我總結了一下,主要的步聚如下:
    (1)下載init.bin文件,並運行。它能將SDRAM配置好。
    (2)下載u-boot.bin文件到SDRAM內存地址上,並運行它。
    (3)使用u-boot命令將自身寫到NandFlash或NorFlah。
 
    首先要安裝JLink驅動,然后就是正確的連線,最后是給Mini2440上電。
打開J-Link Commander。
    
    以上顯示,是正常連接的。
 
    我在網上下載了一個init.bin文件。  init.zip  提取其init.bin文件。
    下面我簡單講一下,我用到的幾個jlink命令:
  • r -- reset, 復位命令
  • h -- halt, 停機,也有暫停的功能
  • loadbin <filename> <address> -- 下載filename文件到地址上address
  • setpc <address> -- 設置PC的值
 
在執行J-Link命令之前,先執行:
     > speed 12000
     提高通信速度,不然后面下載程序會很慢。
 
(1)下載init.bin文件,在J-Link Commander執行以下命令:
     > r
     > h
     > loadbin e:\init.bin 0x40000000
     > setpc 0x40000000
     > g
     執行完上述命令之后,我們的目標板就從0x40000000地址上開始執行。如果看到Mini2440板子上的4個LED開始閃爍,那就說明init.bin程序在目標板中運行起來了。
     這里我有一個問題,為什么要下載到0x40000000地址上呢?既然不是SDRAM,這個地址上是什么存儲器?請大師解答
 
(2)然后下載我們的u-boot.bin文件到SDRAM中進行運行。
     > h
     > loadbin e:\u-boot.bin 0x33f80000
     > setpc 0x33f80000
     > g
     這里我說明一下為什么是0x33f80000,因為在U-Boot中已定義了U-Boot終端是運行在這個地址。執行完J-Link命令之后,我們就聽到一聲蜂鳴器聲,並可以在Mini2440連出來的串口終端上看到U-Boot輸出的信息:
     
     這已說明剛下載的U-Boot已經運行起來了。
 
(3)接下來,就是用U-Boot將自己寫入NandFlash或NorFlash
     首先,重新導入u-boot.bin文件到0x30000000地址上。
     > h
     > loadbin e:\u-boot.bin 0x30000000
     > g
 
     然后,就是在串口終端中輸入Uboot命令,將0x30000000內存的數據分別寫入NandFlash或NorFlash。
 
     我只完成了將U-Boot燒入NandFlash的操作,至於NorFlash遇到了點麻煩。
     我先講NandFlash。如下圖所示,輸入命令:
     
 
     然后拔了J-Link,選擇NandFlash,重新啟動。就會在串口終端看到NandFlash的啟動信息。
     
 
    以上是NandFlash的燒錄,下面我講述一下燒寫NorFlash的過程。與NandFlash的燒錄過程差不多,只有U-Boot命令不一樣:
    
    錯誤應該出現在“erase 0 3ffff”命令上。看網友執行的結果不是這樣的。請大師指點一下……
 
    雖然沒有完全成功,但還要學到了如何燒到NandFlash,也算是一點小成說。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM