• UBoot常用命令手册


    UBoot常用命令手册

    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用来指定保存结果的地址。


    6、echo

    echo [args..]

          - echo args to console; c suppresses newline

    echo命令回显参数。

    用法:echo $( bootcmd)


    7、erase

    erase 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的参数即可。

    用法:

    写入数据之前必须先执行该命令

    用法: erase 0xc******* +0xYYYYYYYY

    说明: 擦除从0xc******* 开始的0xYYYYYYYY字节(字节必须块对齐)

    例:

    Z228 # erase 0xc4040000 +0x180000

    ........................ done

    Erased 24 sectors

    附加: erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除)

    h. cp.b

    拷贝数据,从指定源地址到目标地址,地址可以是ram,也可以是nor flash

    用法: cp.b 0x******** 0x######## 0xYYYYYYYY

    说明: 拷贝源0x********到目标0x########,共拷贝0xYYYYYYY字节

    例:

    Z228 # cp.b 0x200000 0xc4040000 0x180000

    Copy to Flash... done

    8、flinfo

    flinfo

           - print information for all FLASH memory banks

    flinfo N

           - print information for FLASH memory bank # N

    flinfo命令打印全部Flash组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash只有一个组。

    9、go

    go addr [arg ...]

          - start application at address 'addr'

             passing 'arg' as arguments

    go命令可以执行应用程序。

    第1个参数是要执行程序的入口地址。

    第2个可选参数是传递给程序的参数,可以不用。

    10、iminfo

    iminfo 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、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处。

    18、printenv

    printenv

          - print values of all environment variables

    printenv name ...

          - print value of environment variable 'name'

    printenv命令打印环境变量。

    可以打印全部环境变量,也可以只打印参数中列出的环境变量。

    19、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的写保护

    20、rarpboot

    rarpboot [loadAddress] [bootfilename]

    rarboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。

    第1个参数是映像文件下载到的内存地址。

    第2个参数是要下载执行的映像文件。

    21、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

    22、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

    23、Saveenv

    保存环境变量

    命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。

    24、sleep

    sleep N

          - delay execution for N seconds (N is _decimal_ !!!)

    sleep命令可以延迟N秒钟执行,N为十进制数。

    25、tftpboot

    tftpboot [loadAddress] [bootfilename]

    tftpboot命令可以使用TFTP协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。

    第1个参数loadAddress是下载到的内存地址。

    第2个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。

    26、ping

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

    27、usb

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

    28、kgo

    起动没有压缩的linux内核

    kgo 32000000

    29、fatls

    列出DOS FAT文件系统

    fatls usb 0列出第一块U盘中的文件

    30、fatload

    读入FAT中的一个文件

    fatload usb 0:0 32000000 aa.txt 把USB中的aa.txt 读到物理内存0x32000000处

    Printenv 打印环境变量。

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

    Setenv 设置新的变量

    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

    Saveenv 保存变量

    命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。

    Loadb 通过串口Kermit协议下载二进制数据。

    Tftp 通过网络下载程序,需要先设置好网络配置

    Uboot> setenv ethaddr 12:34:56:78:9A:BC
    Uboot> setenv ipaddr 192.168.1.1
    Uboot> setenv serverip 192.168.1.254     (tftp服务器的地址)
    下载bin文件到地址0x20000000处。
    Uboot> tftp 20000000 application.bin (application.bin应位于tftp服务程序的目录)

    Uboot> tftp 32000000 vmlinux
    把server(IP=环境变量中设置的serverip)中/tftpdroot/ 下的vmlinux通过TFTP读入到物理内存32000000处。

    Md 显示内存区的内容。

    Mm 修改内存,地址自动递增。

    Nm 修改内存,地址不自动递增。

    Mw 用模型填充内存

    mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF)

    Cp 拷贝一块内存到另一块

       cp.b 20000000 10000000 ffff ;将20000000的数据写入10000000,ffff为文件大小

    Cmp 比较两块内存区

    这些内存操作命令后都可加一个后缀表示操作数据的大小,比如cp.b表示按字节拷贝。

    Protect 写保护操作

    protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护)
    protect off 1:0-3取消写保护

    Erase 擦除扇区。

    erase: 删除FLASH的扇区
    erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除)

    对DataFlash的操作

    U-Boot在引导时如果发现NPCS0和NPCS3上连有DataFlash,就会分配虚拟的地址给它,具体为 :
    0xC0000000---NPCS0
    0xD0000000---NPCS3

    run 执行设置好的脚本

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

    bootcmd 保留的环境变量,也是一种脚本

    如果定义了该变量,在autoboot模式下,将会执行该脚本的内容。

    Go 执行内存中的二进制代码,一个简单的跳转到指定地址

    Bootm 执行内存中的二进制代码

    要求二进制代码为制定格式的。通常为mkimage处理过的二进制文件。
    起动UBOOT TOOLS制作的压缩LINUX内核, bootm 3200000

    Bootp 通过网络启动,需要提前设置好硬件地址。

     得到所有命令列表

    help help usb, 列出USB功能的使用说明

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

    usb

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

    kgo 起动没有压缩的linux内核

    kgo 32000000

    fatls 列出DOS FAT文件系统

    fatls usb 0列出第一块U盘中的文件

    fatload 读入FAT中的一个文件

    fatload usb 0:0 32000000 aa.txt 把USB中的aa.txt 读到物理内存0x32000000处!

    flinfo 列出flash的信息

    nfs

    nfs 32000000 192.168.0.2:aa.txt
    把192.168.0.2(LINUX 的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0x32000000处。

  • 相关阅读:
    线程中一些常用方法的分析
    Java中获取路径的方法_自我分析
    Mybatis 一对一,一对多,多对一,多对多的理解
    页面刷新两次为什么取不到值
    排序--插入
    排序--冒泡
    页面刷新两次为什么取不到值
    容器模式
    java操作oracle的blob,clob数据
    Redis基本操作命令
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/5211937.html
Copyright © 2020-2023  润新知