h,he,hel,help,显示完所有的uboot里面可用的命令。
命令帮助:#help disp
1.md(memory display):因为在uboot状态,cpu控制器寄存器的地址和内存地址一一对应,所以可以通过md这个标准命令来查看寄存器的值。
用法:md [内存地址] [长度]
两个参数 第一个,显示内存的基地址;第二个,从基地址开始显示的个数。
注意,可以用上参数 b,w,l(字节,字,长字)参数,表示读取内存地址的长度基数,默认是l。
如:md 0xd4282818 1
md 0xd4282818 5
md.b 0xd4282818 1 在0xd4282818内存位置开始读取一个字节
md.w 0xd4282818 5 在0xd4282818内存位置开始读取5个字
md.l 0xd4282818 5 在0xd4282818内存位置开始读取5个长字
2.mw - memory write (fill)
可以用上参数 b,w,l(字节,字,长字)参数。
如:mw 0xd4282818 0 1
例子:
修改:mw [内存地址] [值] [长度]
例如:mw 0x02000000 0 128
表示修改地址为0x02000000~0x02000000+128的内存值为0.
显示:md [内存地址] [长度]
例如:md 0x02000000 128
表示显示0x02000000的内存数据,长度为128个32bit.
注意[长度]的取值,例如:
# md 02000000 10
02000000: ffffffff ffffffff ffffffff ffffffff ................
02000010: ffffffff ffffffff ffffffff ffffffff ................
02000020: ffffffff ffffffff ffffffff ffffffff ................
02000030: ffffffff ffffffff ffffffff ffffffff ................
# md 02000000 a
02000000: ffffffff ffffffff ffffffff ffffffff ................
02000010: ffffffff ffffffff ffffffff ffffffff ................
02000020: ffffffff ffffffff ........
3.fb
fastboot,用来通过otg烧写程序
uboot/board/pxa/common/uflash.c---flash_init
entry.flags = FLASH_FLAGS_SPI;
strcpy(entry.name,"tim");
entry.start=0x0;
entry.length=0x10000;
flash_add_ptn(&entry);
strcpy(entry.name,"obm");
entry.start=0x10000;
entry.length=0x20000;
flash_add_ptn(&entry);
strcpy(entry.name,"boot");
entry.start=0x30000;
entry.length=0x40000;
flash_add_ptn(&entry);
uboot/board/pxa/zmm1xx/zmm1xx.c---misc_init_r--flash_init
case 256:
default:{
struct uflash_entry uflash_entries[] = {
{"splash",0x180000,0x80000,FLASH_FLAGS_NAND},
{"config",0x100000,0x20000,FLASH_FLAGS_NAND},
{"kernel",0x200000,0x300000,FLASH_FLAGS_NAND},
{"system",0x500000,0x1900000,FLASH_FLAGS_NAND|FLASH_FLAGS_FS_YAFFS},
{"data",0x1e00000,0xdc00000,FLASH_FLAGS_NAND|FLASH_FLAGS_FS_YAFFS},
{NULL,0,0,0}};
struct uflash_entry* pentry = &uflash_entries[0];
while(NULL!=pentry->name){
strcpy(entry.name,pentry->name);
entry.start = pentry->start;
entry.length = pentry->length;
entry.flags = pentry->flags;
flash_add_ptn(&entry);
pentry++;
}
}break;
fb flash kernel xxx
fb flash system xxx
fb flash splash xxx
fb flash data xxx
fb flash tim xxx
fb flash obm xxx
4.bmpmngr 图片管理
#help bmpmngr
bmpmngr [info|reset|write|read] <bmpname> <addr> <size> - manipulate bmp mad
bmpmngr---查看splash分区里面有多少张图片,以及图片的名字
bmpmngr read bmp.splash 0x1000000 把图片bmp.splash读到内存0x1000000处
fatload usb 0:1 0x1000000 /autoupdate/autoupdate.bmp
bmpmngr write bmp.autoupdater 0x1000000 0x${filesize} ---从0x1000000处起,把0x${filesize}大小的图片的内容保存起来,并且命名为bmp.autoupdater
bmpmngr reset----把splash分区里面的图片信息清零。
5.bmp
#help bmp
bmp - manipulate BMP image data
bmp info 0x1000000 ----检查内存0x1000000处的内容是否是bmp图片
#bmp info 0x1000000
Image size : 480 x 272
Bits per pixel: 24
Compression : 0
5.disp
disp, CONFIG_SYS_MAXARGS, 0, do_disp,
"disp <option> [args] - show disp program\n",
"disp console [serial|vga]\n"
"disp lcdid [newid]\n"
"disp bmp [bmpname]\n"
#disp lcdid ---显示正在使用的lcdtype以及支持的全部的lcdtype
#disp lcdid 0x7000 ---选择一个新的屏类型使用,但是并不保存这个lcdtype,所以一般可以用来调试屏显示。
# disp bmp bmp.splash 把splash分区里面的bmp.splash 图片显示到屏幕
6.mtest
简单的内存测试
#mtest 0x0 0x1000000
Testing 0x00000000 ... 0x01000000:
Iteration: 1
7.#bbt
Usage:
bbt - Bad Block Management
#bbt init nand old --从新建立坏块表
8.nand
nand info & nand device----显示nand flash的信息。
nand read(.oob) addr off size 把nandflash的off处的内容读到raw的addr处,大小为size。
-----验证 md addr size/4
nand write addr off size--把raw addr处的内容写到nandflash的off处,大小为sizenand dump [addr] [size]
SMDK2440 # nand dump 0 100 Page 00000000 dump:nand erase [clean] [off size]
DM365 :>nand erase 1cc000 100 NAND erase: device 0 offset 0x1cc000, size 0x100