嵌入式驱动开发之uboot---uboot 中的常见命令参数参数
- Uboot相关命令介绍
- bootm
- bootp
- cmp
- cp
- crc32
- echo
- erase
- flinfo
- go
- minfo
- loadb
- loads
- mw
- 14mw 用指定的数据填充内存
- 15md 查看内存
- 16mm 内存修改地址自动递增
- nfs
- nm
- 19nm 修改内存值 指定地址
- printenv
- printenv 查看环境变量可以简写为pri
- protect
- rarpboot
- run
- saveenv 保存环境变量简写sa
- setenv
- setenv 添加修改删除环境变量
- sleep
- tftpboot
- 28bdinfo 查看开发板信息
- 29cp 内存的拷贝包括内存与Nor Flash间的数据拷贝
- 30protect 扇区写保护对Flash 写保护
- 31erase 擦除Flash的命令
- 32从Nand flash中读数据
- 对Nand flash擦除数据
- 向Nand flash中写数据
- bootcmd 保留的环境变量也是一种脚本
- 得到所有命令列表
- help help usb 列出USB功能的使用说明
- ping 注只能开发板PING别的机器
- usb start 起动usb 功能 usb info 列出设备 usb scan 扫描usb storageu 盘设备
- kgo 起动没有压缩的linux内核
- kgo 32000000
- fatls 列出DOS FAT文件系统
- fatls usb 0列出第一块U盘中的文件
- fatload 读入FAT中的一个文件
- fatload usb 00 32000000 aatxt 把USB中的aatxt 读到物理内存0x32000000处
- nfs
应用背景:
(1)按字节修改内存
TI8148_EVM#mm.b 80000000
8000022f: 2c ?
80000230: 14 ?
80000231: 34 ? TI8148_EVM#
80000231: 34 ?
80000232: 36 ? ls
TI8148_EVM#ls
Unknown command 'ls' - try 'help'
(2)按字节显示开始地址80000000的内存内容
TI8148_EVM#md.l 80000000
80000000: 05050505 05050505 05055505 05050505 .........U......
80000010: 0505ba05 05050505 05050505 05550505 ..............U.
80000020: 05054605 05050505 05050505 05050505 .F..............
80000030: 05050505 05050505 05050505 05c20505 ................
80000040: 05050505 40050505 05050505 05058205 .......@........
80000050: 05050505 05050505 0505051b 05050505 ................
80000060: 05050505 05050505 05053605 05050955 .........6..U...
80000070: 43050505 05050505 05050105 0555051c ...C..........U.
80000080: 05050505 0505b805 60050505 05050505 ...........`....
80000090: 05055505 05050540 05050500 05050505 .U..@...........
800000a0: 05050505 05b00505 05050505 05a80505 ................
800000b0: 67050505 05050505 05050505 55050505 ...g...........U
800000c0: 80050505 05050505 55050505 05550528 ...........U(.U.
800000d0: 0b050531 05050505 05050505 05050205 1...............
800000e0: 05050505 05050505 05050555 0505054b ........U...K...
800000f0: 05050505 05050505 05050505 05050505 ................
TI8148_EVM#md.l a0000000
a0000000: 08208001 12102014 00101940 10560088 .. .. ..@.....V.
a0000010: 05002102 88000680 02004184 50820001 .!.......A.....P
a0000020: 0a000804 04040010 00400004 0104c010 ..........@.....
a0000030: 80000002 02210088 00084185 00000000 ......!..A......
a0000040: 00012400 80000180 88000008 80000904 .$..............
a0000050: 40000180 00040400 40000100 00000000 ...@.......@....
a0000060: 08800080 00400820 04888400 4000033c .... .@.....<..@
a0000070: 00881840 02010082 21008000 00004705 @..........!.G..
a0000080: 28018008 42020882 0000a420 00040200 ...(...B .......
a0000090: 88aa0048 00020001 010061c6 04101000 H........a......
a00000a0: 58010588 20040044 52044000 04180162 ...XD.. .@.Rb...
a00000b0: 01622000 4449b208 85040004 01000af8 . b...ID........
a00000c0: 00010000 c0200023 08040008 01400080 ....#. .......@.
a00000d0: 08001060 804b0300 03100261 10083000 `.....K.a....0..
a00000e0: 10124091 08200420 00040180 00900031 .@.. . .....1...
a00000f0: 0842c02d 04001080 00000800 80809080 -.B.............
TI8148_EVM#mw.b 80000000
mw - memory write (fill)
Usage:
mw [.b, .w, .l] address value [count]
(3)修改内存地址8000000 的内容
TI8148_EVM#mw.b 80000000 6
TI8148_EVM#md.l 80000000
80000000: 05050506 05050505 05055505 05050505 .........U......
80000010: 0505ba05 05050505 05050505 05550505 ..............U.
80000020: 05054605 05050505 05050505 05050505 .F..............
80000030: 05050505 05050505 05050505 05c20505 ................
80000040: 05050505 40050505 05050505 05058205 .......@........
80000050: 05050505 05050505 0505051b 05050505 ................
80000060: 05050505 05050505 05053605 05050955 .........6..U...
80000070: 43050505 05050505 05050105 0555051c ...C..........U.
80000080: 05050505 0505b805 60050505 05050505 ...........`....
80000090: 05055505 05050540 05050500 05050505 .U..@...........
800000a0: 05050505 05b00505 05050505 05a80505 ................
800000b0: 67050505 05050505 05050505 55050505 ...g...........U
800000c0: 80050505 05050505 55050505 05550528 ...........U(.U.
800000d0: 0b050531 05050505 05050505 05050205 1...............
800000e0: 05050505 05050505 05050555 0505054b ........U...K...
800000f0: 05050505 05050505 05050505 05050505 ................
TI8148_EVM#mw.b 80000004 7
TI8148_EVM#md.l 80000000
80000000: 05050506 05050507 05055505 05050505 .........U......
80000010: 0505ba05 05050505 05050505 05550505 ..............U.
80000020: 05054605 05050505 05050505 05050505 .F..............
80000030: 05050505 05050505 05050505 05c20505 ................
80000040: 05050505 40050505 05050505 05058205 .......@........
80000050: 05050505 05050505 0505051b 05050505 ................
80000060: 05050505 05050505 05053605 05050955 .........6..U...
80000070: 43050505 05050505 05050105 0555051c ...C..........U.
80000080: 05050505 0505b805 60050505 05050505 ...........`....
80000090: 05055505 05050540 05050500 05050505 .U..@...........
800000a0: 05050505 05b00505 05050505 05a80505 ................
800000b0: 67050505 05050505 05050505 55050505 ...g...........U
800000c0: 80050505 05050505 55050505 05550528 ...........U(.U.
800000d0: 0b050531 05050505 05050505 05050205 1...............
800000e0: 05050505 05050505 05050555 0505054b ........U...K...
800000f0: 05050505 05050505 05050505 05050505 ................
TI8148_EVM#
Uboot相关命令介绍
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环境变量给内核)。
Bootm 执行内存中的二进制代码
2、bootp
bootp [loadAddress] [bootfilename]
bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。
第1个参数是下载文件存放的内存地址。
第2个参数是要下载的文件名称,这个文件应该在开发主机上准备好。
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命令回显参数。
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的参数即可。
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个可选参数是传递给程序的参数,可以不用。
Go 执行内存中的二进制代码,一个简单的跳转到指定地址
10、minfo
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'
loadb命令可以通过串口线下载二进制格式文件。
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
mw命令可以按照字节、字、长字写内存,.b .w .l的用法与cp命令相同。
第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、nfs
nfs [loadAddress] [host ip addr:bootfilename]
nfs命令可以使用NFS网络协议通过网络启动映像。
18、nm
nm [.b, .w, .l] address
- memory modify, read and keep address
nm命令可以修改内存,可以按照字节、字、长字操作。
参数address是要读出并且修改的内存地址。
19nm 修改内存值 (指定地址)
参数 nm.b [address] //按字节显示
nm.w [address] //按字显示
nm.l [address] //按长字显示
20、printenv
printenv
- print values of all environment variables
printenv name ...
- print value of environment variable 'name'
printenv命令打印环境变量。
可以打印全部环境变量,也可以只打印参数中列出的环境变量。
printenv 查看环境变量,可以简写为pri
21、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写保护操作范围,跟擦除的方式相同。
22、rarpboot
rarpboot [loadAddress] [bootfilename]
rarboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。
第1个参数是映像文件下载到的内存地址。
第2个参数是要下载执行的映像文件。
23、run
run var [...]
- run the commands in the environment variable(s) 'var'
run命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。
Uboot> saveenv
Uboot> run flashit
24 saveenv 保存环境变量,简写sa
25、setenv
setenv name value ...
- set environment variable 'name' to 'value ...'
setenv name
- delete environment variable 'name'
setenv命令可以设置环境变量。
第1个参数是环境变量的名称。
第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量。
setenv 添加,修改,删除环境变量
例 setenv aaa 123 //添加环境变量aaa其值为123
setenv aaa 789 //在上行变量基础上把aaa的值修改(重设)为789
setenv aaa //把aaa变量删除
可以设置的环境变量:
环 境 变 量 | 解 释 说 明 |
bootdelay | 定义执行自动启动的等候秒数 |
baudrate | 定义串口控制台的波特率 |
netmask | 定义以太网接口的掩码 |
ethaddr | 定义以太网接口的MAC地址 |
bootfile | 定义缺省的下载文件 |
bootargs | 定义传递给Linux内核的命令行参数 |
bootcmd | 定义自动启动时执行的几条命令 |
serverip | 定义tftp服务器端的IP地址 |
ipaddr | 定义本地的IP地址 |
stdin | 定义标准输入设备,一般是串口 |
stdout | 定义标准输出设备,一般是串口 |
stderr | 定义标准出错信息输出设备,一般是串口 |
26、sleep
sleep N
- delay execution for N seconds (N is _decimal_ !!!)
sleep命令可以延迟N秒钟执行,N为十进制数。
27、tftpboot
tftpboot [loadAddress] [bootfilename]
tftpboot命令可以使用TFTP协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serverip和ipaddr。
第1个参数loadAddress是下载到的内存地址。
第2个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。
这些U-Boot命令为嵌入式系统提供了丰富的开发和调试功能。在Linux内核启动和调试过程中,都可以用到U-Boot的命令。但是一般情况下,不需要使用全部命令。比如已经支持以太网接口,可以通过tftpboot命令来下载文件,那么还有必要使用串口下载的loadb吗?反过来,如果开发板需要特殊的调试功能,也可以添加新的命令。
28bdinfo 查看开发板信息
查看和修改内存值的指令(可以查看和修改SDRAM和寄存器值)
[.b, .w, .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
nfs 32000000 192.168.0.2:aa.txt
把192.168.0.2(LINUX 的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0x32000000处
http://blog.chinaunix.net/uid-13760159-id-2873259.html
http://blog.csdn.net/cgzhello1/article/details/7850685
http://www.cnblogs.com/squirrel_sc/p/4511096.html 神经网络分层还是不分层
http://www.cnblogs.com/huang0925/p/4505455.html github应用