UBoot操作和常用命令.ppt
《UBoot操作和常用命令.ppt》由會員分享,可在線閱讀,更多相關(guān)《UBoot操作和常用命令.ppt(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
UBoot操作和常用命令 主要內(nèi)容 u boot概念解釋u boot基礎(chǔ)指令使用介紹u boot環(huán)境變量u bootNANDFlash操作命令及燒錄Linux內(nèi)核和文件系統(tǒng) BootLoader概念 BootLoader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序 通過這段小程序 我們可以初始化硬件設(shè)備 建立內(nèi)存空間的映射圖 從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài) 以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境通常 BootLoader是嚴重地依賴于硬件而實現(xiàn)的 特別是在嵌入式世界 因此 在嵌入式世界里建立一個通用的BootLoader幾乎是不可能的 盡管如此 我們?nèi)匀豢梢詫ootLoader歸納出一些通用的概念來 以指導(dǎo)用戶特定的BootLoader設(shè)計與實現(xiàn) UBoot來源 U Boot是DasU Boot的簡稱 其含義是UniversalBootLoader 是遵循GPL條款的開放源碼項目 最早德國DENX軟件工程中心的WolfgangDenk基于8xxROM和FADSROM的源碼創(chuàng)建了PPCBoot工程項目 此后不斷添加處理器的支持 而后 SysgoGmbh把PPCBoot移植到ARM平臺上 創(chuàng)建了ARMBoot工程項目 最終 以PPCBoot工程和ARMBoot工程為基礎(chǔ) 創(chuàng)建了U Boot工程 而今 U Boot作為一個主流 通用的BootLoader 成功地被移植到包括PowerPC ARM X86 MIPS NIOS XScale等主流體系結(jié)構(gòu)上的百種開發(fā)板 成為功能最多 靈活性最強 并且開發(fā)最積極的開源BootLoader 目前 U Boot仍然由DENX的WolfgangDenk維護 燒寫UBoot UBoot編譯完成后 會在源碼目錄下生成u boot bin這個二進制文件 利用JLink工具把u boot bin燒寫到NORFlash的0 x00000000位置即可 mkimage 在使用UBoot引導(dǎo)Linux內(nèi)核時 必須對Linux內(nèi)核鏡像文件做適當(dāng)?shù)男薷淖孶Boot可以引導(dǎo)使用mkimage程序來對linux內(nèi)核文件增加UBoot頭 uboot源代碼的tools 目錄下有mkimage工具 這個工具可以用來制作不壓縮或者壓縮的多種可啟動映象文件 mkimage在制作映象文件的時候 是在原來的可執(zhí)行映象文件的前面加上一個0 x40字節(jié)的頭 記錄參數(shù)所指定的信息 這樣uboot才能識別這個映象是針對哪個CPU體系結(jié)構(gòu)的 哪個OS的 哪種類型 加載內(nèi)存中的哪個位置 入口點在內(nèi)存的那個位置以及映象名是什么 mkimage使用 Usage mkimage limage l listimageheaderinformationmkimage x Aarch Oos Ttype Ccomp aaddr eep nname ddata file data file image A setarchitectureto arch O setoperatingsystemto os T setimagetypeto type C setcompressiontype comp a setloadaddressto addr hex e setentrypointto ep hex n setimagenameto name d useimagedatafrom datafile x setXIP executeinplace 制作uImage內(nèi)核鏡像文件mkimage n linux 2 6 33 7 Aarm Olinux Tkernel Cnone a0 x30008000 e0 x30008040 dzImageuImage 燒錄Linux內(nèi)核 燒錄Linux內(nèi)核并實現(xiàn)自啟動 1 通過mkimage工具把Linux內(nèi)核鏡像文件轉(zhuǎn)為UBoot格式通過tftp協(xié)議燒寫到開發(fā)板內(nèi)存的的0 x30008000位置2 PC的虛擬機Linux安裝ftfp服務(wù)器端并配置測試連接成功3 重啟開發(fā)板ping通虛擬機linux4 配置傳給linux的命令行參數(shù)5 開發(fā)板UBoot通過tftp協(xié)議和Linux進行連接 把Linux內(nèi)核讀入SDRAM后通過nand命令寫入nandflash的指定位置 6 根據(jù)Linux啟動信息獲得Linux內(nèi)核默認的MTD分區(qū)并做出相應(yīng)的修改后 把文件系統(tǒng)燒入相應(yīng)位置 tftp的安裝和配置 redhat9下載tftp server 0 32 4 i386 rpm軟件包rpm ivhtftp server 0 32 4 i386 rpm安裝Fedora9下可以使用yum在線安裝tftp serveryuminstalltftp server新建tftp根目錄并授予權(quán)限mkdir var tftprootchmod R777 var tftproottftpserver配置tftpserver配置文件 etc xinetd d tftp 修改tftp配置文件 default off description Thetftpserverservesfilesusingthetrivialfiletransfer protocol Thetftpprotocolisoftenusedtobootdiskless workstations downloadconfigurationfilestonetwork awareprinters andtostarttheinstallationprocessforsomeoperatingsystems servicetftp disable no 設(shè)置為no 開啟服務(wù)socket type dgramprotocol udpwait yesuser rootserver usr sbin in tftpdserver args s var tftproot c 這里配置tftp服務(wù)器根目錄 c參數(shù)表示可以寫文件per source 11cps 1002flags IPv4 tftp服務(wù)器配置 UBoot環(huán)境變量 1 bootargs參數(shù)bootargs參數(shù)是啟動時傳遞給Linux操作系統(tǒng)的信息 其配置語句為 setbootargsroot dev mtdblock3console ttyS0 115200rootfstype cramfsmem 32mbroot dev mtdblock2表示從nand的第三個分區(qū)啟動文件系統(tǒng) Linux啟動后會自動搜索nand分區(qū)信息 console 表示Linux操作系統(tǒng)使用的控制臺 我們使用第一個串口 因此是ttyS0 后面跟的115200表示串口使用的波特率 rootfstype 表示文件系統(tǒng)的格式 我們燒錄在nand中的文件系統(tǒng)使用cramfs 所以在這里要填寫cramfs 否則linux會嘗試自動掛載 可能會出錯 mem 表示Linux操作系統(tǒng)的內(nèi)存容量 目前開發(fā)板板載32MB內(nèi)存 因此填32mb 2 bootcmd參數(shù)bootcmd參數(shù)表示開發(fā)板上電 bootdelay結(jié)束后執(zhí)行的指令 這里填寫內(nèi)容的含義是用tftp這條命令 將主機上的vmlinux img 即Linux內(nèi)核 加載到內(nèi)存的30007fc0這個地址 然后從30007fc0啟動內(nèi)核 如果將Linux內(nèi)核燒錄到nandflash上 則指令又有不同 下面會詳細介紹 UBoot常用命令 usbstart 起動usb功能usbinfo 列出設(shè)備usbscan 掃描usbstorage u盤 設(shè)備fatls 列出DOSFAT文件系統(tǒng) 如 fatlsusb0列出第一塊U盤中的文件fatload 讀入FAT中的一個文件 如 fatloadusb00 x30000000aa txtflinfo 列出flash的信息nfs nfs32000000192 168 0 2 aa txt 把192 168 0 2 LINUX的NFS文件系統(tǒng) 中的NFS文件系統(tǒng)中的aa txt讀入內(nèi)存0 x32000000處tftp tftp32000000vmlinux 把server IP 環(huán)境變量中設(shè)置的serverip 中 tftpdroot 下的vmlinux通過TFTP讀入到物理內(nèi)存32000000處ping 注 只能開發(fā)板PING別的機器bootm 起動UBOOTTOOLS制作的壓縮LINUX內(nèi)核 bootm3200000mw 對RAM中的內(nèi)容寫操作 mw32000000ff10000 把內(nèi)存0 x32000000開始的0 x10000字節(jié)設(shè)為0 xFF UBoot對NandFlash操作 nandinfo 查看NANDFlash信息命令nandinfoDevice0 Samsungunknown64Mbat0 x11000200 64MB 16kBsector nanderase 地址 大小 擦除NANDFlash命令將NANDFlash中起始地址0 x00100000大小為0 x00200000的內(nèi)容擦除 切記NANDFlash使用前一定要先擦除 SEP4020 nanderase0 x001000000 x00200000NANDerase device0offset1048576 size2097152 OKnandwrite 內(nèi)存地址 NAND地址 大小 將SDRAM中地址0 x31000000中大小為0 x00200000的內(nèi)容寫入NANDFlash的0 x100000地址 nandwrite0 x310000000 x001000000 x00200000NANDwrite device0offset1048576 size2097152 2097152byteswritten OK燒寫文件系統(tǒng)nandwrite yaffs0 x300080000 x5600000 x3b22c00 文件系統(tǒng)的燒寫 UBoot啟動Linux內(nèi)核后會在某個固定位置讀取文件系統(tǒng)信息 這個具體位置通過Linux代碼common smdk c文件的MTD分區(qū)來決定 arch arm plat s3c24xx 目錄下 Creating5MTDpartitionson NAND256MiB3 3V8 bit 0 x000000000000 0 x000000040000 supervivi ftl cs FTLheadernotfound 0 x000000040000 0 x000000060000 param uncorrectableerror 0 x000000060000 0 x000000560000 Kernel ftl cs FTLheadernotfound 0 x000000560000 0 x000040560000 root mtd partition root extendsbeyondtheendofdevice NAND256MiB3 3V8 bit sizetruncatedto0 xfaa0000ftl cs FTLheadernotfound 0 x000000000000 0 x000040000000 nand mtd partition nand extendsbeyondtheendofdevice NAND256MiB3 3V8 bit sizetruncatedto0 x10000000 MTD分區(qū) 需要注意的是 不同版本的內(nèi)核分區(qū)情況可能會有不同 在使用中要注意閱讀內(nèi)核發(fā)布時的說明文檔 根據(jù)實際情況進行操作 本文檔中使用上述分區(qū)方式 其中mtdblock0留出空間可以存放Uboot或者vivi mtdblock1用來存放UBoot傳給Linux的參數(shù)信息 mtdblock2用來存放Linux內(nèi)核鏡像文件 mtdblock3用來掛載yaffs文件系統(tǒng)或其他分區(qū)- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- UBoot 操作 常用命令
鏈接地址:http://m.zhongcaozhi.com.cn/p-6430346.html