3. u-boot 啟動內容及基礎指令使用介紹


3.1 u-boot 啟動內容解譯


U-Boot 1.1.4 (Sep 23 2008 - 10:58:00)


//u-boot 本版資訊及編譯時間


U-Boot code: 30700000 -> 3071B11C BSS: -> 3071F5C4


//存放u-boot 資料和程式碼的位址


IRQ Stack: 306daf74


FIQ Stack: 306dbf74


//Stack 位址,u-boot 可不需要使用中斷


RAM Configuration:


Bank #0: 30000000 32 MB


//32MB SDRAM 址起始位址為 30000000


Flash: 2 MB


//2MB Norflash 址,其實位址為20000000


NAND: 64 MB


//64MB Nandflash


*** Warning - bad CRC, using default environment


//由于是第一次燒寫flash 中還沒有儲存環境變數,因此使用預設換機變數


In: serial


Out: serial


Err: serial


//入匯出串列方式


Set the MAC successful!


//成功配置網路


Hit any key to stop autoboot: 0


//几秒后自動執行


SEP4020=>


//主控台,用戶可匯入指令


3.2 print 令——檢視u-boot 環境變數


由于是第一次燒寫,此時的環境變數為預設值。


3.3 u-boot 境參數解譯


SEP4020=>print


bootargs=


//這個參加將會傳遞給Linux 作業系統,現在空着,以后詳解


bootcmd=bootm 20000 f0000


//啟動指令,將在啟動延時后執行的指令


bootdelay=5 //啟動延時,建議修改為1


baudrate=115200 //鮑率 115200


ethaddr=00:50:c2:1e:af:fb //卡的mac 位址


ipaddr=172.17.22.189 //開發板的ip 位址


serverip=172.17.22.183 //伺服器(PC 機)的ip 位址


gatewayip=172.17.22.1 //閘道位址(直連可以不填)


netmask=255.255.255.0 //網路遮罩


bootfile="B2-rootfs/usr/B2-zImage.u-boot" //用,可移除


stdin=serial


stdout=serial


stderr=serial


Environment size: 261/16380 bytes //境變數容量


SEP4020=>


SEP4020=>print


bootargs=


bootcmd=bootm 20000 f0000


bootdelay=5


baudrate=115200


ethaddr=00:50:c2:1e:af:fb


ipaddr=172.17.22.189


serverip=172.17.22.183


gatewayip=172.17.22.1


netmask=255.255.255.0


bootfile="B2-rootfs/usr/B2-zImage.u-boot"


stdin=serial


stdout=serial


stderr=serial


Environment size: 261/16380 bytes


SEP4020=>


3.4 set 令——設定環境變數


使用方法如下:


如果一個參數帶有多條指令,需要如下設定:


print 檢視察看效果:


3.5 save 令——儲存環境變數


設定完環境變數后需要使用 save 指令來儲存環境變數,這樣開機后就不會環境變數錯


誤的察看警告了。


3.6 修改SEP4020 開發板的環境變數


了方便交流和測試開發時希望能夠統一 ip 位址,設定如下:


192.168.0.1


開發板:192.168.0.2


虛擬機192.168.0.3


SEP4020=>save


Saving Environment to Flash...


Un-Protected 1 sectors


Erasing Flash...


done


Erased 1 sectors


Writing to Flash... done


Protected 1 sectors


SEP4020=>


SEP4020=>print


bootdelay=1


bootcmd=tftp vmlinux.img 30007fc0;bootm 30007fc0


… …


set [參數] [內容]\; [參數] [內容]


兩條指令用“\;


例如:


SEP4020=>set bootcmd tftp vmlinux.img 30007fc0\; bootm 30007fc0


set [參數] [內容]


例如:


SEP4020=>set bootdelay 1


其中bootargs bootcmd 參數需要其餘說明:


1bootargs 參數


bootargs 參數是啟動時傳遞給Linux 作業系統的資訊,其配置敘述為:


set bootargs root=/dev/mtdblock2 console=ttyS0,115200 rootfstype=cramfs mem=32mb


root/dev/mtdblock2 表示nand 的第三個割區啟動檔案系統,Linux 啟動后會自動搜


nand 割區資訊


console:表示Linux 作業系統使用的主控台,我們使用第一個序列埠,因此是ttyS0,后


面跟的115200 表示序列埠使用的鮑率。


rootfstype:表示檔案系統的格式,我們燒錄在nand 中的檔案系統使用cramfs,所以在


這裡要填寫cramfs,否linux 會嘗試動掛載,可能會出錯


mem:表示Linux 作業系統的記憶體容量,目前開發板板載32MB 記憶體,因此填32mb


2bootcmd 參數


bootcmd 參數表示開發板上電,bootdelay 結束后執行的指令。這裡填寫內容的含義是用


tftp 這條指令,將主機上的vmlinux.img(即Linux 核心)加載到記憶體的30007fc0 這個位址,


然后30007fc0 啟動核心。如果將Linux 核心燒錄到nandflash 上,則指令又有不同,下面


hui1 詳細介紹。


3.7 ping 令——測試網路指令


功能很簡單,比 pc 上的弱很多,如下:


SEP4020=>ping 192.168.0.1


host 192.168.0.1 is alive

    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()