DSP

UBoot常用命令手册

2019-07-13 20:37发布


前言:最近弄到一块DSPTMS320TCI6614EVM)的开发板,对于开发板的文档里为什么一直没有uboot命令的详细说明感到纳闷,请教了高手才知道原来uboot程序已经是一个有组织有规范的开源项目,uboot命令都是通用的,没必要在说明文档里重复赘述,下面是我网上搜集的一部分uboot常用命令使用说明,以后根据实际使用情况添加。   U-Boot还提供了更加详细的命令帮助,可以通过?显示支持的命令列表,通过help [CommandName]命令还可以查看每个命令的参数说明。   1bootm bootm [addr [arg ...]]     - boot application imagestored 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   2bootp bootp [loadAddress] [bootfilename] bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。 1个参数是下载文件存放的内存地址。 2个参数是要下载的文件名称,这个文件应该在开发主机上准备好。 附加说明: 通过网络启动,需要提前设置好硬件地址bdinfo打印ARM相关信息   3cmp cmp [.b, .w, .l] addr1 addr2 count      - compare memory cmp命令可以比较2块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。注意:cmp.b中间不能保留空格,需要连续敲入命令。 1个参数addr1是第一块内存的起始地址。 2个参数addr2是第二块内存的起始地址。 3个参数count是要比较的数目,单位按照字节、字或者长字。   4cp cp [.b, .w, .l] source target count        - copymemory cp命令可以在内存中复制数据块,包括对Flash的读写操作。 1个参数source是要复制的数据块起始地址。 2个参数target是数据块要复制到的地址。这个地址如果在Flash中,那么会直接调用写Flash的函数操作。所以U-BootFlash就使用这个命令,当然需要先把对应Flash区域擦净。 3个参数count是要复制的数目,根据cp.b cp.w cp.l分别以字节、字、长字为单位。   5crc32 crc32 address count [addr]      - compute CRC32checksum [save at addr]   crc32命令可以计算存储数据的校验和。 1个参数address是需要校验的数据起始地址。 2个参数count是要校验的数据字节数。 3个参数addr用来指定保存结果的地址。
6
echo echo [args..]       - echo args toconsole; c suppresses newline echo命令回显参数。 用法:echo $( bootcmd
7
erase erase start end       - erase FLASHfrom addr 'start' to addr 'end' erase N:SF[-SL]       - erase sectorsSF-SL in FLASH bank # N erase bank N       - erase FLASHbank # N erase all       - erase allFLASH 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(就是对每一块FLASH0-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   8flinfo flinfo        - printinformation for all FLASH memory banks flinfo N        - printinformation for FLASH memory bank # N flinfo命令打印全部Flash组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash只有一个组。   9go go addr [arg ...]       - startapplication at address 'addr'         passing 'arg' as arguments go命令可以执行应用程序。 1个参数是要执行程序的入口地址。 2个可选参数是传递给程序的参数,可以不用。   10iminfo iminfo addr [addr ...]       - print headerinformation for application image starting at         address 'addr' in memory; this includes verification of the         image contents (magic number, header and payload checksums) iminfo可以打印程序映像的开头信息,包含了映像内容的校验(序列号、头和校验和)。 1个参数指定映像的起始地址。 可选的参数是指定更多的映像地址。   11loadb loadb [ off ] [ baud ]      - load binary fileover serial line with offset 'off' and baudrate 'baud' dKNLinux联盟loadb命令可以通过串口Kermit协议下载二进制数据。
12
loads loads [ off ]     - load S-Record file overserial line with offset 'off' loads命令可以通过串口线下载S-Record格式文件。   13mw 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)   14nm nm [.b, .w, .l] address      - memory modify, readand keep address nm命令可以修改内存,可以按照字节、字、长字操作。 参数address是要读出并且修改的内存地址。   15Md 显示内存区的内容。   16Mm 读或修改内存,地址自动递增。 mm 内存地址回车
此时进入内存查看直接按回车保持原内容不变,若要改变,在问号后面输入数值然后回车 .此符号退出
17
nfs nfs [loadAddress] [host ip addr:bootfilename] nfs命令可以使用NFS网络协议通过网络启动映像。 用法: nfs 32000000 192.168.0.2:aa.txt
192.168.0.2(LINUXNFS文件系统)中的NFS文件系统中的aa.txt读入内存0x32000000处。   18printenv printenv       - print valuesof all environment variables printenv name ...       - print valueof environment variable 'name' printenv命令打印环境变量。 可以打印全部环境变量,也可以只打印参数中列出的环境变量。   19protect protect on start end       - protect Flashfrom addr 'start' to addr 'end' protect on N:SF[-SL]       - protectsectors SF-SL in Flash bank # N protect on bank N      - protect Flash bank# N protect on all       - protect allFlash banks protect off start end        - makeFlash from addr 'start' to addr 'end' writable protect off N:SF[-SL]      - make sectors SF-SLwritable in Flash bank # N protect off bank N      - make Flash bank # Nwritable protect off all      - make all Flashbanks writable protect命令是对Flash写保护的操作,可以使能和解除写保护。 1个参数on代表使能写保护;off代表解除写保护。 23参数是指定Flash写保护操作范围,跟擦除的方式相同。 用法: protect on 1:0-3(就是对第一块FLASH0-3扇区进行保护) protect off 1:0-3取消写保护 protect off bank 1 解除/使能 NFLASH的写保护   20rarpboot rarpboot [loadAddress] [bootfilename] rarboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。 1个参数是映像文件下载到的内存地址。 2个参数是要下载执行的映像文件。   21run run var [...]       - run thecommands in the environment variable(s) 'var' run命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。 用法: Uboot> setenv flashit tftp 20000000mycode.bin; erase 10020000 1002FFFF;
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit
  22setenv setenv name value ...       - setenvironment variable 'name' to 'value ...' setenv name       - deleteenvironment 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
  23Saveenv 保存环境变量 命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。   24sleep sleep N       - delayexecution for N seconds (N is _decimal_ !!!) sleep命令可以延迟N秒钟执行,N为十进制数。   25tftpboot tftpboot [loadAddress] [bootfilename] tftpboot命令可以使用TFTP协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serveripipaddr 1个参数loadAddress是下载到的内存地址。 2个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。   26ping 注:只能开发板PING别的机器   27usb usb start: 起动usb功能
