U-BOOT之二:u-boot 常用命令

 

U-Boot還提供了更加詳細的命令幫助,通過help命令還可以查看每個命令的參數說明。由於開發過程的需要,有必要先把U-Boot命令的用法弄清楚。接下來,根據每一條命令的幫助信息,解釋一下這些命令的功能和參數。

1、bootm
bootm [addr [arg ...]]

    - boot application image stored in memory

          passing arguments 'arg ...'; when booting a Linux kernel,

          'arg' can be the address of an initrd image

bootm命令可以引導啓動存儲在內存中的程序映像。這些內存包括RAM和可以永久保存的Flash。

第1個參數addr是程序映像的地址,這個程序映像必須轉換成U-Boot的格式。

第2個參數對於引導Linux內核有用,通常作爲U-Boot格式的RAMDISK映像存儲地址;也可以是傳遞給Linux內核的參數(缺省情況下傳遞bootargs環境變量給內核)。


2、bootp

bootp [loadAddress] [bootfilename]

bootp命令通過bootp請求,要求DHCP服務器分配IP地址,然後通過TFTP協議下載指定的文件到內存。

第1個參數是下載文件存放的內存地址。

第2個參數是要下載的文件名稱,這個文件應該在開發主機上準備好。

 

3、cmp

cmp [.b, .w, .l] addr1 addr2 count

     - compare memory

cmp命令可以比較2塊內存中的內容。.b以字節爲單位;.w以字爲單位;.l以長字爲單位。注意:cmp.b中間不能保留空格,需要連續敲入命令。

第1個參數addr1是第一塊內存的起始地址。

第2個參數addr2是第二塊內存的起始地址。

第3個參數count是要比較的數目,單位按照字節、字或者長字。

 

4、cp

cp [.b, .w, .l] source target count

       - copy memory

cp命令可以在內存中複製數據塊,包括對Flash的讀寫操作。

第1個參數source是要複製的數據塊起始地址。

第2個參數target是數據塊要複製到的地址。這個地址如果在Flash中,那麼會直接調用寫Flash的函數操作。所以U-Boot寫Flash就使用這個命令,當然需要先把對應Flash區域擦乾淨。

第3個參數count是要複製的數目,根據cp.b cp.w cp.l分別以字節、字、長字爲單位。

 

5、crc32

crc32 address count [addr]

     - compute CRC32 checksum [save at addr]  

crc32命令可以計算存儲數據的校驗和。

第1個參數address是需要校驗的數據起始地址。

第2個參數count是要校驗的數據字節數。

第3個參數addr用來指定保存結果的地址。

 

6、echo

echo [args..]

      - echo args to console; c suppresses newline

echo命令回顯參數。


7、erase

erase start end

      - erase FLASH from addr 'start' to addr 'end'

erase N:SF[-SL]

      - erase sectors SF-SL in FLASH bank # N

erase bank N

      - erase FLASH bank # N

erase all

      - erase all FLASH banks

 

erase命令可以擦Flash。

參數必須指定Flash擦除的範圍。

按照起始地址和結束地址,start必須是擦除塊的起始地址;end必須是擦除末尾塊的結束地址。這種方式最常用。舉例說明:擦除0x20000 – 0x3ffff區域命令爲erase 20000 3ffff。

按照組和扇區,N表示Flash的組號,SF表示擦除起始扇區號,SL表示擦除結束扇區號。另外,還可以擦除整個組,擦除組號爲N的整個Flash組。擦除全部Flash只要給出一個all的參數即可。

 

8、flinfo

flinfo

       - print information for all FLASH memory banks

flinfo N

       - print information for FLASH memory bank # N

 

flinfo命令打印全部Flash組的信息,也可以只打印其中某個組。一般嵌入式系統的Flash只有一個組。

 

9、go

go addr [arg ...]

      - start application at address 'addr'

        passing 'arg' as arguments

 

go命令可以執行應用程序。

第1個參數是要執行程序的入口地址。

第2個可選參數是傳遞給程序的參數,可以不用。

 

10、minfo

