嵌入式驱动开发之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 執行內存中的二進制代碼
要求二進制代碼為制定格式的。通常為mkimage處理過的二進制文件。起動UBOOT TOOLS制作的壓縮LINUX內核, bootm 3200000
Bootp 通過網絡啟動,需要提前設置好硬件地址。
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命令可以執行環境變量中的命令,后面參數可以跟幾個環境變量名。
run 執行設置好的腳本
Uboot> setenv flashit tftp 20000000 mycode.bin/; erase 10020000 1002FFFF/;cp.b 20000000 10020000 8000
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
bootcmd 保留的環境變量,也是一種腳本
如果定義了該變量,在autoboot模式下,將會執行該腳本的內容。
? 得到所有命令列表
help help usb, 列出USB功能的使用說明
ping 注:只能開發板PING別的機器
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處!
nfs
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應用
總結
以上是生活随笔為你收集整理的嵌入式驱动开发之uboot---uboot 中的常见命令参数参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河套酒业白酒品牌介绍
- 下一篇: Word中“更新所有域”的用法