<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PowerPC平臺Linux的移植(一)

PowerPC平臺Linux的移植(一)

作者: 時(shí)間:2017-10-13 來(lái)源:網(wǎng)絡(luò ) 收藏

是早期Motorola和IBM聯(lián)合為Apple的MAC機開(kāi)發(fā)的CPU芯片,商標權同時(shí)屬于IBM和Motorola,并成為他們的主導成品.IBM主要的產(chǎn)品有604s(深藍內部的CPU), PowerPC750,PowerPCG3(1.1GHz).Motorola主要有MC和MPC系列.盡管他們產(chǎn)品不一樣,但都采用PowerPC的內核.這些產(chǎn)品大都用在嵌入式系統中.我們這里要介紹的,主要是針對IBM在xilinx平臺上推出的PowerPC嵌入式內核。本文所寫(xiě)的內容,基本上都是用于XUP大學(xué)計劃開(kāi)發(fā)板的,但是其中很多步驟都是通用的,你完全可以在Xilinx ML-403開(kāi)發(fā)板或者其他相應板子上參考這些步驟,它們之間最大的區別就是創(chuàng )建SystemACE時(shí)的命令行不同,在相應的部分會(huì )具體講解。應該說(shuō)不管什么平臺,整個(gè)流程都遵從于:Kernel preparaTIon —》 isntall BSP —》 Build hardware platform —》 Memory test —》 Build kernel image —》 Download本文假設讀者對linux環(huán)境下ISE,EDK等工具的操作已經(jīng)熟悉,并對在XUP開(kāi)發(fā)板上定制基本硬件系統已經(jīng)熟悉,因此不再詳細涉及這方面的問(wèn)題。本文作者直接使用linux作為開(kāi)發(fā)環(huán)境,因此文章中也不會(huì )涉及交叉編譯環(huán)境的創(chuàng )建,如果你是windows用戶(hù),請自行參考網(wǎng)上有關(guān)cygwin的文章;如果你所使用的操作系統是linux,但對開(kāi)發(fā)環(huán)境的建立不熟悉,可以參考我之前寫(xiě)的linux下eda工具安裝這篇文章;如果你對硬件系統的定制還不算熟悉,請將問(wèn)題針對到某一個(gè)模塊,然后留言詢(xún)問(wèn)。整個(gè)文章比較長(cháng),從目前已經(jīng)寫(xiě)了的內容來(lái)看,可能要分三個(gè)部分發(fā)布。這里是第一部分。基本系統信息軟件:ISE和EDK都是9.1,沒(méi)有sp,操作系統是ubuntu 7.04;硬件:XUP開(kāi)發(fā)板,usb下載線(xiàn);基本系統組成:300MHz PPCopb_sysaceopb_ethernet (無(wú)DMA)DDR memory controlleropb_uart_16550plb_bram_if_cntrl(bram選擇最大容量)所有部件都要有中斷支持。按照上面的基本要求把系統構建起來(lái),OS先選擇standalone,跑一個(gè)基本程序看一看。只有確認基本系統正常之后,才可以知道以后移植系統時(shí)遇到的毛病是否是硬件原因。在EDK中創(chuàng )建BSP首先,打開(kāi)軟件平臺設置的選項,按照下列步驟執行:1. 將PPC_405_0的OS設置為linux_mvl31,我這里的版本是1.01.c2. 進(jìn)入Library/OS選項,其中,MEM_SIZE設置成你所用平臺上內存的容量,比如是256MB就設置成0&TImes;10000000,依此類(lèi)推。 PLB_CLOCK_FREQ_HZ是你PLB總線(xiàn)的頻率,XUP是100MHz,也就是100000000,其他類(lèi)型開(kāi)發(fā)板自行修改。 TARGET_DIR是你用于存放BSP的路徑,注意,路徑千萬(wàn)不能有空格。3. 添加硬件,在connected_periphs里面,不過(guò)一般點(diǎn)進(jìn)去之后就都已經(jīng)幫你自動(dòng)添加好了。4. 執行libgen。如果一切順利,就可以生成相應的bsp了。如果在這個(gè)過(guò)程中出現了什么問(wèn)題,都可以去EDK安裝目錄下的sw/ThirdParty/bsp/linux_mvl31_v1_00_a/data/目錄去看看相應的tcl文件,它們是用來(lái)實(shí)際執行BSP操作的命令。到這里,你就已經(jīng)有了可工作的bit流文件以及為準備的BSP文件了。但有趣的是,我發(fā)現BSP的作用很小,所有edk9.1生成的文件,你所需要的可能就只有xparameters.h 和 xparameters_ml403.h真正有用,其它文件作用很少,如果你下載的源代碼是montavista的東西,甚至連這兩個(gè)文件都不用了。當然,如果使用的電路板是自定制的,像xparameters_ml403.h就會(huì )有不同的macro定義,因此這兩個(gè)是一定要覆蓋默認的內核目錄下的同名文件的。出于保險,最后還是使用上這個(gè)BSP就行了。創(chuàng )建用于ppc的交叉編譯環(huán)境通常,程序是在一臺計算機上編譯,然后再分布到將要使用的其他計算機上。當主機系統(運行編譯器的系統)和目標系統(產(chǎn)生的程序將在其上運行的系統)不兼容時(shí),該過(guò)程就叫做交叉編譯。建立一個(gè)交叉編譯工具鏈是一個(gè)相當復雜的過(guò)程,如果你不想自己經(jīng)歷復雜的編譯過(guò)程,網(wǎng)上有一些編譯好的可用的交叉編譯工具鏈可以下載。在這里,我們直接通過(guò)現成的腳本來(lái)建立ppc的交叉編譯環(huán)境,如果你對自己編譯建立這個(gè)環(huán)境感興趣,可以自行參考文章如何為嵌入式開(kāi)發(fā)建立交叉編譯環(huán)境??紤]到絕大多數人使用的都是x86電腦,因此,建立適宜于ppc的交叉編譯環(huán)境就是必要的。首先,到這里來(lái)下載crosstoll的安裝包。下載完后解壓縮,進(jìn)入文件夾,你就能看見(jiàn)很多類(lèi)似于demo-arch.sh這種形式的腳本。每一種arch,對應的自然就是一種硬件平臺,而我們這里要使用的,就是demo-powerpc-405.sh。如果你對這套工具感興趣,可以參閱其使用說(shuō)明。這里,筆者只根據自己的開(kāi)發(fā)環(huán)境來(lái)進(jìn)行講解。在使用之前,需要先對腳本編輯一下。打開(kāi)demo-powerpc-405.sh,TARBALLS_DIR是相關(guān)下載資源的存放地,因為在安裝交叉編譯環(huán)境之前,需要從網(wǎng)上下載glibc,gcc等的源代碼包。RESULT_TOP的值是安裝后的目錄,自行根據需要修改。另外找到這句話(huà):eval `cat powerpc-405.dat gcc-4.1.0-glibc-2.3.6.dat` sh all.sh –notestls將其中的gcc-4.1.0-glibc-2.3.6.dat修改為適合你平臺的dat文件??梢韵瓤纯次募A里面有哪些dat文件,gcc-4.1.0表示gcc的版本,glibc-2.3.6表示glibc的版本,這些版本號都要和你實(shí)際機器上的版本號相對應。如果不準備修改目錄,就在/opt目錄下自己建一個(gè)crosstool目錄,并將其權限改為可寫(xiě),最后執行腳本:sudo mkdir /opt/crosstoolsudo chown $USER /opt/crosstoolsh demo-powerpc-405.sh之后,腳本就會(huì )根據你所修改的選項,去網(wǎng)上找相應版本的gcc,gdb,glibc,內核等,下載并編譯安裝。具體所消耗的時(shí)間是和你的網(wǎng)速息息相關(guān)的。如果你所在的網(wǎng)絡(luò )速度很慢,建議你還是不要嘗試了,換個(gè)網(wǎng)絡(luò )再測試吧?;蛘吣憧梢钥纯茨_本中TARBALLS_DIR目錄的值,然后自行下載所需要的各種工具以及內核的源碼包,并自己放到這個(gè)目錄下,再執行sh demo-powerpc-405.sh即可。唯一需要注意的就是,你自己下載的環(huán)境工具源碼包的版本需要和demo-powerpc-405.sh里面指定的版本一致。所有需要的資源下載完畢之后,并不是就直接執行demo-powerpc-405.sh了,因為直接執行的話(huà)可能出現一些問(wèn)題,所以在之前要先做一些準備步驟:1. 先unset LD_LIBRARY_PATH,至于為什么,筆者猜測是由于 LD_LIBRARY_PATH 環(huán)境變量通常都是由安裝程序修改為包括相關(guān)庫所在的目錄,估計是編譯環(huán)境時(shí)不能受已有庫的影響,要在編譯過(guò)程中臨時(shí)給LD_LIBRARY_PATH 一個(gè)值,編譯完成之后再改回來(lái)。2. 安裝語(yǔ)法分析程序生成器bison/flex,執行apt-get install bison flex即可。3. 將/bin/sh的連接對象從dash改為bash,這是由于我選擇的glibc-2.3.6和dash有bug沖突。就算你不是用的glibc-2.3.6,也建議修改。先用ls -la /bin/sh看看你的sh鏈接到底是什么。如果是dash,就要通過(guò)sudo ln -sf /bin/bash /bin/sh來(lái)更改。進(jìn)行以上步驟后,再執行demo-powerpc-405.sh ,編譯過(guò)程就應該比較順利了。當然這個(gè)用時(shí)也是比較長(cháng)的,具體時(shí)間取決于機器配置,強烈建議吃個(gè)飯,打打球,然后再回來(lái)看看~。環(huán)境構建完成之后,該環(huán)境下的工具列表如下:別忘了在PATH變量中增添路徑,就是${prefix}/bin,這樣你就可以直接使用這些工具了。轉載自:fcni_cn的百度空間

本文引用地址:http://dyxdggzs.com/article/201710/365686.htm


關(guān)鍵詞: PowerPC Linux

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>