在嵌入式开发中,我们常常需要使用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
(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。
分区表: