在arm開發(fā)平臺上運行l(wèi)inux   翻譯稿封面_第1頁
在arm開發(fā)平臺上運行l(wèi)inux   翻譯稿封面_第2頁
在arm開發(fā)平臺上運行l(wèi)inux   翻譯稿封面_第3頁
在arm開發(fā)平臺上運行l(wèi)inux   翻譯稿封面_第4頁
在arm開發(fā)平臺上運行l(wèi)inux   翻譯稿封面_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

英文專業(yè)資料翻譯英文專業(yè)資料翻譯英文專業(yè)資料翻譯英文專業(yè)資料翻譯英文資料題目英文資料題目英文資料題目英文資料題目RUNNINGLINUXONARMDEVELOPMENTPLATFORMS英文資料來源英文資料來源英文資料來源英文資料來源HTTP/WWWARMCOM中文譯文題目中文譯文題目中文譯文題目中文譯文題目在在在在ARMARM開發(fā)平臺上運行開發(fā)平臺上運行開發(fā)平臺上運行開發(fā)平臺上運行LINUXLINUX專專專專業(yè)業(yè)業(yè)業(yè)自動化自動化自動化自動化姓姓姓姓名名名名學(xué)學(xué)學(xué)學(xué)號號號號指導(dǎo)教師指導(dǎo)教師指導(dǎo)教師指導(dǎo)教師二OO八年六月十六日在在在在ARM開發(fā)平臺上運行開發(fā)平臺上運行開發(fā)平臺上運行開發(fā)平臺上運行LINUX2007年1月摘要摘要摘要摘要這篇文檔介紹了怎樣在基于ARM的開發(fā)平臺上安裝和運行LINUX的步驟,包括安裝BOOTLOADER,內(nèi)核和文件系統(tǒng)鏡像。這篇文檔并不打算成為關(guān)于開發(fā)與建立LINUX系統(tǒng)的完全手冊,在開源社區(qū)里已經(jīng)有大量可獲得的關(guān)于這方面的信息,開源論壇也提供了許多有價值的信息。請參考ARMLINUX的維客網(wǎng)站(WWWLINUXARMORG或者WWWARMCOM/LINUX來獲得更多信息。索引索引索引索引1安裝預(yù)先編譯好的鏡像2BOOTLOADER3LINUX內(nèi)核4文件系統(tǒng)5編譯工具51交叉編譯52二進制兼容性6UCLINUX7附加注意事項1安裝預(yù)先編譯好的鏡像安裝預(yù)先編譯好的鏡像安裝預(yù)先編譯好的鏡像安裝預(yù)先編譯好的鏡像鏡像文件可以通過比如ARMREALVIEWICE這樣的調(diào)試器安裝到閃存上,這種調(diào)試器通過JTAG運行控制器與開發(fā)板相連。ARMREALVIEWRINTEGRATOR的開發(fā)板使用ARMFLASHUTILITY由板子提供來燒寫鏡像(比如AFUAXF,在調(diào)試器中運行工具AFUPROGRAM1UBOOTC/TMP/UBOOTBINLOWESTAVAILABLEFLASHATLOCATION0X24440000BLOCKB30PROGRAMMINGBLOCKB30ARMREALVIEWVERSATILEPB,AB926EJS通過調(diào)試器運行由開發(fā)提供的BOOTMONITORAXF程序來燒寫鏡像。程序上有幾個關(guān)于燒寫ELF格式或者是二進制格式的選項菜單。為了通過閃存運行程序你應(yīng)該按照如下燒寫ELF格式的鏡像到閃存FLASHWRITEIMAGEC/TMP/UBOOTAXFNAMEUBOOTREALVIEWVERSATILES提供了一個叫做“NETWORKFLASHUTILITYNFU”的附加的閃存燒寫工具。這個工具能夠通過以太網(wǎng)連接來燒寫鏡像到閃存。為了從一個IP已知(比如19216801的服務(wù)器下載并燒寫一個UBOOT鏡像文件到閃存,你可以使用如下命令序列MANAGEDHCPCSTARTMANAGEMAPN19216801FLASHWRITEIMAGEN/UBOOTAXF請參考你的REALVIEWVERSATILE系列光盤中提供的文檔來獲得更多的信息和精確的語法。在燒寫其他鏡像文件內(nèi)核與CRAMFS文件系統(tǒng)的時候可以使用類似的過程。這些鏡文件應(yīng)當(dāng)按照二進制格式燒寫而不是按照ELF格式燒寫。更多的信息請參考隨開發(fā)板所提供的固件文檔。2BOOTLOADERUBOOT是REALVIEWINTEGRATOR與VERSATILE版本的啟動加載器??梢酝ㄟ^WWWSOURCEFORGENET/PROJECTS/UBOOT/來獲取源代碼和文檔。UBOOT預(yù)期是在ARM板子上內(nèi)存的的0X0100000地址處開始運行。提供的鏡像可以通過一個調(diào)試器加載而從這個地址上運行。REALVIEWINTEGRATOR原始二進制文件(或者是ELF文件可以在閃存的開始處被替換并當(dāng)作默認的鏡像而被執(zhí)行。REALVIEWVERSATILE你應(yīng)當(dāng)使用ELF文件直接從閃存運行,或者從內(nèi)存加載和運行原始的二進制文件。為了編譯UBOOT你需要從上述網(wǎng)站上下載源代碼的發(fā)行版本。對REALVIEWINTEGRATOR與VERSATILE的支持已經(jīng)加入了UBOOTCVS/GIT的軟件倉庫。在寫這篇文檔的時候附加的補丁或許已經(jīng)應(yīng)用上了,如果有的話,這些補丁應(yīng)當(dāng)被列出在對外公布的郵件列表上源代碼可以從HTTP/WWWARMCOM/LINUX/LINUX_DOWNLOADHTML獲得。一旦你已經(jīng)解壓源碼,你需要設(shè)置并編譯BOOTLOADER。你可以從MAKEFILE的上面部分來參考所有的目標列表。為了設(shè)置與編譯BOOTLOADER你應(yīng)當(dāng)執(zhí)行下列命令REALVIEWINTEGRATOR/CPMAKEINTEGRATORCP_CONFIGMAKEREALVIEWVERSATILEMAKEVERSATILEAB_COFIGMAKE編譯出的可執(zhí)行文件二進制或者是ELF格式被放置在最頂層的目錄。為了編碼傳遞給LINUX內(nèi)核的默認的命令行參數(shù)和默認的BOOTLOADER命令序列比如DHCP/BOOTTP,FLASH等,使用了很多的宏定義。這其中的許多宏定義可以通過使用UBOOT的SET命令進行交互式的改變。ARMREALVIEWVERSATILE開發(fā)板所用的參數(shù)可以通過各自的在INCLUDE/CONFIGS目錄下的配置文件得到,這些配置文件都定義了像CONFIG_COMMANDS,CONFIG_BOOTARGS與CONFIG_BOOTCOMMAND這樣的宏。LINUX內(nèi)核通常從由宏CFG_LOAD_ADDR0X7C0指定的地址開始加載,然后從0X8000處執(zhí)行一個未被壓縮的內(nèi)核鏡像。當(dāng)將一個原始的LINUX內(nèi)核二進制文件鏡像轉(zhuǎn)化成一個被UBOOT加載的文件時,這些參數(shù)由UBOOT的MKIMAGE工具指定。當(dāng)編譯UBOOT時MKIMAGE工具被內(nèi)置在里面。注意,當(dāng)你通過以太網(wǎng)下載一個內(nèi)核鏡像的時候,你應(yīng)當(dāng)配置你的服務(wù)器能夠識別你的開發(fā)平臺的網(wǎng)卡地址和鏡像的下載位置。從閃存的鏡像中啟動從閃存的鏡像中啟動從閃存的鏡像中啟動從閃存的鏡像中啟動當(dāng)把UBOOT啟動文件加入LINUX內(nèi)核二進制鏡像中去時,請確認加載與執(zhí)行的地址都被設(shè)置為0X8000。啟動命令應(yīng)當(dāng)是INTEGRATORCPCP0X0X7FC00XINTEGRATORCPBOOTM你也可以使用UBOOT所帶的“HELP“命令來查看每個命令的精確的語法。命令行命令行命令行命令行LINUX內(nèi)核的命令行可以在UBOOT的提示符下通過使用SET命令來改變。“PRINTENV“命令可以用來列出當(dāng)前的環(huán)境變量。當(dāng)從一個BOOTLOADER執(zhí)行一個LINUX內(nèi)核的時候,內(nèi)核就會使用由指出的命令行來代替任何默認的內(nèi)置的命令行。鏡像可以允許你保存環(huán)境變量到閃存中,這可以通過使用“SAVEENV“命令來實現(xiàn)。從HTTP/WWWARMCOM/LINUX中獲得的UBOOT鏡像包含了已保存在閃存中的從閃存的低部開始的按照的UBOOT,內(nèi)核和文件系統(tǒng)的順序保存在閃存中的命令行。3LINUX內(nèi)核內(nèi)核內(nèi)核內(nèi)核內(nèi)核的源代碼可以從WWWKERNELORG網(wǎng)站上下載并獲得,任何附加的補丁應(yīng)當(dāng)按照如下添加在基本內(nèi)核目錄樹上CDLINUX2619/PATCHPL對于每一個平臺和預(yù)先編譯的鏡像都有配置文件。相關(guān)的配置文件應(yīng)當(dāng)復(fù)制到內(nèi)核文件并命名為CONFIG,內(nèi)核可以通過運行MAKEXCONFIG或者等價的命令比如MAKEMENUCONFIG來配置。以下命令序列可以用來編譯構(gòu)建內(nèi)核MAKEXCONFIGMAKEIMAGE在ARCH/ARM/BOOT/中產(chǎn)生原始的二進制鏡像一個包含與內(nèi)核鏡像相關(guān)且能夠被調(diào)試器加載的調(diào)試信息的VMLINUX文件會產(chǎn)生假設(shè)內(nèi)核在編譯的時候使用了G選項BOOTLOADER同時也能檢測到平臺的ID,信息被保存在寄存器中。內(nèi)核在啟動并執(zhí)行以前需要平臺的編號。當(dāng)直接從一個調(diào)試器中啟動一個內(nèi)核的時候,寄存器中的值需要有調(diào)試器設(shè)定。4文件系統(tǒng)文件系統(tǒng)文件系統(tǒng)文件系統(tǒng)由本頁提供的內(nèi)建的文件系統(tǒng)可用在ARMREALVIEWINTEGRATOR與VERSATILE版本的平臺上。使用一個腳本文件可以在運行的時候檢測平臺的類型,并且創(chuàng)建一個指向適當(dāng)?shù)拇谠O(shè)備/DEV/TTY的符號鏈接。這些鏡像包含了一個系統(tǒng)工具,命令和應(yīng)用程序的子集。為了配置一個壓縮的文件鏡像,ARM_EMBEDDED_LINUX_230TARGZ文件需要解壓。編譯的指令由最頂層的README文件提供,此文件還列出了產(chǎn)生一個壓縮文件系統(tǒng)鏡像的各個步驟。用于編寫此文件系統(tǒng)比如說CRAMFS文件系統(tǒng)中應(yīng)用的程序的源代碼包的復(fù)件可以以代碼的形式向ARM網(wǎng)站索取聯(lián)系A(chǔ)RM技術(shù)支持。文件系統(tǒng)或者通過NFS被掛載或者放在閃存上,取決于平臺的設(shè)置和在啟動時傳遞給內(nèi)核的命令行參數(shù)。在任何情況下,文件系統(tǒng)的位置由內(nèi)核的命令行參數(shù)以“ROOT“選項的形式具體指出,或者是ROOT/DEV/MTDBLOCKI或者是ROOT/DEV/NFS,其中I由合適的分區(qū)數(shù)代替。在REALVIEWVERSATILE版本平臺上,MTDPART選項需要被定義以便指出鏡像存放在閃存的哪個位置。這些已經(jīng)在內(nèi)核源代碼目錄下的DRIVER/MTD/目錄下整理好了,并且在配置文件中還有一個與REALVIEWVERSATILE平臺二進制鏡像有關(guān)的配置文件。5編譯工具51交叉編譯ARM交叉編譯工具鏈需要安裝在宿主機上以便用來編寫LINUX內(nèi)核或者應(yīng)用程序。在默認情況下這篇文章假設(shè)是在一個基于LINUX宿主機的開發(fā)平臺上。請注意下載下來的預(yù)先編譯好的工具鏈需要假設(shè)你安裝在系統(tǒng)上的GLIBC的函數(shù)庫的版本23。以ROOT用戶來執(zhí)行如下步驟來解壓并且安裝預(yù)先編譯好的工具鏈到你的系統(tǒng)MKDIR/USR/LOCAL/ARM/GNU/RELEASE411CD/USR/LOCAL/ARM/GNU/RELEASE411TARXVFZSOURCEYG411ARMNONELINUXGNUEABII686PCLINUXGNUTARGZLNS/USR/LOCAL/ARM/GNU/RELEASE411/USR/LOCAL/ARM/GNU/RELEASES用來編譯GCC工具的源代碼可以從WWWCODESOURCERYCOM或者從GCCCVS的主要的軟件倉庫下載。也可以到這個網(wǎng)站的討論小組上去討論與ARMGNU工具有關(guān)的技術(shù)性的問題??梢跃幾g多種編譯器的目標文件AMRELF系列能夠產(chǎn)生與任何操作系統(tǒng)都無關(guān)的FLAT格式或者是標準的二進制文件。ARMELF選擇了與ARMLINUX共用大量代碼的ELF格式支持。ARMNONELINUXGNUEABI是在LINUX上需要的目標文件并且能夠編譯支持LINUX/ARM的ELF格式。預(yù)先構(gòu)建的工具鏈是按照ARMLINUX的選項產(chǎn)生的,并且不是使用的236版本的GLIBC。52ABI兼容性在這個發(fā)行版中使用的GCC也就是GCC41默認使用了支持ARM構(gòu)架的ABI。LINUX2619的內(nèi)核可以設(shè)置為支持新的ARM構(gòu)架的ABI和舊版本的ABI。隨文件系統(tǒng)提供的22版本的軟件包在編譯時已經(jīng)加入了對新的ABI的支持,你應(yīng)該確保你在配置內(nèi)核時加入了對ABI的支持KERNELFEATURESCONFIG_AEABI??梢允褂脙?nèi)核配置選項KERNELFEATURESCONFIG_OABI_COMPAT來使用ARM構(gòu)架的舊版本的ABI,然而這需要一個與內(nèi)建了支持舊版本ABI(也就是AEL210二進制工具的文件系統(tǒng)聯(lián)合使用。在使用諸如由IOCTL調(diào)用而傳遞的數(shù)據(jù)結(jié)構(gòu)體的時候,這就顯得十分重要,從內(nèi)核的角度與從用戶的角度來看這些地方的數(shù)據(jù)類型與隊列必須精確一致。這篇文檔可以從地址HTTP/WWWARMCOM/PDFS/AN150B_BUILDEING_LINUX_APPLICATIONS_WITH_RVCTZIP下載。6UCLINUX本頁提供預(yù)先編譯好的UCLINUX內(nèi)核鏡像。主要的軟件倉庫的關(guān)于UCLINUX源代碼的內(nèi)核信息可以從HTTP/WWWUCLINUXORG和HTTP/OPENSRCSECSAMSUNGCOM網(wǎng)站由HYOKS為了最初的ARM移植而創(chuàng)立上下載。在2005年,對沒有MMU的ARM的支持已經(jīng)加入到了主內(nèi)核中,并且大部分的不支持MMU的內(nèi)核補丁應(yīng)當(dāng)被整合到主內(nèi)核中。在這個網(wǎng)站上獲得的UCLINUX內(nèi)核鏡像是由與EABI兼容的工具鏈產(chǎn)生的,并且內(nèi)核在編譯的時候使用了CONFIG_AEABI選項。然而這并不是一個完整的對UCLINUX兼容的EABI也就是共享庫等)。在本頁上提供的文件系統(tǒng)的鏡像是一個由社區(qū)成員們制作的工具與可執(zhí)行文件的集合體,并且有編譯的時候沒有使用EABI選項。假設(shè)已經(jīng)對內(nèi)核進行了設(shè)置,內(nèi)核可以處理這兩種類型的二進制文件。UCLINUX對應(yīng)用程序使用一種FLAT格式的二進制文件。這只是一個簡單的包含了加載與執(zhí)行需求最小的可二進制格式。一個特殊的為ELF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論