1. 程式人生 > >FL2440開發板之系統燒錄流程

FL2440開發板之系統燒錄流程

燒錄準備

開發板:FL2440

燒錄工具:J-link

編譯工具:Builroot-2011.11交叉編譯器

下載工具:tftp32

除錯終端:secureCRT

燒錄檔案說明

bootstrap-s3c2440.bin:主要用來初始化CPU外部的SDRAM;在燒錄時,該程式需要使用j-link下載到0x0(CPU內部SRRAM)地址上去執行,另外此程式不需要燒錄到Nandflash上。

u-boot-s3c2440.bin:u-boot就相當於電腦的BIOS程式,該程式用來燒錄/啟動Linux系統等。在執行完bootstrap後,我們需要使用j-link將它載入到0x33f80000(CPU外部SDRAM)中去執行,當他在記憶體中執行起來後,再使用nand write命令將他燒錄到nandflash的0地址上去。

linuxrom-s3c2440.bin:linuxrom是linux系統檔案,我們需要在u-boot執行時,使用tftp命令下載到SDRAM的0x30008000地址上,然後再使用nand write命令將其燒錄nandflash的0x100000地址上,記得flash再寫之前一定要先使用nand erase命令擦除。

bootloader模式

bootloader有兩種操作模式,即啟動載入模式和下載模式。
啟動載入模式:這種模式稱自主模式。即bootloader從目標機上的某個固態儲存裝置上將作業系統載入到RAM中執行,整個過程沒有使用者的介入。該模式為bootloader的正常工作模式,主要用於釋出嵌入式產品時使用。

下載模式:這種模式下,目標機上的bootloader將通過串列埠連線、網路連線或USB連線等通訊手段從主機(host)下載文 件,如下載核心映像檔案和檔案系統映象檔案等。從主機下載的檔案通常首先被bootloader儲存到目標板的ROM中,然後再被bootloader寫到目標板上的FLASH類固態儲存裝置中。通常用於開發使用。我們使用的就是下載模式。

開始燒錄

由於開發板買回來時裡面有廠家燒錄進去的系統,所以在燒錄前得先擦除整個flash。先不插j-link,執行開發板,進入uboot介面,選擇"Erase Flash Partition",擦除bootloader。若不是第一次,可先從終端進入uboot模式,使用 nand scrub格式化。如下圖:  

                               

準備工作做好後,

開始J-Link_commonder的連線,如果沒有J-Link驅動,請先安裝,插入j-link(記住j-link不能熱插拔),開啟開始選單,找到SEGGER檔案下的J-Link_commonder,雙擊開啟:

                                                       

會顯示如下畫面:

                          

說明j-link連線正確,從上面倒數第二行可以看到波特率比較小,所以先設定波特率為12000.設定前先停止CPU。其命令為:

j-link> h
j-link> send speed 12000

接下來就是將編譯好的bootstrap-s3c2440.bin和u-boot-s3c2440.bin檔案下載到開發板的記憶體上執行。其命令為:

j-link> loadbin C:\Users\wear\Desktop\fl2440\bin\bootstrap-s3c2440.bin 0 
j-link> setpc 0
j-link> g
j-link> h
j-link> loadbin  C:\Users\wear\Desktop\fl2440\bin\u-boot-s3c2440.bin 0x33f80000

j-link> setpc 0x33f80000

j-link> g

這樣uboot就下載到開發板的記憶體上並可以運行了。這裡需要注意的是,在執行完最後一個命令“g“後,應迅速切換到終端,這時開發板會自動啟動uboot,你需要在一秒鐘內通過終端進入到uboot模式。

因為是在開發板的記憶體上跑,所以系統一斷電就會消失,必須得燒到nand flash上才行。在這之前,用"nand scrub"命令格式化整個nand flash並恢復出廠設定。

接下來插入網線,設定好ip地址與電腦同一網段。使用tftp工具,將uboot下載到開發板記憶體的相應地址上,再通過nand write燒錄到nand flash上。

->:tftp 30008000 u-boot-s3c2440.bin 
->:nand write 30008000 0 50000(將uboot燒錄到nand flash,0是燒錄的起始地址,50000是我這個uboot的大小,十六進位制)

這時可以重啟開發板看看,uboot已經燒錄到nand flash上了,到這裡就可以不用j-link了。重啟:uboot下重啟命令是reset,linux下是reboot。

之後燒作業系統,即linux核心。
->:tftp 30008000 linuxrom-s3c2440.bin 
->:nand write 30008000 100000 800000

注意:nand flash 每一次燒錄之前,必須得先擦除,再寫,使用nand erase命令。

到了這一步開發板的燒錄就算完成了,不過還有很多不懂,以後再慢慢深入瞭解吧。