我自己有一個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,也算是一點小成說。