在嵌入式開發中,我們常常需要使用uboot對系統進行升級。升級的方式有很多種,如SD卡,U盤、TFTP等等。本文就介紹自己常用燒錄方式————SD卡和U盤。接下來介紹升級過程中常用的幾種uboot命令。以便於以後查看。
1.SD卡啓動升級
首先在uboot下執行mmc,可得:
mmc info - display info of the current MMC device
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc list - lists available devices
mmc setdsr <value> - set DSR register value
(1)mmc info - display info of the current MMC device 顯示存儲設備的信息
在切換到emmc設備下(執行mmc dev 1),執行mmcinfo可看到存儲設備各屬性信息:
gxtvbb_skt_v1#mmcinfo
Device: SDIO Port C
Manufacturer ID: 11
OEM: 100
Name: 008G7
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 8-bit DDR
(2)mmc read addr blk# cnt 用來將存儲介質(emmc/sd)中的內容讀取到內存中。
其中addr指內存中的目標位置起始地址,blk#指被拷貝內容起始存儲塊的塊號,cnt指要被拷貝的塊數。一般每個塊的大小爲512byte。
所以blk和cnt參數的單位都是塊,一般爲512字節。化成十六進制就是0x200。在uboot啓動時,可從啓動log上看出各鏡像文件在存儲設備上的分區表,觀察
得知偏移(offset)和大小(size)都爲十六進制數,所以在使用mmc read命令時要注意後面的參數換算,即offset/0x200 = blk,size/200=cnt。
分區表: