uboot的經常使用命令及用法

uboot是bootloader的一種,主要是用於引導內核啓動. 
uboot除此功能外, 還帶有不少其它功能. 功能是經過命令來調用.服務器

uboot的命令:

    help   //列出當前uboot全部支持的命令 help 命令  //查看指定命令的幫助 reset  //重啓uboot bootm  //用於啓動內核 用法: bootm 0x42000000  //從內存地址0x42000000啓動內核, 啓動前需把內核鏡像uImage存放到指定的內存地址 printenv  //打印全部環境變量的值 printenv 環境變量名  //查看指定的環境變量值 經常使用環境變量: bootdelay  // uboot啓動後, 倒計時多少秒後自動執行環境變量bootcmd的語句 bootcmd  // 倒計時到0後,自動執行裏面的語句 bootargs  // 是用於提供給內核的啓動參數語句 setenv  //設置/修改/刪除環境變量的值 用法: setenv 環境變量名  //刪除指定的環境變量 setenv myargs "hello"  //設置環境變量myargs=hello, 若是環境變量沒有會建立出來,若是已存則會修改它的值 saveenv  //保存環境變量,環境變量修改事後必須執行此命令才能夠保存起來,不然重啓後環境變量就恢復了. loady  //用於從uart線下載文件到板上內存裏(loadb, loads, loadx基本同樣)  用法: loady 0x40008000  //把下載的文件從內存地址0x40008000開始存放 執行"loady 0x40008000"後, uboot就會進入等待狀態,等着接收數據 minicom具備經過uart傳輸文件的功能. 按"ctrl+a", 鬆手後再按"s", 選擇"ymodem", 在彈出的界面裏按空格鍵選中要傳的文件. md 內存地址  //用於查看內存地址上的值 用法: md.b    0x40008000 100  //從內存地址0x40008000開始,查看0x100個字節並輸出值 md.w 0x40008000 100  //從內存地址0x40008000開始,查看0x100個16位值並輸出值 md.l 0x40008000 100  //從內存地址0x40008000開始,查看0x100個32位值並輸出值 mw  //用於修改內存地址上的值 用法: mw.b    0x40008000 0xab 100  //從內存地址0x40008000開始的0x100字節空間,設值爲0xab mw.w 0x40008000 0xabcd 100  //從內存地址0x40008000開始的0x200字節空間,每16位值設爲0xabcd mw.l 0x40008000 0xabcdef88 100  //從內存地址0x40008000開始的0x400字節空間,每32位值設爲0xabcdef88 go  //執行指定內存地址上的指令 用法: go 0x40008000 mmc  // sd/mmc接口設備(sd卡, emmc)操做命令, 按扇區操做(每扇區512字節) 用法: mmc read addr blk cnt  //從mmc設備上的第blk個扇區開始,共讀出cnt個扇區到內存地址addr上 mmc write addr blk cnt  //把內存地址addr上的數據寫入mmc設備的第blk個扇區,共cnt個扇區大小 mmc dev  //用於當看當前的mmc設備是第幾個 mmc erase blk cnt  //把mmc設備的第blk個扇區開始清零,共清除cnt個扇區大小  mmc part  //列出當前mmc設備的分區信息 mmc list  //列出全部的mmc設備信息 ext4ls  //查看存儲設備的ext2/3/4分區裏的內容 用法: ext4ls mmc 0:2  //查看第0個存儲設備的第二個分區 ext4load //從ext2/3/4分區裏讀出文件到指定的內存地址 用法: ext4load mmc 0:2 0x40008000 /uImage  //從第0個存儲設備的第2個分區的根目錄讀出uImage文件到內存地址0x40008000 fatls  //查看存儲設備的fat分區裏的內容 用法: fatls mmc 0:1  //查看第0個存儲設備的第1個分區(fat分區) fatload //從fat分區裏讀出文件到指定的內存地址 用法: fatload mmc 0:1 0x40008000 /uImage  //從第0個存儲設備的第1個分區的根目錄讀出uImage文件到內存地址0x40008000 fatwrite  //把內存上的數據存儲到fat分區的一個文件裏 用法: fatwrite mmc 0:1 0x40008000 /my.txt 0x35  //把內存地址0x40008000開始的0x35個字節數據寫入到第0個設備的第1個分區裏,文件名爲my.txt run  //執行指定的環境變量裏的語句 用法: run bootcmd  //執行環境變量bootcmd裏的語句  //如uboot上已驅動好網絡設備並環境變設好IP及PC端IP,還可使用如下命令: tftpboot 0x40008000 文件名  // 經過網絡下載文件到內存地址0x40008000, PC端需配置好tftp服務器 nfs 0x40008000 pc端IP:/帶路徑的文件名  //pc端需配置好nfs服務器 ping ip  //檢測網絡是否通
 

指令: bootmmarkdown

bootm  用於將內核鏡像加載到內存的指定地址處網絡

例:post

