嵌入式驱动开发之uboot---uboot 中的常见命令参数参数
Uboot相關(guān)命令介紹
bootm
bootp
cmp
cp
crc32
echo
erase
flinfo
go
minfo
loadb
loads
mw
14mw 用指定的數(shù)據(jù)填充內(nèi)存
15md 查看內(nèi)存
16mm 內(nèi)存修改地址自動遞增
nfs
nm
19nm 修改內(nèi)存值 指定地址
printenv
printenv 查看環(huán)境變量可以簡寫為pri
protect
rarpboot
run
saveenv 保存環(huán)境變量簡寫sa
setenv
setenv 添加修改刪除環(huán)境變量
sleep
tftpboot
28bdinfo 查看開發(fā)板信息
29cp 內(nèi)存的拷貝包括內(nèi)存與Nor Flash間的數(shù)據(jù)拷貝
30protect 扇區(qū)寫保護對Flash 寫保護
31erase 擦除Flash的命令
32從Nand flash中讀數(shù)據(jù)
對Nand flash擦除數(shù)據(jù)
向Nand flash中寫數(shù)據(jù)
bootcmd 保留的環(huán)境變量也是一種腳本
得到所有命令列表
help help usb 列出USB功能的使用說明
ping 注只能開發(fā)板PING別的機器
usb start 起動usb 功能 usb info 列出設(shè)備 usb scan 掃描usb storageu 盤設(shè)備
kgo 起動沒有壓縮的linux內(nèi)核
kgo 32000000
fatls 列出DOS FAT文件系統(tǒng)
fatls usb 0列出第一塊U盤中的文件
fatload 讀入FAT中的一個文件
fatload usb 00 32000000 aatxt 把USB中的aatxt 讀到物理內(nèi)存0x32000000處
nfs
應(yīng)用背景:
(1)按字節(jié)修改內(nèi)存
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)按字節(jié)顯示開始地址80000000的內(nèi)存內(nèi)容
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)修改內(nèi)存地址8000000 的內(nèi)容
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相關(guān)命令介紹
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命令可以引導啟動存儲在內(nèi)存中的程序映像。這些內(nèi)存包括RAM和可以永久保存的Flash。
第1個參數(shù)addr是程序映像的地址,這個程序映像必須轉(zhuǎn)換成U-Boot的格式。
第2個參數(shù)對于引導Linux內(nèi)核有用,通常作為U-Boot格式的RAMDISK映像存儲地址;也可以是傳遞給Linux內(nèi)核的參數(shù)(缺省情況下傳遞bootargs環(huán)境變量給內(nèi)核)。
Bootm 執(zhí)行內(nèi)存中的二進制代碼
要求二進制代碼為制定格式的。通常為mkimage處理過的二進制文件。起動UBOOT TOOLS制作的壓縮LINUX內(nèi)核, bootm 3200000
Bootp 通過網(wǎng)絡(luò)啟動,需要提前設(shè)置好硬件地址。
2、bootp
bootp [loadAddress] [bootfilename]
bootp命令通過bootp請求,要求DHCP服務(wù)器分配IP地址,然后通過TFTP協(xié)議下載指定的文件到內(nèi)存。
第1個參數(shù)是下載文件存放的內(nèi)存地址。
第2個參數(shù)是要下載的文件名稱,這個文件應(yīng)該在開發(fā)主機上準備好。
3、cmp
cmp [.b, .w, .l] addr1 addr2 count
- compare memory
cmp命令可以比較2塊內(nèi)存中的內(nèi)容。.b以字節(jié)為單位;.w以字為單位;.l以長字為單位。注意:cmp.b中間不能保留空格,需要連續(xù)敲入命令。
第1個參數(shù)addr1是第一塊內(nèi)存的起始地址。
第2個參數(shù)addr2是第二塊內(nèi)存的起始地址。
第3個參數(shù)count是要比較的數(shù)目,單位按照字節(jié)、字或者長字。
4、cp
cp [.b, .w, .l] source target count
- copy memory
cp命令可以在內(nèi)存中復制數(shù)據(jù)塊,包括對Flash的讀寫操作。
第1個參數(shù)source是要復制的數(shù)據(jù)塊起始地址。
第2個參數(shù)target是數(shù)據(jù)塊要復制到的地址。這個地址如果在Flash中,那么會直接調(diào)用寫Flash的函數(shù)操作。所以U-Boot寫Flash就使用這個命令,當然需要先把對應(yīng)Flash區(qū)域擦干凈。
第3個參數(shù)count是要復制的數(shù)目,根據(jù)cp.b cp.w cp.l分別以字節(jié)、字、長字為單位。
5、crc32
crc32 address count [addr]
- compute CRC32 checksum [save at addr]
crc32命令可以計算存儲數(shù)據(jù)的校驗和。
第1個參數(shù)address是需要校驗的數(shù)據(jù)起始地址。
第2個參數(shù)count是要校驗的數(shù)據(jù)字節(jié)數(shù)。
第3個參數(shù)addr用來指定保存結(jié)果的地址。
6、echo
echo [args..]
- echo args to console; c suppresses newline
echo命令回顯參數(shù)。
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。
參數(shù)必須指定Flash擦除的范圍。
按照起始地址和結(jié)束地址,start必須是擦除塊的起始地址;end必須是擦除末尾塊的結(jié)束地址。這種方式最常用。舉例說明:擦除0x20000 – 0x3ffff區(qū)域命令為erase 20000 3ffff。
按照組和扇區(qū),N表示Flash的組號,SF表示擦除起始扇區(qū)號,SL表示擦除結(jié)束扇區(qū)號。另外,還可以擦除整個組,擦除組號為N的整個Flash組。擦除全部Flash只要給出一個all的參數(shù)即可。
8、flinfo
flinfo
- print information for all FLASH memory banks
flinfo N
- print information for FLASH memory bank # N
flinfo命令打印全部Flash組的信息,也可以只打印其中某個組。一般嵌入式系統(tǒng)的Flash只有一個組。
9、go
go addr [arg ...]
- start application at address 'addr'
passing 'arg' as arguments
go命令可以執(zhí)行應(yīng)用程序。
第1個參數(shù)是要執(zhí)行程序的入口地址。
第2個可選參數(shù)是傳遞給程序的參數(shù),可以不用。
Go 執(zhí)行內(nèi)存中的二進制代碼,一個簡單的跳轉(zhuǎn)到指定地址
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可以打印程序映像的開頭信息,包含了映像內(nèi)容的校驗(序列號、頭和校驗和)。
第1個參數(shù)指定映像的起始地址。
可選的參數(shù)是指定更多的映像地址。
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命令可以按照字節(jié)、字、長字寫內(nèi)存,.b .w .l的用法與cp命令相同。
第1個參數(shù)address是要寫的內(nèi)存地址。
第2個參數(shù)value是要寫的值。
第3個可選參數(shù)count是要寫單位值的數(shù)目。
14mw 用指定的數(shù)據(jù)填充內(nèi)存
參數(shù) mw.b [address value ] //按字節(jié)顯示
mw.w [address value ] //按字顯示
mw.l [address value ] //按長字顯示
15md 查看內(nèi)存
參數(shù) md.b [address] //按字節(jié)顯示
md.w [address] //按字顯示
md.l [address] //按長字顯示
16mm 內(nèi)存修改,地址自動遞增
參數(shù) mm.b [address] //按字節(jié)顯示
mm.w [address] //按字顯示
mm.l [address] //按長字顯示
17、nfs
nfs [loadAddress] [host ip addr:bootfilename]
nfs命令可以使用NFS網(wǎng)絡(luò)協(xié)議通過網(wǎng)絡(luò)啟動映像。
18、nm
nm [.b, .w, .l] address
- memory modify, read and keep address
nm命令可以修改內(nèi)存,可以按照字節(jié)、字、長字操作。
參數(shù)address是要讀出并且修改的內(nèi)存地址。
19nm 修改內(nèi)存值 (指定地址)
參數(shù) nm.b [address] //按字節(jié)顯示
nm.w [address] //按字顯示
nm.l [address] //按長字顯示
20、printenv
printenv
- print values of all environment variables
printenv name ...
- print value of environment variable 'name'
printenv命令打印環(huán)境變量。
可以打印全部環(huán)境變量,也可以只打印參數(shù)中列出的環(huán)境變量。
printenv 查看環(huán)境變量,可以簡寫為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個參數(shù)on代表使能寫保護;off代表解除寫保護。
第2、3參數(shù)是指定Flash寫保護操作范圍,跟擦除的方式相同。
22、rarpboot
rarpboot [loadAddress] [bootfilename]
rarboot命令可以使用TFTP協(xié)議通過網(wǎng)絡(luò)啟動映像。也就是把指定的文件下載到指定地址,然后執(zhí)行。
第1個參數(shù)是映像文件下載到的內(nèi)存地址。
第2個參數(shù)是要下載執(zhí)行的映像文件。
23、run
run var [...]
- run the commands in the environment variable(s) 'var'
run命令可以執(zhí)行環(huán)境變量中的命令,后面參數(shù)可以跟幾個環(huán)境變量名。
run 執(zhí)行設(shè)置好的腳本
Uboot> setenv flashit tftp 20000000 mycode.bin/; erase 10020000 1002FFFF/;cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit
24 saveenv 保存環(huán)境變量,簡寫sa
25、setenv
setenv name value ...
- set environment variable 'name' to 'value ...'
setenv name
- delete environment variable 'name'
setenv命令可以設(shè)置環(huán)境變量。
第1個參數(shù)是環(huán)境變量的名稱。
第2個參數(shù)是要設(shè)置的值,如果沒有第2個參數(shù),表示刪除這個環(huán)境變量。
setenv 添加,修改,刪除環(huán)境變量
例 setenv aaa 123 //添加環(huán)境變量aaa其值為123
setenv aaa 789 //在上行變量基礎(chǔ)上把aaa的值修改(重設(shè))為789
setenv aaa //把aaa變量刪除
可以設(shè)置的環(huán)境變量:
| 環(huán) 境 變 量 | 解 釋 說 明 |
| bootdelay | 定義執(zhí)行自動啟動的等候秒數(shù) |
| baudrate | 定義串口控制臺的波特率 |
| netmask | 定義以太網(wǎng)接口的掩碼 |
| ethaddr | 定義以太網(wǎng)接口的MAC地址 |
| bootfile | 定義缺省的下載文件 |
| bootargs | 定義傳遞給Linux內(nèi)核的命令行參數(shù) |
| bootcmd | 定義自動啟動時執(zhí)行的幾條命令 |
| serverip | 定義tftp服務(wù)器端的IP地址 |
| ipaddr | 定義本地的IP地址 |
| stdin | 定義標準輸入設(shè)備,一般是串口 |
| stdout | 定義標準輸出設(shè)備,一般是串口 |
| stderr | 定義標準出錯信息輸出設(shè)備,一般是串口 |
26、sleep
sleep N
- delay execution for N seconds (N is _decimal_ !!!)
sleep命令可以延遲N秒鐘執(zhí)行,N為十進制數(shù)。
27、tftpboot
tftpboot [loadAddress] [bootfilename]
tftpboot命令可以使用TFTP協(xié)議通過網(wǎng)絡(luò)下載文件。按照二進制文件格式下載。另外使用這個命令,必須配置好相關(guān)的環(huán)境變量。例如serverip和ipaddr。
第1個參數(shù)loadAddress是下載到的內(nèi)存地址。
第2個參數(shù)是要下載的文件名稱,必須放在TFTP服務(wù)器相應(yīng)的目錄下。
這些U-Boot命令為嵌入式系統(tǒng)提供了豐富的開發(fā)和調(diào)試功能。在Linux內(nèi)核啟動和調(diào)試過程中,都可以用到U-Boot的命令。但是一般情況下,不需要使用全部命令。比如已經(jīng)支持以太網(wǎng)接口,可以通過tftpboot命令來下載文件,那么還有必要使用串口下載的loadb嗎?反過來,如果開發(fā)板需要特殊的調(diào)試功能,也可以添加新的命令。
28bdinfo 查看開發(fā)板信息
查看和修改內(nèi)存值的指令(可以查看和修改SDRAM和寄存器值)
[.b, .w, .l]代表了查看和修改形式:bit、word、long
29cp 內(nèi)存的拷貝(包括內(nèi)存與Nor Flash間的數(shù)據(jù)拷貝)
參數(shù) cp.b [source target count] //按字節(jié)顯示
cp.w [source target count] //按字顯示
cp.l [source target count] //按長字顯示
例 cp source dest len
30protect 扇區(qū)寫保護(對Flash 寫保護)
protect on all 保護全開
protect off all 保護解除
protect on start end //start end是照起始地址和結(jié)束地址定義范圍,
protect off start end //start是保護塊的起始地址;
//end 是保護末尾塊的結(jié)束地址。
例如:保護Sector 2和Sector 3區(qū)域命令為protect 20000 3ffff
protect on start +size //start +size是照起始地址和操作字節(jié)數(shù)定義范圍
protect off start +size //start是保護塊的起始地址;
//size 是保護的字節(jié)數(shù)。
例如:保護Sector 2和Sector 3區(qū)域命令為protect 20000 +20000
protect on N:SF[-SL]
protect off N:SF[-SL]
//N:SF[-SL]是按照組和扇區(qū),N 表示Flash 的Block號,
//SF 表示保護起始Sector號,SL 表示保護結(jié)束Sector號。
例如:保護Block1 的Sector 2和Sector 3區(qū)域命令為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是照起始地址和結(jié)束地址定義范圍,
//start是擦除塊的起始地址;
//end 是擦除末尾塊的結(jié)束地址。
例如:擦除Sector 2和Sector 3區(qū)域命令為erase 20000 3ffff
erase start +size //start +size是照起始地址和操作字節(jié)數(shù)定義范圍
//start是擦除塊的起始地址;
//size 是擦除的字節(jié)數(shù)。
例如:擦除Sector 2和Sector 3區(qū)域命令為erase 20000 +20000
erase N:SF[-SL]
//N:SF[-SL]是按照組和扇區(qū),N 表示Flash 的Block號,
//SF 表示擦除起始Sector號,SL 表示擦除結(jié)束Sector號。
例如:保護Block1 的Sector 2和Sector 3區(qū)域命令為erase 1:2-3
erase bank N //bank N是擦除整個Block,
//擦除Block號為N 的整個Flash
32從Nand flash中讀數(shù)據(jù)
Nand read dest(sdram) src(Flash) size
對Nand flash擦除數(shù)據(jù)
Nand erase start size
向Nand flash中寫數(shù)據(jù)
Nand write src(sdram) dest size
bootcmd 保留的環(huán)境變量,也是一種腳本
如果定義了該變量,在autoboot模式下,將會執(zhí)行該腳本的內(nèi)容。
? 得到所有命令列表
help help usb, 列出USB功能的使用說明
ping 注:只能開發(fā)板PING別的機器
usb start: 起動usb 功能
usb info: 列出設(shè)備
usb scan: 掃描usb storage(u 盤)設(shè)備
kgo 起動沒有壓縮的linux內(nèi)核
kgo 32000000
fatls 列出DOS FAT文件系統(tǒng)
fatls usb 0列出第一塊U盤中的文件
fatload 讀入FAT中的一個文件
fatload usb 0:0 32000000 aa.txt 把USB中的aa.txt 讀到物理內(nèi)存0x32000000處!
nfs
nfs 32000000 192.168.0.2:aa.txt
把192.168.0.2(LINUX 的NFS文件系統(tǒng))中的NFS文件系統(tǒng)中的aa.txt 讀入內(nèi)存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 神經(jīng)網(wǎng)絡(luò)分層還是不分層
http://www.cnblogs.com/huang0925/p/4505455.html github應(yīng)用
總結(jié)
以上是生活随笔為你收集整理的嵌入式驱动开发之uboot---uboot 中的常见命令参数参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河套酒业白酒品牌介绍
- 下一篇: Word中“更新所有域”的用法