天天看點

uboot中常見燒寫指令總結          1.SD卡啟動更新              2.從USB啟動更新

        在嵌入式開發中,我們常常需要使用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。

          分區表:

uboot中常見燒寫指令總結          1.SD卡啟動更新              2.從USB啟動更新

              讀取emmc中boot分區的所有内容到記憶體中,可執行               mmc dev 1 (切換到emmc裝置才能對其 讀)               mmc    read    0x1080000  1de000     10000      (使用以上公式offset/0x200 = blk,size/200=cnt)  

              (3) mmc write addr blk# cnt            

                 将記憶體的位址為addr内容寫到儲存設備中,其中起始位址是blk,大小為cnt (機關都為塊)                 mmc    write 0x1080000  1de000     10000  将記憶體1080000開始的内容,寫到emmc的1de000開始大小為10000                  SD卡更新uboot>bin示例:              mmc dev 0              mmcinfo              fatload mmc 0 0x1080000 uboot.bin(SD卡首目錄下檔案)              mmc write 1080000 0 2000                      

             2.從USB啟動更新

                usb  start        USB裝置初始化,若未執行,不能操作usb裝置内容                 fatls  usb  0   列舉U盤中所有檔案                 fatinfo    usb 0     U盤屬性等資訊                 fatload usb 0:1 1080000 u-boot.bin  将U盤中的u-boot.bin 檔案加載到記憶體位址1080000中去。                     示例:                usb   start                fatload usb 0:1 1080000 boot.img                bootm 1080000    從記憶體1080000啟動核心,重新開機後無效未寫到emmc或者flash中                                fatload   interface  dev[:part]   addr  filename                interface:sd、tf、usb                dev[:part]   裝置号1、2、3等,part裝置的分區