uboot中常见烧写命令总结

      

        在嵌入式开发中,我们常常需要使用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 - 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张图片

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

你可能感兴趣的:(uboot)