U-Boot命令解析

2019-07-29 16:06发布

  U-Boot还提供了更加详细的命令帮助,可以通过”?”显示支持的命令列表,通过help [CommandName]命令还可以查看每个命令的参数说明。

      1、bootm

bootm [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环境变量给内核)。
      
     附加说明: 要求二进制代码为制定格式的。通常为mkimage处理过的二进制文件。起动UBOOT TOOLS制作的压缩LINUX内核, bootm 3200000

      2、bootp
  
   bootp [loadAddress] [bootfilename]     bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。
      第1个参数是下载文件存放的内存地址。
      第2个参数是要下载的文件名称,这个文件应该在开发主机上准备好。
附加说明: 通过网络启动,需要提前设置好硬件地址bdinfo打印ARM相关信息

      3、cmp

      cmp [.b, .w, .l] addr1 addr2 count
     - compare memory     cmp命令可以比较2块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。注意:cmp.b中间不能保留空格,需要连续敲入命令。
      第1个参数addr1是第一块内存的起始地址。
      第2个参数addr2是第二块内存的起始地址。
      第3个参数count是要比较的数目,单位按照字节、字或者长字。

      4、cp

      cp [.b, .w, .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、crc32

      crc32 address count [addr]
           - compute CRC32 checksum [save at addr]   
      crc32命令可以计算存储数据的校验和。
      第1个参数address是需要校验的数据起始地址。
      第2个参数count是要校验的数据字节数。
      第3个参数addr用来指定保存结果的地址。
      coninfo
      打印ARM相关信息
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
拿起书本
1楼-- · 2019-07-29 18:25
 精彩回答 2  元偷偷看……
拿起书本
2楼-- · 2019-07-29 23:47
   11、loadb

loadb [ off ] [ baud ]
     - load binary file over serial line with offset 'off' and baudrate 'baud'
      dKNLinux联盟loadb命令可以通过串口Kermit协议下载二进制数据。

      12、loads

loads [ off ]
    - load S-Record file over serial line with offset 'off'
loads命令可以通过串口线下载S-Record格式文件。

      13、mw

mw [.b, .w, .l] address value [count]
     - write memory
      dKNLinux联盟mw命令可以按照字节、字、长字写内存,.b .w .l的用法与cp命令相同。
      第1个参数address是要写的内存地址。
      第2个参数value是要写的值。
      第3个可选参数count是要写单位值的数目。
      用法: mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF)

      14、nm

nm [.b, .w, .l] address
     - memory modify, read and keep address     nm命令可以修改内存,可以按照字节、字、长字操作。
      参数address是要读出并且修改的内存地址。

      15、md
      显示内存区的内容。

      16、mm
      读或修改内存,地址自动递增。
      mm 内存地址 回车
      此时进入内存查看 直接按回车 保持原内容不变,若要改变,在问号后面输入数值然后回车 按 . 此符号退出

      17、nfs

nfs [loadAddress] [host ip addr:bootfilename]
      nfs命令可以使用NFS网络协议通过网络启动映像。
      用法:

      nfs 32000000 192.168.0.2:aa.txt
      把192.168.0.2(LINUX 的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0x32000000处。
      
拿起书本
3楼-- · 2019-07-30 02:28
     16、printenv
printenv
      - print values of all environment variables
printenv name ...
      - print value of environment variable 'name'
      printenv命令打印环境变量。
      可以打印全部环境变量,也可以只打印参数中列出的环境变量。

      17、protect

protect 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写保护操作范围,跟擦除的方式相同。
      用法:

protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护)
protect off 1:0-3取消写保护
protect off bank 1 解除/使能 第 N 块FLASH的写保护
      18、rarpboot

rarpboot [loadAddress] [bootfilename]     rarboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。
      第1个参数是映像文件下载到的内存地址。
      第2个参数是要下载执行的映像文件。


19、run

run var [...]
      - run the commands in the environment variable(s) 'var'     run命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。
      用法:

Uboot> setenv flashit tftp 20000000 mycode.bin; erase 10020000 1002FFFF;
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit     20、setenv

setenv name value ...
      - set environment variable 'name' to 'value ...'
setenv name
      - delete environment variable 'name'
      setenv命令可以设置环境变量。
      第1个参数是环境变量的名称。
      第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量。
      用法:

Uboot> setenv myboard AT91RM9200DK
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
myboard=AT91RM9200DK
Environment size: 102/8188 bytes

拿起书本
4楼-- · 2019-07-30 07:57
  21、Saveenv
      保存环境变量
      命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。
      
22、sleep

sleep N
     -delay execution for N seconds (N is _decimal_ !!!)     sleep命令可以延迟N秒钟执行,N为十进制数。

23、tftpboot

tftpboot [loadAddress] [bootfilename]
      tftpboot命令可以使用TFTP协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。
      第1个参数loadAddress是下载到的内存地址。
      第2个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。

  24、ping
      注:只能开发板PING别的机器

  25、usb
      usb start: 起动usb 功能
      usb info: 列出设备
      usb scan: 扫描usb storage(u 盘)设备

拿起书本
5楼-- · 2019-07-30 11:35
  26、kgo
      起动没有压缩的linux内核
      kgo 32000000

      27、fatls
      列出DOS FAT文件系统
      fatls usb 0列出第一块U盘中的文件

      28、fatload
      读入FAT中的一个文件
      fatload usb 0:0 32000000 aa.txt 把USB中的aa.txt 读到物理内存0x32000000处!
小木欧尼
6楼-- · 2019-07-30 15:40
 精彩回答 2  元偷偷看……

一周热门 更多>