u-boot命令介紹及燒寫程序實例

bootdelay

定義執行自動啓動的等候秒數

baudrate

定義串口控制檯的波特率

netmask

定義以太網接口的掩碼

ethaddr

定義以太網接口的MAC地址

bootfile

定義缺省的下載文件

bootargs

定義傳遞給Linux內核的命令行參數

bootcmd

定義自動啓動時執行的幾條命令

serverip

定義tftp服務器端的IP地址

ipaddr

定義本地的IP地址

stdin

定義標準輸入設備,一般是串口

stdout

定義標準輸出設備,一般是串口

stderr

定義標準出錯信息輸出設備,一般是串口



u-boot命令介紹及燒寫程序實例zz
Printenv 打印環境變量。
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
Environment size: 80/8188 bytes
Setenv 設置新的變量
Uboot> setenv myboard AT91RM9200DK
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
myboard=AT91RM9200DK
Environment size: 102/8188 bytes
Saveenv 保存變量
命令將當前定義的所有的變量及其值存入flash中。用來存儲變量及其值的空間只有8k字節,應不要超過。
Loadb 通過串口Kermit協議下載二進制數據。
Tftp 通過網絡下載程序,需要先設置好網絡配置
Uboot> setenv ipaddr 192.168.0.1
Uboot> setenv serverip 192.168.1.115      (tftp服務器的地址)
下載bin文件到地址0x20000000處。
Uboot> tftp 20000000 u-bo.bin (u-boot.bin應位於tftp服務程序的目錄)
Uboot> tftp 32000000 vmlinux
把server(IP=環境變量中設置的serverip)中/tftpdroot/ 下的vmlinux通過TFTP讀入到物理內存32000000處。
Md 顯示內存區的內容。
Mm 修改內存,地址自動遞增。
Nm 修改內存,地址不自動遞增。
Mw 用模型填充內存
mw 32000000 ff 10000(把內存0x32000000開始的0x10000字節設爲0xFF)
Cp 拷貝一塊內存到另一塊
Cmp 比較兩塊內存區
這些內存操作命令後都可加一個後綴表示操作數據的大小,比如cp.b表示按字節拷貝。
Protect 寫保護操作
protect on 1:0-3(就是對第一塊FLASH的0-3扇區進行保護)
protect off 1:0-3取消寫保護
Erase 擦除扇區。
erase: 刪除FLASH的扇區
erase 1:0-2(就是對每一塊FLASH的0-2扇區進行刪除)
對DataFlash的操作
U-Boot在引導時如果發現NPCS0和NPCS3上連有DataFlash,就會分配虛擬的地址給它,具體爲 :
0xC0000000---NPCS0
0xD0000000---NPCS3
run 執行設置好的腳本
Uboot> setenv flashit tftp 20000000 mycode.bin/; erase 10020000 1002FFFF/;
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit
bootcmd 保留的環境變量,也是一種腳本
如果定義了該變量,在autoboot模式下,將會執行該腳本的內容。
Go 執行內存中的二進制代碼,一個簡單的跳轉到指定地址
Bootm 執行內存中的二進制代碼
要求二進制代碼爲制定格式的。通常爲mkimage處理過的二進制文件。
起動UBOOT TOOLS製作的壓縮LINUX內核, bootm 3200000
Bootp 通過網絡啓動,需要提前設置好硬件地址。 
? 得到所有命令列表
help   help usb, 列出USB功能的使用說明
ping   注:只能開發板PING別的機器
usb
usb start:   起動usb 功能
usb info:   列出設備
usb scan:   掃描usb storage(u 盤)設備
kgo   起動沒有壓縮的linux內核
kgo 32000000
fatls 列出DOS FAT文件系統
fatls usb 0列出第一塊U盤中的文件
fatload 讀入FAT中的一個文件
fatload usb 0:0 32000000 u-boot.bin 把USB中的u-boot.bin 讀到物理內存0x32000000處!
flinfo 列出flash的信息
nfs
nfs 32000000 192.168.0.115:u-boot.bin
把192.168.0.115(LINUX 的NFS文件系統)中的NFS文件系統中的u-boot.bin讀入內存0x32000000處。
例:通過串口更新u-boot程序

[email=u-boot@wpf]u-boot@wpf[/email]
]# loadb 
## Ready for binary (kermit) download to 0x33000000 at 115200 bps...
loadb這個指令以kermit協議從串口下載二進制文件到開發板的內存中,默認下載到0x33000000。當然你可以改在別的地址,例如:loadb 30000000
就是下載到0x30000000。這時候選擇超級終端菜單上:傳送〉發送文件,文件名選擇編譯好的U-Boot.bin,協議選擇Kermit,點發送。可以看到發
送進度。
發送結束出現提示:
## Total Size       = 0x0001d73c = 120636 Bytes
## Start Addr       = 0x33000000
這時可以測試新的修改好不好使:

[email=u-boot@wpf]u-boot@wpf[/email]
]# go 33000000
## Starting application at 0x33000000 ...
go指令可以直接執行內存地址上的程序,
然後燒寫在NOR Flash中的U-boot。先看看NOR Flash的情況:

[email=u-boot@wpf]u-boot@wpf[/email]
]# flinfo
Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)
   Size: 1 MB in 19 Sectors
   Sector Start Addresses:
     00000000 (RO) 00004000 (RO) 00006000 (RO) 00008000 (RO) 00010000 (RO)
     00020000       00030000       00040000       00050000       00060000     
     00070000       00080000       00090000       000A0000       000B0000     
     000C0000       000D0000       000E0000       000F0000 (RO)
一共有19個sector,其中前5個總計128kb的sector有U-Boot程序。要燒寫首先要去掉寫保護:

[email=u-boot@wpf]u-boot@wpf[/email]
]# protect off 0 1ffff

[email=u-boot@wpf]u-boot@wpf[/email]
]# flinfo
Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)
   Size: 1 MB in 19 Sectors
   Sector Start Addresses:
     00000000       00004000       00006000       00008000       00010000
     00020000       00030000       00040000       00050000       00060000
     00070000       00080000       00090000       000A0000       000B0000
     000C0000       000D0000       000E0000       000F0000 (RO)
可以看到寫保護已經去掉,然後擦除:

[email=u-boot@wpf]u-boot@wpf[/email]
]# erase 0 1ffff
Erasing sector   0 ... ok.
Erasing sector   1 ... ok.
Erasing sector   2 ... ok.
Erasing sector   3 ... ok.
Erasing sector   4 ... ok.
Erased 5 sectors
燒寫:(33000000下載地址 0 Nor起始地址 1d73c 文件長度)

[email=u-boot@wpf]u-boot@wpf[/email]
]# cp.b 33000000 0 1d73c
Copy to Flash... done
重啓開發板,U-Boot的燒寫就完成了。當然,一個更好的下載方法是利用tftp命令
http://hi.baidu.com/vcmfc_linux/blog/item/9d07dfef11001c36acafd5d0.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章