天天看点

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设备的分区