bootm 0x82000000ui

查看和修改環境變量指令spa

經常使用環境變量列表
bootdelay 執行自動啓動(bootcmd中的命令)的等候秒數 
baudrate 串口控制檯的波特率 
bootfile 默認的下載文件名 
bootargs 傳遞給Linux內核的啓動參數 
bootcmd 自動啓動時執行命令 
stdin 標準輸入設備,  通常是串口  
stdout 標準輸出,  通常是串口,也但是LCD(VGA)
stderr   標準出錯,通常是串口,也但是LCD(VGA)
serverip TFTP服務器端的IP地址 
ipaddr 本地的IP地址  
ethaddr 以太網的MAC地址 
netmask 以太網的網絡掩碼 

gatewayip 以太網的網關code

指令: setenvname value 第1個參數是環境變量的名稱。   第2個參數是要設置的值,若是沒有第2個參數,表示刪除這個環境變量 例: setenv serverip 192.168.1.12//添加環境變量serverip 其值爲 192.168.1.12 setenv serverip 192.168.1.20//在上一行的基礎上把環境變量serverip 值從新賦爲 192.168.1.20 setenv serverip  //把 serverip 變量刪除 指令: saveenv保存環境變量 指令: printenv  查看環境變量 使用該命令返回: bootdelay=1 baudrate=115200 bootfile="uImage" filesize=6600EC fileaddr=82000000 bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs) bootcmd=sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000 stdin=serial stdout=serial stderr=serial verify=n ver=U-Boot 2010.06 (Jan 20 2015 - 15:46:38) serverip=192.168.1.12 ipaddr=192.168.1.129 ethaddr=00:01:02:11:88:91 netmask=255.255.255.0 gatewayip=192.168.1.1 查看和修改內存值指令 查看內存命令 md 修改內存命令 mm 填充內存命令 mw 複製內存命令 cp 這些命令均可以帶上後綴 「.b」(字節 byte),  」.w」(字 word),  」.l」(4字節 long)  爲單位進行操做 指令: mw填充內存命令 mw[.b,.w,.l] address value [count] 表示以[.b,.w,.l]爲單位往開始地址爲address的內存填充count 個值爲 value 的數據 例: mw.b 82000000 ff 100000從地址0x82000000地址開始填充0x100000(1M字節)個值爲0xff的數據 指令: md查看內存命令 md[.b,.w,.l] address [count] 表示以[.b,.w,.l]爲單位顯示從地址address開始的內存數據,顯示的數據個數爲count 例: md.b 82000000  10顯示從地址0x82000000地址開始的0x10個字節的數據 返回信息: 82000000: d3 2c b4 4b 2c d3 4b b4 d3 d3 b4 b4 d3 2c b4 4b    .,.K,.K......,.K 指令: mm修改內存命令 mm[.b,.w,.l] address  表示以[.b,.w,.l]爲單位從地址address開始修改內存數據,執行mm命令後,輸入新數據後回車,地址會自動增長,按「CTRL + c」退出; 例: 把第一個字節數據0xd3修改成0xd4 mm.b 82000000 返回: 82000000: d3 ? d4 82000001: 2c ?  指令: cp複製內存命令 cp[.b,.w,.l] source target [count] 表示以[.b,.w,.l]爲單位從源地址source的內存複製count個數據到 目的地址 target的內存中去; 下載的指令 指令: tftp經過網口下載文件到設備 tftp  address  filename 把文件filename下載到地址address 例: 下載 tftp 0x82000000 u-boot-hi3520d.bin 把TFTP目錄下名爲u-boot-hi3520d.bin的文件拷貝到SDRAM的 82000000 地址 上傳 tftp 0x82000000 flash 2000000 把SDRAM的 82000000 地址開始的 0x2000000(32M)字節的拷貝到把TFTP目錄下命名爲flash(flash名字是否可變) Flash操做的指令(不一樣的Flash不一樣) 指令: eraseFlash擦除命令  erase  start  end 擦除的範圍爲 start – end erase  start+len 擦除的範圍爲 start – (start+len-1) erase  all 擦除全部 例: 對於SPI NOR FLASH sf erase 0 100000 擦除flash 0 - 0x100000 的數據 指令: writeFlash燒寫命令 write addr off size將SDRAM的 addr 地址處的 size 字節的數據燒寫到 flash 的 off 偏移地址 例: 對於SPI NOR FLASH sf write 82000000 0 100000 把SDRAM地址 0x82000000 處 0x100000(1M字節)的數據燒寫到 flash 的 0 偏移地址 指令: readFlash讀取命令 read addr off size從 Flash 的 off 偏移地址處讀取 size 字節的數據到SDRAM的 addr地址 例: 對於SPI NOR FLASH sf read 82000000 0 2000000 從 flash 的 0 偏移地址出讀取 0x2000000(32M)字節的數據到 SDRAM的 82000000 地址
相關文章
相關標籤/搜索