iminfo addr [addr ...]

      - print header information for application image starting at

         address 'addr' in memory; this includes verification of the

         image contents (magic number, header and payload checksums)

 

iminfo可以打印程序映像的開頭信息,包含了映像內容的校驗(序列號、頭和校驗和)。

第1個參數指定映像的起始地址。

可選的參數是指定更多的映像地址。

 

11、loadb

loadb [ off ] [ baud ]

     - load binary file over serial line with offset 'off' and baudrate 'baud'


loadb命令可以通過串口線下載二進制格式文件。


12、loads

loads [ off ]

    - load S-Record file over serial line with offset 'off'

 

loads命令可以通過串口線下載S-Record格式文件。

 

13、mw

mw [.b, .w, .l] address value [count]

     - write memory


mw命令可以按照字節、字、長字寫內存,.b .w .l的用法與cp命令相同。

第1個參數address是要寫的內存地址。

第2個參數value是要寫的值。

第3個可選參數count是要寫單位值的數目。

 

14、nfs

nfs [loadAddress] [host ip addr:bootfilename]

nfs命令可以使用NFS網絡協議通過網絡啓動映像。

 

15、nm

nm [.b, .w, .l] address

     - memory modify, read and keep address

 

nm命令可以修改內存,可以按照字節、字、長字操作。

參數address是要讀出並且修改的內存地址。

 

16、printenv

printenv

      - print values of all environment variables

printenv name ...

      - print value of environment variable 'name'

 

printenv命令打印環境變量。

可以打印全部環境變量,也可以只打印參數中列出的環境變量。

 

17、protect

protect on  start end

      - protect Flash from addr 'start' to addr 'end'

protect on  N:SF[-SL]

      - protect sectors SF-SL in Flash bank # N

protect on  bank N

      - protect Flash bank # N

protect on  all

      - protect all Flash banks

protect off start end

      - make Flash from addr 'start' to addr 'end' writable

protect off N:SF[-SL]

     - make sectors SF-SL writable in Flash bank # N

protect off bank N

     - make Flash bank # N writable

protect off all

     - make all Flash banks writable

 

protect命令是對Flash寫保護的操作,可以使能和解除寫保護。

第1個參數on代表使能寫保護;off代表解除寫保護。

第2、3參數是指定Flash寫保護操作範圍,跟擦除的方式相同。

 

18、rarpboot

rarpboot [loadAddress] [bootfilename]

 

rarboot命令可以使用TFTP協議通過網絡啓動映像。也就是把指定的文件下載到指定地址,然後執行。

第1個參數是映像文件下載到的內存地址。

第2個參數是要下載執行的映像文件。

 

19、run

run var [...]

      - run the commands in the environment variable(s) 'var'

run命令可以執行環境變量中的命令,後面參數可以跟幾個環境變量名。

 

20、setenv

setenv name value ...

      - set environment variable 'name' to 'value ...'

setenv name

      - delete environment variable 'name'

 

setenv命令可以設置環境變量。

第1個參數是環境變量的名稱。

第2個參數是要設置的值,如果沒有第2個參數,表示刪除這個環境變量。

 

21、sleep

sleep N

      - delay execution for N seconds (N is _decimal_ !!!)

sleep命令可以延遲N秒鐘執行,N爲十進制數。

 

22、tftpboot

tftpboot [loadAddress] [bootfilename]

tftpboot命令可以使用TFTP協議通過網絡下載文件。按照二進制文件格式下載。另外使用這個命令,必須配置好相關的環境變量。例如serverip和ipaddr。

第1個參數loadAddress是下載到的內存地址。

第2個參數是要下載的文件名稱,必須放在TFTP服務器相應的目錄下。

這些U-Boot命令爲嵌入式系統提供了豐富的開發和調試功能。在Linux內核啓動和調試過程中,都可以用到U-Boot的命令。但是一般情況下,不需要使用全部命令。比如已經支持以太網接口,可以通過tftpboot命令來下載文件,那麼還有必要使用串口下載的loadb嗎?反過來,如果開發板需要特殊的調試功能,也可以添加新的命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章