1. 程式人生 > >jlink 燒寫可執行bin程式到mini2440

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
  • setpc
    -- 設定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,也算是一點小成說。