九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
向Flash中燒寫uboot和linux操作系統(tǒng)
向Flash中燒寫uboot和linux操作系統(tǒng)
2011年03月28日
  向Flash中燒寫uboot和linux操作系統(tǒng)
  ================================================================================
  from:http://www.diybl.com/course/6_system/linux/Linuxjs/20090428/165769.html
  一、片內(nèi)啟動(dòng)
  1、用Xmodem協(xié)議,發(fā)送loader.bin和uboot.bin文件,此時(shí)uboot.bin被發(fā)送到系統(tǒng)的
  SDRAM中,發(fā)送完后uboot開始運(yùn)行,如果這時(shí)斷電或退出,則一切將從頭開始,因?yàn)镾DRAM內(nèi)存儲(chǔ)的數(shù)據(jù)會(huì)在斷電或退出后消失
  2、擦除 Flash
  在對(duì)Flash進(jìn)行燒寫之前,需要將其擦除:
  Uboot>protect off all 去掉Flash的扇區(qū)寫保護(hù)
  Uboot>erase all 擦除Flash的所有扇區(qū)
  (注:
  如果只是要擦除某塊區(qū)域的Flash,比如0x10000000到0x10060000之間的區(qū)域,則可用命令:
  1)protect off 10000000
  2)erase 10000000 1006ffff
  如果是要對(duì)某塊區(qū)域加上寫保護(hù),比如0x10000000到0x10060000之間的區(qū)域,則可用命令:
  1)protect on 10000000 1006ffff
  可用flinfo命令來查看那些區(qū)域是受保護(hù)的,那些區(qū)域不是受保護(hù)的。
  3、燒寫boot.bin到Flash
  在Uboot提示符下鍵入命令:
  Uboot>loadb 21000000
  (下完之后會(huì)顯示boot.bin的大小,然后在后面用命令cp.b燒寫時(shí)將其后4位變成f,假如文件大小為5e33a,則在燒寫時(shí)將其變?yōu)?ffff) 將文件發(fā)送到系統(tǒng)的SDRAM中然后在超級(jí)終端使用Kermit協(xié)議,發(fā)送文件boot.bin,發(fā)送完畢后,鍵入以下命令:
  Uboot>cp.b 21000000 10000000 5ffff    將發(fā)送到SDRAM中的數(shù)據(jù)寫入Flash
  Uboot>protect on 10000000 10005ffff     對(duì)寫入Flash的內(nèi)容進(jìn)行寫保護(hù)
  注:
  此處還可以用tftp或bootp協(xié)議來完成,不過要先設(shè)置網(wǎng)絡(luò)變量,即設(shè)置本機(jī)和目標(biāo)機(jī)的IP地址,還有目標(biāo)機(jī)的Mac地址。
  網(wǎng)絡(luò)環(huán)境變量:
  Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000
  ramdisk_size=15360
  console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr [目標(biāo)板 ip 地址] 目標(biāo)板 ip 地址
  Uboot>setenv serverip [主機(jī) ip 地址] 主機(jī) ip 地址
  tftp協(xié)議:
  1)tftp 21000000 lb/boot.bin
  2)cp.b 21000000 10000000 5ffff
  3)protect on 10000000
  bootp協(xié)議:
  1)bootp 21000000 lb/boot.bin
  2)cp.b 21000000 10000000 5ffff
  3)protect on 10000000 10005fff
  4、燒寫 Uboot.gz 到 Flash
  在Uboot提示符下鍵入命令:裝入U(xiǎn)boot.gz6
  Uboot>loadb 20000000 將文件發(fā)送到系統(tǒng)的SDRAM中.
  然后在超級(jí)終端使用Kermit協(xié)議,發(fā)送文件Uboot.gz,發(fā)送完畢后,鍵入以下命令:
  Uboot>cp.b 20000000 10010000 ffff 將發(fā)送到SDRAM中的數(shù)據(jù)寫入Flash
  Uboot>protect on 10000000 1001ffff 對(duì)寫入Flash的內(nèi)容進(jìn)行寫保護(hù)
  (注:此處也可以用tftp或bootp協(xié)議)
  二、片外啟動(dòng)
  如何在uboot內(nèi)運(yùn)行自己的程序
  1、手動(dòng)運(yùn)行(只是將程序下載到SDRAM中運(yùn)行,僅做測(cè)試之用,斷電或退出后就會(huì)消失)
  1)loadb 20000000 下載用戶程序(*.bin) 
  2)go 20000000 程序就會(huì)運(yùn)行
  2、自動(dòng)運(yùn)行(將程序?qū)懭隖lash,uboot啟動(dòng)之后程序自動(dòng)運(yùn)行
  1)設(shè)置環(huán)境變量
  Uboot>setenv usr_prg cp.b 10300000 20000000 ffff(程序的大?。?br>  Uboot>setenv run_prg go 20000000
  Uboot>setenv bootcmd run usr_prg\;run run_prg
  Uboot>saveenv
  2)寫入程序,即將其燒入Flash
  protect off all
  erase 10300000 103fffff
  loadb 20000000 下載*.bin
  cp.b 20000000 10300000 ffff(用戶程序的大小)
  3)reset之后程序就會(huì)自動(dòng)運(yùn)行"T1X$m
  二、燒寫linux程序開
  1、下載linux到系統(tǒng)的SDRAM運(yùn)行(僅做測(cè)試之用,斷電或退出后就會(huì)消失)程
  1)運(yùn)行Uboot,設(shè)置環(huán)境變量
  Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000
  ramdisk_size=15360
  console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr [目標(biāo)板 ip 地址] 目標(biāo)板 ip 地址
  Uboot>setenv serverip [主機(jī) ip 地址] 主機(jī) ip 地址
  2)下載linux內(nèi)核,文件系統(tǒng)
  打開tftpserver應(yīng)用程序,設(shè)置根目錄路徑,將內(nèi)核、文件系統(tǒng)等拷貝到所設(shè)置的根目錄下。
  Uboot>tftp 21100000 ramdisk.gz 下載文件系統(tǒng)
  Uboot>tftp 21000000 uImage 下載 linux 內(nèi)核
  Uboot>bootm 21000000 啟動(dòng) linux
  然后linux操作系統(tǒng)就開始運(yùn)行。
  2、燒寫 Linux 到系統(tǒng)的 Flash 運(yùn)行
  1)設(shè)置運(yùn)行Linux的環(huán)境變量
  Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000
  ramdisk_size=15360 console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv image cp.b 10020000 21000000 b0000 拷貝內(nèi)核到sdram
  Uboot>setenv ramdisk cp.b 100d0000 21100000 226000 拷貝文件系統(tǒng)到sdram
  Uboot>setenv boot bootm 設(shè)置變量
  Uboot>setenv bootcmd run ramdisk\;run image\;run boot 設(shè)置默認(rèn)變量bootcmd
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr 目標(biāo)板 ip 地址 目標(biāo)板 ip 地址,由你自己決定
  Uboot>setenv serverip 主機(jī)ip地址 主機(jī)ip地址,就是你的PC的ip程序開
  Uboot>saveenv 保存環(huán)境變量
  2)燒寫Linux內(nèi)核到Flash
  Uboot>tftp 21100000 ramdisk.gz
  Uboot>cp.b 21100000 100d0000 226000
  Uboot>tftp 21000000 uImage
  Uboot>cp.b 21000000 10020000 b0000
  reset之linux操作系統(tǒng)就開始運(yùn)行。
  ================================================================================
  ================================================================================
  from:  http://www.91linux.com/html/article/qianrushiyingyong/20081227/15061.html
  u-boot命令介紹及燒寫程序?qū)嵗?br>  bootdelay
  定義執(zhí)行自動(dòng)啟動(dòng)的等候秒數(shù)
  baudrate
  定義串口控制臺(tái)的波特率
  netmask
  定義以太網(wǎng)接口的掩碼
  ethaddr
  定義以太網(wǎng)接口的MAC地址
  bootfile
  定義缺省的下載文件
  bootargs
  定義傳遞給Linux內(nèi)核的命令行參數(shù)
  bootcmd
  定義自動(dòng)啟動(dòng)時(shí)執(zhí)行的幾條命令
  serverip
  定義tftp服務(wù)器端的IP地址
  ipaddr
  定義本地的IP地址
  stdin
  定義標(biāo)準(zhǔn)輸入設(shè)備,一般是串口
  stdout
  定義標(biāo)準(zhǔn)輸出設(shè)備,一般是串口
  stderr
  定義標(biāo)準(zhǔn)出錯(cuò)信息輸出設(shè)備,一般是串口
  u-boot命令介紹及燒寫程序?qū)嵗齴z
  Printenv 打印環(huán)境變量。
  Uboot> printenv
  baudrate=115200
  ipaddr=192.168.1.1
  ethaddr=12:34:56:78:9A:BC
  serverip=192.168.1.5
  Environment size: 80/8188 bytes
  Setenv 設(shè)置新的變量
  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
  Saveenv 保存變量
  命令將當(dāng)前定義的所有的變量及其值存入flash中。用來存儲(chǔ)變量及其值的空間只有8k字節(jié),應(yīng)不要超過。
  Loadb 通過串口Kermit協(xié)議下載二進(jìn)制數(shù)據(jù)。
  Tftp 通過網(wǎng)絡(luò)下載程序,需要先設(shè)置好網(wǎng)絡(luò)配置
  Uboot> setenv ipaddr 192.168.0.1
  Uboot> setenv serverip 192.168.1.115      (tftp服務(wù)器的地址)
  下載bin文件到地址0x20000000處。
  Uboot> tftp 20000000 u-bo.bin (u-boot.bin應(yīng)位于tftp服務(wù)程序的目錄)
  Uboot> tftp 32000000 vmlinux
  把server(IP=環(huán)境變量中設(shè)置的serverip)中/tftpdroot/ 下的vmlinux通過TFTP讀入到物理內(nèi)存32000000處。
  Md 顯示內(nèi)存區(qū)的內(nèi)容。
  Mm 修改內(nèi)存,地址自動(dòng)遞增。
  Nm 修改內(nèi)存,地址不自動(dòng)遞增。
  Mw 用模型填充內(nèi)存
  mw 32000000 ff 10000(把內(nèi)存0x32000000開始的0x10000字節(jié)設(shè)為0xFF)
  Cp 拷貝一塊內(nèi)存到另一塊
  Cmp 比較兩塊內(nèi)存區(qū)
  這些內(nèi)存操作命令后都可加一個(gè)后綴表示操作數(shù)據(jù)的大小,比如cp.b表示按字節(jié)拷貝。
  Protect 寫保護(hù)操作
  protect on 1:0-3(就是對(duì)第一塊FLASH的0-3扇區(qū)進(jìn)行保護(hù))
  protect off 1:0-3取消寫保護(hù)
  Erase 擦除扇區(qū)。
  erase: 刪除FLASH的扇區(qū)
  erase 1:0-2(就是對(duì)每一塊FLASH的0-2扇區(qū)進(jìn)行刪除)
  對(duì)DataFlash的操作
  U-Boot在引導(dǎo)時(shí)如果發(fā)現(xiàn)NPCS0和NPCS3上連有DataFlash,就會(huì)分配虛擬的地址給它,具體為 :
  0xC0000000---NPCS0
  0xD0000000---NPCS3
  run 執(zhí)行設(shè)置好的腳本
  Uboot> setenv flashit tftp 20000000 mycode.bin\; erase 10020000 1002FFFF\;
  cp.b 20000000 10020000 8000
  Uboot> saveenv
  Uboot> run flashit
  bootcmd 保留的環(huán)境變量,也是一種腳本
  如果定義了該變量,在autoboot模式下,將會(huì)執(zhí)行該腳本的內(nèi)容。
  Go 執(zhí)行內(nèi)存中的二進(jìn)制代碼,一個(gè)簡(jiǎn)單的跳轉(zhuǎn)到指定地址
  Bootm 執(zhí)行內(nèi)存中的二進(jìn)制代碼
  要求二進(jìn)制代碼為制定格式的。通常為mkimage處理過的二進(jìn)制文件。
  起動(dòng)UBOOT TOOLS制作的壓縮LINUX內(nèi)核, bootm 3200000
  Bootp 通過網(wǎng)絡(luò)啟動(dòng),需要提前設(shè)置好硬件地址。
 ??? 得到所有命令列表
  help   help usb, 列出USB功能的使用說明
  ping   注:只能開發(fā)板PING別的機(jī)器
  usb
  usb start:   起動(dòng)usb 功能
  usb info:   列出設(shè)備
  usb scan:   掃描usb storage(u 盤)設(shè)備
  kgo   起動(dòng)沒有壓縮的linux內(nèi)核
  kgo 32000000
  fatls 列出DOS FAT文件系統(tǒng)
  fatls usb 0列出第一塊U盤中的文件
  fatload 讀入FAT中的一個(gè)文件
  fatload usb 0:
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  0 32000000
  
   u-boot.bin 把USB中的u-boot.bin 讀到物理內(nèi)存0x32000000處!
  flinfo 列出flash的信息
  nfs
  nfs 32000000 192.168.0.115:u-boot.bin
  把192.168.0.115(LINUX 的NFS文件系統(tǒng))中的NFS文件系統(tǒng)中的u-boot.bin讀入內(nèi)存0x32000000處。
  例:通過串口更新u-boot程序
  [
  u-boot@wpf
  ]# loadb
  ## Ready for binary (kermit) download to 0x33000000 at 115200 bps...
  loadb這個(gè)指令以kermit協(xié)議從串口下載二進(jìn)制文件到開發(fā)板的內(nèi)存中,默認(rèn)下載到0x33000000。當(dāng)然你可以改在別的地址,例如:loadb 30000000
  就是下載到0x30000000。這時(shí)候選擇超級(jí)終端菜單上:傳送〉發(fā)送文件,文件名選擇編譯好的U-Boot.bin,協(xié)議選擇Kermit,點(diǎn)發(fā)送??梢钥吹桨l(fā)
  送進(jìn)度。
  發(fā)送結(jié)束出現(xiàn)提示:
  ## Total Size       = 0x0001d73c = 120636 Bytes
  ## Start Addr       = 0x33000000
  這時(shí)可以測(cè)試新的修改好不好使:
  [
  u-boot@wpf
  ]# go 33000000
  ## Starting application at 0x33000000 ...
  go指令可以直接執(zhí)行內(nèi)存地址上的程序,
  然后燒寫在NOR Flash中的U-boot。先看看NOR Flash的情況:
  [
  u-boot@wpf
  ]# flinfo
  Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)
  Size: 1 MB in 19 Sectors
  Sector Start Addresses:
  00000000 (RO) 00004000 (RO) 00006000 (RO) 00008000 (RO) 00010000 (RO)
  00020000       00030000       00040000       00050000       00060000    
  00070000       00080000       00090000       000A0000       000B0000    
  000C0000       000D0000       000E0000       000F0000 (RO)
  一共有19個(gè)sector,其中前5個(gè)總計(jì)128kb的sector有U-Boot程序。要燒寫首先要去掉寫保護(hù):
  [
  u-boot@wpf
  ]# protect off 0 1ffff
  [
  u-boot@wpf
  ]# flinfo
  Bank # 1: AMD: 1x Amd29LV800BB (8Mbit)
  Size: 1 MB in 19 Sectors
  Sector Start Addresses:
  00000000       00004000       00006000       00008000       00010000
  00020000       00030000       00040000       00050000       00060000
  00070000       00080000       00090000       000A0000       000B0000
  000C0000       000D0000       000E0000       000F0000 (RO)
  可以看到寫保護(hù)已經(jīng)去掉,然后擦除:
  [
  u-boot@wpf
  ]# erase 0 1ffff
  Erasing sector   0 ... ok.
  Erasing sector   1 ... ok.
  Erasing sector   2 ... ok.
  Erasing sector   3 ... ok.
  Erasing sector   4 ... ok.
  Erased 5 sectors
  燒寫:(33000000下載地址 0 Nor起始地址 1d73c 文件長(zhǎng)度)
  [
  u-boot@wpf
  ]# cp.b 33000000 0 1d73c
  Copy to Flash... done
  重啟開發(fā)板,U-Boot的燒寫就完成了。當(dāng)然,一個(gè)更好的下載方法是利用tftp命令
  http://hi.baidu.com/vcmfc_linux/blog/item/9d07dfef11001c36acafd5d0.html
  ================================================================================
  ================================================================================
  from:  http://www.ubuntuchina.com/viewthread.php?tid=3492
  uboot 下載內(nèi)核和文件系統(tǒng)的步驟http://hi.baidu.com/xuhailong330 ... aa9bdc8d1029ab.html
  1)下載linux到系統(tǒng)的SDRAM運(yùn)行(僅做測(cè)試之用,斷電或退出后就會(huì)消失)
  1>運(yùn)行Uboot,設(shè)置環(huán)境變量
  Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360
  console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr [目標(biāo)板 ip 地址] 目標(biāo)板 ip 地址
  Uboot>setenv serverip [主機(jī) ip 地址] 主機(jī) ip 地址
  2>下載linux內(nèi)核,文件系統(tǒng)
  打開tftpserver應(yīng)用程序,設(shè)置根目錄路徑,將內(nèi)核、文件系統(tǒng)等拷貝到所設(shè)置的根目錄下。
  Uboot>tftp 21100000 ramdisk.gz 下載文件系統(tǒng)
  Uboot>tftp 21000000 uImage 下載 linux 內(nèi)核
  Uboot>bootm 21000000 啟動(dòng) linux
  然后linux操作系統(tǒng)就開始運(yùn)行。
  2)燒寫 Linux 到系統(tǒng)的 Flash 運(yùn)行
  1>設(shè)置運(yùn)行Linux的環(huán)境變量
  Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv image cp.b 10020000 21000000 b0000 拷貝內(nèi)核到sdram
  Uboot>setenv ramdisk cp.b 100d0000 21100000 226000 拷貝文件系統(tǒng)到sdram
  Uboot>setenv boot bootm 設(shè)置變量boot
  Uboot>setenv bootcmd run ramdisk\;run image\;run boot 設(shè)置默認(rèn)變量bootcmd
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr 目標(biāo)板 ip 地址 目標(biāo)板 ip 地址,由你自己決定
  Uboot>setenv serverip 主機(jī)ip地址 主機(jī)ip地址,就是你的PC的ip
  Uboot>saveenv 保存環(huán)境變量
  2>燒寫Linux內(nèi)核到Flash
  Uboot>tftp 21100000 ramdisk.gz
  Uboot>cp.b 21100000 100d0000 226000
  Uboot>tftp 21000000 uImage
  Uboot>cp.b 21000000 10020000 b0000
  reset之linux操作系統(tǒng)就開始運(yùn)行。
  一、片內(nèi)啟動(dòng)
  1、用Xmodem協(xié)議,發(fā)送loader.bin和uboot.bin文件,此時(shí)uboot.bin被發(fā)送到系統(tǒng)的SDRAM中,發(fā)送完后uboot開始運(yùn)行,如果這時(shí)斷電或退出,則一切將從頭開始,因?yàn)镾DRAM內(nèi)存儲(chǔ)的數(shù)據(jù)會(huì)在斷電或退出后消失。
  2、擦除 Flash
  在對(duì)Flash進(jìn)行燒寫之前,需要將其擦除:
  Uboot>protect off all 去掉Flash的扇區(qū)寫保護(hù)
  Uboot>erase all 擦除Flash的所有扇區(qū)
  (注:
  如果只是要擦除某塊區(qū)域的Flash,比如0x10000000到0x10060000之間的區(qū)域,則可用命令:
  1)protect off 10000000 1006ffff
  2)erase 10000000 1006ffff
  如果是要對(duì)某塊區(qū)域加上寫保護(hù),比如0x10000000到0x10060000之間的區(qū)域,則可用命令:
  1)protect on 10000000 1006ffff
  可用flinfo命令來查看那些區(qū)域是受保護(hù)的,那些區(qū)域不是受保護(hù)的。
  )
  3、燒寫boot.bin到Flash
  在Uboot提示符下鍵入命令:
  Uboot>loadb 21000000 (下完之后會(huì)顯示boot.bin的大小,然后在后面用命令cp.b燒寫時(shí)將其后4位變成f,假如文件大小為5e33a,則在燒寫時(shí)將其變?yōu)?ffff) 將文件發(fā)送到系統(tǒng)的SDRAM中
  然后在超級(jí)終端使用Kermit協(xié)議,發(fā)送文件boot.bin,發(fā)送完畢后,鍵入以下命令:
  Uboot>cp.b 21000000 10000000 5ffff 將發(fā)送到SDRAM中的數(shù)據(jù)寫入Flash
  Uboot>protect on 10000000 10005ffff 對(duì)寫入Flash的內(nèi)容進(jìn)行寫保護(hù)
  (注:
  此處還可以用tftp或bootp協(xié)議來完成,不過要先設(shè)置網(wǎng)絡(luò)變量,即設(shè)置本機(jī)和目標(biāo)機(jī)的IP地址,還有目標(biāo)機(jī)的Mac地址。
  網(wǎng)絡(luò)環(huán)境變量:
  Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360
  console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr [目標(biāo)板 ip 地址] 目標(biāo)板 ip 地址
  Uboot>setenv serverip [主機(jī) ip 地址] 主機(jī) ip 地址
  tftp協(xié)議:
  1)tftp 21000000 lb/boot.bin
  2)cp.b 21000000 10000000 5ffff
  3)protect on 10000000 10005fff
  bootp協(xié)議:
  1)bootp 21000000 lb/boot.bin
  2)cp.b 21000000 10000000 5ffff
  3)protect on 10000000 10005fff
  )
  4、燒寫 Uboot.gz 到 Flash
  在Uboot提示符下鍵入命令:裝入U(xiǎn)boot.gz
  Uboot>loadb 20000000 將文件發(fā)送到系統(tǒng)的SDRAM中
  然后在超級(jí)終端使用Kermit協(xié)議,發(fā)送文件Uboot.gz,發(fā)送完畢后,鍵入以下命令:
  Uboot>cp.b 20000000 10010000 ffff 將發(fā)送到SDRAM中的數(shù)據(jù)寫入Flash
  Uboot>protect on 10000000 1001ffff 對(duì)寫入Flash的內(nèi)容進(jìn)行寫保護(hù)
  (注:此處也可以用tftp或bootp協(xié)議)
  二、片外啟動(dòng)
  一)如何在uboot內(nèi)運(yùn)行自己的程序
  1、手動(dòng)運(yùn)行(只是將程序下載到SDRAM中運(yùn)行,僅做測(cè)試之用,斷電或退出后就會(huì)消失)
  1)loadb 20000000 下載用戶程序(*.bin) 
  2)go 20000000 程序就會(huì)運(yùn)行
  2、自動(dòng)運(yùn)行(將程序?qū)懭隖lash,uboot啟動(dòng)之后程序自動(dòng)運(yùn)行)
  1)設(shè)置環(huán)境變量
  Uboot>setenv usr_prg cp.b 10300000 20000000 ffff(程序的大?。?
  Uboot>setenv run_prg go 20000000
  Uboot>setenv bootcmd run usr_prg\;run run_prg
  Uboot>saveenv
  2)寫入程序,即將其燒入Flash
  protect off all
  erase 10300000 103fffff
  loadb 20000000 下載*.bin
  cp.b 20000000 10300000 ffff(用戶程序的大?。?
  3)reset之后程序就會(huì)自動(dòng)運(yùn)行
  二、燒寫linux
  1、下載linux到系統(tǒng)的SDRAM運(yùn)行(僅做測(cè)試之用,斷電或退出后就會(huì)消失)
  1)運(yùn)行Uboot,設(shè)置環(huán)境變量
  Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360
  console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr [目標(biāo)板 ip 地址] 目標(biāo)板 ip 地址
  Uboot>setenv serverip [主機(jī) ip 地址] 主機(jī) ip 地址
  2)下載linux內(nèi)核,文件系統(tǒng)
  打開tftpserver應(yīng)用程序,設(shè)置根目錄路徑,將內(nèi)核、文件系統(tǒng)等拷貝到所設(shè)置的根目錄下。
  Uboot>tftp 21100000 ramdisk.gz 下載文件系統(tǒng)
  Uboot>tftp 21000000 uImage 下載 linux 內(nèi)核
  Uboot>bootm 21000000 啟動(dòng) linux
  然后linux操作系統(tǒng)就開始運(yùn)行。
  2、燒寫 Linux 到系統(tǒng)的 Flash 運(yùn)行
  1)設(shè)置運(yùn)行Linux的環(huán)境變量
  Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M 啟動(dòng)系統(tǒng)環(huán)境變量
  Uboot>setenv image cp.b 10020000 21000000 b0000 拷貝內(nèi)核到sdram
  Uboot>setenv ramdisk cp.b 100d0000 21100000 226000 拷貝文件系統(tǒng)到sdram
  Uboot>setenv boot bootm 設(shè)置變量boot
  Uboot>setenv bootcmd run ramdisk\;run image\;run boot 設(shè)置默認(rèn)變量bootcmd
  Uboot>setenv ethaddr 12:34:56:78:99:aa mac 地址
  Uboot>setenv ipaddr 目標(biāo)板 ip 地址 目標(biāo)板 ip 地址,由你自己決定
  Uboot>setenv serverip 主機(jī)ip地址 主機(jī)ip地址,就是你的PC的ip
  Uboot>saveenv 保存環(huán)境變量
  2)燒寫Linux內(nèi)核到Flash
  Uboot>tftp 21100000 ramdisk.gz
  Uboot>cp.b 21100000 100d0000 226000
  Uboot>tftp 21000000 uImage
  Uboot>cp.b 21000000 10020000 b0000
  reset之linux操作系統(tǒng)就開始運(yùn)行。
  ================================================================================
  ================================================================================
  from:  http://blog.21ic.com/user1/5165/archives/2008/50377.html
  u-boot命令解釋
  lanxch 發(fā)表于 2008-9-4 13:42:00
  0
  推薦
  U-Boot上電啟動(dòng)后,敲任意鍵能夠退出自動(dòng)啟動(dòng)狀態(tài),進(jìn)入命令行。
  U-Boot 1.1.2 (Apr 26 2005 - 12:27:13)
  U-Boot code: 11080000 -> 1109614C  BSS: -> 1109A91C
  RAM Configuration:
  Bank #0: 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  10000000 32
  
   MB
  Micron StrataFlash MT28F128J3 device initialized
  Flash: 32 MB
  In:    serial
  Out:   serial
  Err:   serial
  Hit any key to stop autoboot:  0
  U-Boot>
  在命令行提示符下,能夠輸入U(xiǎn)-Boot的命令并執(zhí)行。U-Boot能夠支持幾十個(gè)常用命令,通過這些命令,能夠?qū)ρ邪l(fā)板進(jìn)行調(diào)試,能夠引導(dǎo)Linux內(nèi)核,還能夠擦寫Flash完成系統(tǒng)部署等功能。掌控這些命令的使用,才能夠順利地進(jìn)行嵌入式系統(tǒng)的研發(fā)。
  輸入help命令,能夠得到當(dāng)前U-Boot的任何命令列表。每一條命令后面是簡(jiǎn)單的命令說明。
  => help
         - alias for 'help'
  autoscr - run from memory
  base    - print or set address offset
  bdinfo  - print Board Info structure
  boot    - boot default, i.e., run 'bootcmd'
  bootd   - boot default, i.e., run 'bootcmd'
  bootm   - boot application image from memory
  bootp   - boot image via network using BootP/TFTP protocol
  cmp     - memory compare
  coninfo  - print console devices and information
  cp      - memory copy
  crc32   - checksum calculation
  dhcp    - invoke DHCP client to obtain IP/boot params
  echo    - echo args to console
  erase   - erase FLASH memory
  flinfo  - print FLASH memory information
  go      - start application at address 'addr'
  help    - print online help
  iminfo  - print header information for application image
  imls    - list all images found in flash
  itest    - return true/false on integer compare
  loadb   - load binary file over serial line (kermit mode)
  loads   - load S-Record file over serial line
  loop   - infinite loop on address range
  md    - memory display
  mm    - memory modify (auto-incrementing)
  mtest   - simple RAM test
  mw      - memory write (fill)
  nfs     - boot image via network using NFS protocol
  nm      - memory modify (constant address)
  printenv - print environment variables
  protect - enable or disable FLASH write protection
  rarpboot - boot image via network using RARP/TFTP protocol
  reset   - Perform RESET of the CPU
  run     - run commands in an environment variable
  saveenv - save environment variables to persistent storage
  setenv  - set environment variables
  sleep   - delay execution for some time
  tftpboot - boot image via network using TFTP protocol
  version - print monitor version
  =>
  U-Boot還提供了更加周詳?shù)拿顜椭?,通過help命令還能夠查看每個(gè)命令的參數(shù)說明。由于研發(fā)過程的需要,有必要先把U-Boot命令的用法弄清楚。接下來,根據(jù)每一條命令的幫助信息,解釋一下這些命令的功能和參數(shù)。
  => help 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命令能夠引導(dǎo)啟動(dòng)存儲(chǔ)在內(nèi)存中的程式映像。這些內(nèi)存包括RAM和能夠永久保存的Flash。
  第1個(gè)參數(shù)addr是程式映像的地址,這個(gè)程式映像必須轉(zhuǎn)換成U-Boot的格式。
  第2個(gè)參數(shù)對(duì)于引導(dǎo)Linux內(nèi)核有用,通常作為U-Boot格式的RAMDISK映像存儲(chǔ)地址;也能夠是傳遞給Linux內(nèi)核的參數(shù)(缺省情況下傳遞bootargs環(huán)境變量給內(nèi)核)。
  => help bootp
  bootp [loadAddress] [bootfilename]
  bootp命令通過bootp請(qǐng)求,需要DHCP服務(wù)器分配IP地址,然后通過TFTP協(xié)議下載指定的文檔到內(nèi)存。
  第1個(gè)參數(shù)是下載文檔存放的內(nèi)存地址。
  第2個(gè)參數(shù)是要下載的文檔名稱,這個(gè)文檔應(yīng)該在研發(fā)主機(jī)上準(zhǔn)備好。
  => help cmp
  cmp [.b, .w, .l] addr1 addr2 count
  - compare memory
  cmp命令能夠比較2塊內(nèi)存中的內(nèi)容。.b以字節(jié)為單位;.w以字為單位;.l以長(zhǎng)字為單位。注意:cmp.b中間不能保留空格,需要連續(xù)敲入命令。
  第1個(gè)參數(shù)addr1是第一塊內(nèi)存的起始地址。
  第2個(gè)參數(shù)addr2是第二塊內(nèi)存的起始地址。
  第3個(gè)參數(shù)count是要比較的數(shù)目,單位按照字節(jié)、字或長(zhǎng)字。
  => help cp
  cp [.b, .w, .l] source target count
  - copy memory
  cp命令能夠在內(nèi)存中復(fù)制數(shù)據(jù)塊,包括對(duì)Flash的讀寫操作。
  第1個(gè)參數(shù)source是要復(fù)制的數(shù)據(jù)塊起始地址。
  第2個(gè)參數(shù)target是數(shù)據(jù)塊要復(fù)制到的地址。這個(gè)地址假如在Flash中,那么會(huì)直接調(diào)用寫Flash的函數(shù)操作。所以U-Boot寫Flash就使用這個(gè)命令,當(dāng)然需要先把對(duì)應(yīng)Flash區(qū)域擦干凈。
  第3個(gè)參數(shù)count是要復(fù)制的數(shù)目,根據(jù)cp.b cp.w cp.l分別以字節(jié)、字、長(zhǎng)字為單位。
  => help crc32
  crc32 address count [addr]
  - compute CRC32 checksum [save at addr]  
  crc32命令能夠計(jì)算存儲(chǔ)數(shù)據(jù)的校驗(yàn)和。
  第1個(gè)參數(shù)address是需要校驗(yàn)的數(shù)據(jù)起始地址。
  第2個(gè)參數(shù)count是要校驗(yàn)的數(shù)據(jù)字節(jié)數(shù)。
  第3個(gè)參數(shù)addr用來指定保存結(jié)果的地址。
  => help echo
  echo [args..]
  - echo args to console; \c suppresses newline
  echo命令回顯參數(shù)。
  => help 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
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
uboot啟動(dòng)參數(shù),機(jī)器碼,環(huán)境變量
UBOOT命令總結(jié)(轉(zhuǎn))_八度空間
國(guó)嵌視頻學(xué)習(xí)第九天——UBOOT基礎(chǔ)
uboot 命令使用教程(uboot參數(shù)設(shè)置)
【博文連載】cortex-a8 uboot系列: 第一章 uboot引入
u-boot環(huán)境變量的設(shè)置與使用
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服