usb info:
列出设备
usb scan:
扫描usb storage(u)设备   28kgo 起动没有压缩的linux内核 kgo 32000000   29fatls 列出DOS FAT文件系统 fatls usb 0列出第一块U盘中的文件   30fatload 读入FAT中的一个文件 fatload usb 0:0 32000000 aa.txt USB中的aa.txt读到物理内存0x32000000处!
------------------------------------------------------------ 以下部分由转载者添加. Example: 1. Set the Boot parameters and save. setenv ipaddr 192.168.0.101
setenv netmask 255.255.255.0
setenv gatewayip 192.168.0.1
setenv serverip 192.168.0.100
saveenv 
printenv

2. Download BSP file with tftp command tftp c0008000 bsp_arm.ifs     //download the file bsp_arm.ifs to the memory address at 0xc008000
erase 60200000 +900000 //Erase the flash sectors start at the address 0x60200000, the size is 0x900000 byte (9MB)
cp.b c0008000 60200000 900000   // Copy the data from memory (at address 0xc008000) to flash (at address 0x60200000), the size unit is byte (copy.b), the data size is 0x900000 byte (9MB).

3. usage of protect #for efs_usr_image.efs
tftp c0008000 usr_image.efs
erase 0x61000000 +3000000
protect off all
cp.b c0008000 0x61000000 3000000

4. Use the command "run" setenv FlashBsp tftp c0008000 bsp_omap_withroot.ifs; erase 60200000 +900000;cp.b c0008000 60200000 900000
saveenv
run FlashBsp