uboot命令总结
Uboot相关命令介绍1、bootmbootm [addr [arg ...]] ??? - boot application image stored in memory ????????? passing arguments 'arg ...'; when booting a Linux kernel, ??? ??????'arg' can be the address of an initrd image bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。 第1个参数addr是程序映像的地址,这个程序映像必须转换成U-Boot的格式。 第2个参数对于引导Linux内核有用,通常作为U-Boot格式的RAMDISK映像存储地址;也可以是传递给Linux内核的参数(缺省情况下传递bootargs环境变量给内核)。 Bootm 执行内存中的二进制代码
要求二进制代码为制定格式的。通常为mkimage处理过的二进制文件。起动UBOOT TOOLS制作的压缩LINUX内核,bootm 3200000
Bootp 通过网络启动,需要提前设置好硬件地址。
2、bootpbootp [loadAddress] [bootfilename] bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。 第1个参数是下载文件存放的内存地址。 第2个参数是要下载的文件名称,这个文件应该在开发主机上准备好。 ? 3、cmpcmp [.b,.w,.l] addr1 addr2 count ???? - compare memory cmp命令可以比较2块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。注意:cmp.b中间不能保留空格,需要连续敲入命令。 第1个参数addr1是第一块内存的起始地址。 第2个参数addr2是第二块内存的起始地址。 第3个参数count是要比较的数目,单位按照字节、字或者长字。 ? 4、cpcp [.b,.l] source target count ?????? - copy memory cp命令可以在内存中复制数据块,包括对Flash的读写操作。 第1个参数source是要复制的数据块起始地址。 第2个参数target是数据块要复制到的地址。这个地址如果在Flash中,那么会直接调用写Flash的函数操作。所以U-Boot写Flash就使用这个命令,当然需要先把对应Flash区域擦干净。 第3个参数count是要复制的数目,根据cp.b cp.w cp.l分别以字节、字、长字为单位。 ? 5、crc32crc32 address count [addr] ???? - compute CRC32 checksum [save at addr]?? crc32命令可以计算存储数据的校验和。 第1个参数address是需要校验的数据起始地址。 第2个参数count是要校验的数据字节数。 第3个参数addr用来指定保存结果的地址。 ? 6、echoecho [args..] ????? - echo args to console; c suppresses newline echo命令回显参数。 7、eraseerase start end ????? - erase FLASH from addr 'start' to addr 'end' erase N:SF[-SL] ????? - erase sectors SF-SL in FLASH bank # N erase bank N ????? - erase FLASH bank # N erase all ????? - erase all FLASH banks ? erase命令可以擦Flash。 参数必须指定Flash擦除的范围。 按照起始地址和结束地址,start必须是擦除块的起始地址;end必须是擦除末尾块的结束地址。这种方式最常用。举例说明:擦除0x20000 – 0x3ffff区域命令为erase 20000 3ffff。 按照组和扇区,N表示Flash的组号,SF表示擦除起始扇区号,SL表示擦除结束扇区号。另外,还可以擦除整个组,擦除组号为N的整个Flash组。擦除全部Flash只要给出一个all的参数即可。 ? 8、flinfoflinfo ?????? - print information for all FLASH memory banks flinfo N ?????? - print information for FLASH memory bank # N ? flinfo命令打印全部Flash组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash只有一个组。 ? 9、gogo addr [arg ...] ????? - start application at address 'addr' ???? ???passing 'arg' as arguments ? go命令可以执行应用程序。 第1个参数是要执行程序的入口地址。 第2个可选参数是传递给程序的参数,可以不用。 ? Go 执行内存中的二进制代码,一个简单的跳转到指定地址
10、minfoiminfo addr [addr ...] ????? - print header information for application image starting at ???????? address 'addr' in memory; this includes verification of the ???????? image contents (magic number,header and payload checksums) ? iminfo可以打印程序映像的开头信息,包含了映像内容的校验(序列号、头和校验和)。 第1个参数指定映像的起始地址。 可选的参数是指定更多的映像地址。 ? 11、loadbloadb [ off ] [ baud ] ???? - load binary file over serial line with offset 'off' and baudrate 'baud'
12、loadsloads [ off ] ??? - load S-Record file over serial line with offset 'off' ? loads命令可以通过串口线下载S-Record格式文件。 ? 13、mwmw [.b,.l] address value [count] ???? - write memory
第1个参数address是要写的内存地址。 第2个参数value是要写的值。 第3个可选参数count是要写单位值的数目。 14mw 用指定的数据填充内存参数 mw.b [address value ] //按字节显示mw.w [address value ] //按字显示 mw.l [address value ] //按长字显示? 15md 查看内存参数 md.b [address] //按字节显示md.w [address] //按字显示 md.l [address] //按长字显示 16mm 内存修改,地址自动递增参数 mm.b [address] //按字节显示mm.w [address] //按字显示 mm.l [address] //按长字显示 17、nfsnfs [loadAddress] [host ip addr:bootfilename] nfs命令可以使用NFS网络协议通过网络启动映像。 ? 18、nmnm [.b,.l] address ???? - memory modify,read and keep address ? nm命令可以修改内存,可以按照字节、字、长字操作。 参数address是要读出并且修改的内存地址。 ? 19nm 修改内存值 (指定地址)参数 nm.b [address] //按字节显示nm.w [address] //按字显示 nm.l [address] //按长字显示 20、printenvprintenv ????? - print values of all environment variables printenv name ... ????? - print value of environment variable 'name' ? printenv命令打印环境变量。 可以打印全部环境变量,也可以只打印参数中列出的环境变量。 ?
21、protectprotect on? start end ????? - protect Flash from addr 'start' to addr 'end' protect on? N:SF[-SL] ????? - protect sectors SF-SL in Flash bank # N protect on? bank N ???? ?- protect Flash bank # N protect on? all ????? - protect all Flash banks protect off start end ?? ???- make Flash from addr 'start' to addr 'end' writable protect off N:SF[-SL] ???? - make sectors SF-SL writable in Flash bank # N protect off bank N ???? - make Flash bank # N writable protect off all ???? - make all Flash banks writable ? protect命令是对Flash写保护的操作,可以使能和解除写保护。 第1个参数on代表使能写保护;off代表解除写保护。 第2、3参数是指定Flash写保护操作范围,跟擦除的方式相同。 ? 22、rarpbootrarpboot [loadAddress] [bootfilename] ? rarboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。 第1个参数是映像文件下载到的内存地址。 第2个参数是要下载执行的映像文件。 ? 23、runrun var [...] ????? - run the commands in the environment variable(s) 'var' run命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。 ?
run 执行设置好的脚本
Uboot> setenv flashit tftp 20000000 mycode.bin/; erase 10020000 1002FFFF/;cp.b 20000000 10020000 8000
Uboot> saveenv Uboot> run flashit 24 saveenv 保存环境变量,简写sa25、setenvsetenv name value ... ????? - set environment variable 'name' to 'value ...' setenv name ????? - delete environment variable 'name' ? setenv命令可以设置环境变量。 第1个参数是环境变量的名称。 第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量。 ? setenv 添加,修改,删除环境变量例 setenv aaa 123 //添加环境变量aaa其值为123setenv aaa 789 //在上行变量基础上把aaa的值修改(重设)为789 setenv aaa //把aaa变量删除
可以设置的环境变量:
26、sleepsleep N ????? - delay execution for N seconds (N is _decimal_ !!!) sleep命令可以延迟N秒钟执行,N为十进制数。 ? 27、tftpboottftpboot [loadAddress] [bootfilename] tftpboot命令可以使用TFTP协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。 第1个参数loadAddress是下载到的内存地址。 第2个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。 这些U-Boot命令为嵌入式系统提供了丰富的开发和调试功能。在Linux内核启动和调试过程中,都可以用到U-Boot的命令。但是一般情况下,不需要使用全部命令。比如已经支持以太网接口,可以通过tftpboot命令来下载文件,那么还有必要使用串口下载的loadb吗?反过来,如果开发板需要特殊的调试功能,也可以添加新的命令。 28bdinfo 查看开发板信息查看和修改内存值的指令(可以查看和修改SDRAM和寄存器值)[.b,.l]代表了查看和修改形式:bit、word、long 29cp 内存的拷贝(包括内存与Nor Flash间的数据拷贝)参数 cp.b [source target count] //按字节显示cp.w [source target count] //按字显示 cp.l [source target count] //按长字显示 例 cp source dest len 30protect 扇区写保护(对Flash 写保护)protect on all 保护全开 protect off all 保护解除 protect on start end //start end是照起始地址和结束地址定义范围, protect off start end //start是保护块的起始地址; //end 是保护末尾块的结束地址。 例如:保护Sector 2和Sector 3区域命令为protect 20000 3ffff protect on start +size //start +size是照起始地址和操作字节数定义范围 protect off start +size //start是保护块的起始地址; //size 是保护的字节数。 例如:保护Sector 2和Sector 3区域命令为protect 20000 +20000 protect on N:SF[-SL] protect off N:SF[-SL] //N:SF[-SL]是按照组和扇区,N 表示Flash 的Block号, //SF 表示保护起始Sector号,SL 表示保护结束Sector号。 例如:保护Block1 的Sector 2和Sector 3区域命令为protect 1:2-3 protect on bank N //bank N是保护整个Block, protect off bank N //保护Block号为N 的整个Flash 31erase 擦除Flash的命令erase all 擦除全部erase start end //start end是照起始地址和结束地址定义范围, //start是擦除块的起始地址; //end 是擦除末尾块的结束地址。 例如:擦除Sector 2和Sector 3区域命令为erase 20000 3ffff erase start +size //start +size是照起始地址和操作字节数定义范围 //start是擦除块的起始地址; //size 是擦除的字节数。 例如:擦除Sector 2和Sector 3区域命令为erase 20000 +20000 erase N:SF[-SL] //N:SF[-SL]是按照组和扇区,N 表示Flash 的Block号, //SF 表示擦除起始Sector号,SL 表示擦除结束Sector号。 例如:保护Block1 的Sector 2和Sector 3区域命令为erase 1:2-3 erase bank N //bank N是擦除整个Block, //擦除Block号为N 的整个Flash 32从Nand flash中读数据Nand read dest(sdram) src(Flash) size对Nand flash擦除数据Nand erase start size向Nand flash中写数据Nand write src(sdram) dest size bootcmd 保留的环境变量,也是一种脚本
如果定义了该变量,在autoboot模式下,将会执行该脚本的内容。
? 得到所有命令列表help? help usb,列出USB功能的使用说明ping? 注:只能开发板PING别的机器usb start:? 起动usb 功能
|