版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
湖南城市學(xué)院信息技術(shù)與工程管理學(xué)院MiniGUI在SkyEye0.8.6上的移植項(xiàng)目小組成員蔣文杰舒伸羅品京付錫林陽(yáng)棉似曹育斌指導(dǎo)老師:陽(yáng)俊2011-9-1
目錄一、移植平臺(tái)搭建 2二、移植過程中所需資源包匯總 2三、移植環(huán)境搭建詳解 31、編譯安裝SkyEye 32、編譯安裝帶LCD的SkyEye 33、安裝交叉編譯工具 44、配置、編譯和運(yùn)行內(nèi)核 45、內(nèi)核在SkyEye上的運(yùn)行 86、根文件系統(tǒng)制作 9四、在SkyEye的EP7312模擬器上運(yùn)行MiniGUI 191、確認(rèn)內(nèi)核的配置 202、為SkyEye的EP7312模擬器交叉編譯MiniGUI 243、在SkyEye的EP7312模擬器上運(yùn)行MiniGUI示例程序 25a、交叉編譯MiniGUI示例程序 25b、準(zhǔn)備文件系統(tǒng) 25c、運(yùn)行MiniGUI示例程序 27五、移植過程中遇到的問題及解決方法 28
一、移植平臺(tái)搭建VMwareWorkstationv6.5版本的虛擬機(jī)RedHat9.0的Linux操作系統(tǒng)安裝的文章多如牛毛,在這筆者就不再累述。但還是想提醒一下讀者,在選擇安裝路徑時(shí)要特別注意,一般它是默認(rèn)安裝在C:\ProgramFiles下,最好把它安裝在自己工作的目錄下。RedHat9.0安裝的文章網(wǎng)上比比皆是,在這不加累述了,還是那句老話,實(shí)在不會(huì)的讀者自己上網(wǎng)問google大神。讀者應(yīng)該注意的地方是在安裝RedHat9.0是要選擇完全安裝,這樣可以避免以后一些不必要的錯(cuò)誤。二、移植過程中所需資源包匯總/home/source/minigui/libminigui-gpl-1.6.3.tar.gz(開發(fā)庫(kù)包)minigui-gpl-res-1.6.tar.gz(資源包)mg-samples-gpl-1.6.3.tar.gz(示例程序包)/opt/armlinux/skyeye0.8.6.tar.gz(模擬開發(fā)板的軟件)linux-2.4.13-patched-for-EP7312.tar.gz(支持EP7312的內(nèi)核壓縮包)busybox-1.00.tar.gz(制作根文件系統(tǒng)的工具)genromfs-0.5.2.tar.gz(制作根文件系統(tǒng)鏡像的工具)gtk+-2.2.1.tar.bz2(支持LCD驅(qū)動(dòng))armlinux4skyeye-ep7312.tar.gz(LCD和觸摸屏驅(qū)動(dòng)程序)/usr/local/arm/cross-2.95.3.tar.gz(交叉編譯工具)三、移植環(huán)境搭建詳解1、編譯安裝SkyEyeSkyEye是一個(gè)用來學(xué)習(xí)嵌入式開發(fā)的非常有用的工具,下面就SkyEye對(duì)EP7312的模擬是如何構(gòu)建和運(yùn)行嵌入式Linux系統(tǒng)的加以闡述。首先要建立一個(gè)工作目錄/opt/armlinux,至于該目錄下放些什么資源包,筆者在上面已有闡述。為什么筆者要選用SkyEye0.8.6這個(gè)版本,而不選用更高的版本呢?這主要是因?yàn)樵摪姹局С諩P7312上的LCD仿真,功能比較完善。cd/optmkdirarmlinuxcdarmlinuxtarjxvfskyeye0.8.6.tar.gzcdskyeye./configure--target=arm-elf--prefix=/usr/localmakemakeinstall經(jīng)過以上幾步,可執(zhí)行文件skyeye將被安裝到/usr/local/bin目錄下。如果想在任何目錄下直接在命令行下輸入skyeye就想運(yùn)行SkyEye模擬器的話,就必須在PATH環(huán)境變量中加入/usr/local/bin路徑。修改環(huán)境變量的方法是:cd$homevi.bash_profile在最后一行加/usr/local/binsource.bash_profile//刷新環(huán)境變量(或者注銷一下系統(tǒng))這種修改方法只針對(duì)root用戶有用。若想針對(duì)所有用戶起作用的話就必須修改/etc/.bashrc,修改方法同上,這樣的話所有用戶都可以在任何目錄下使用SkyEye模擬器了。2、編譯安裝帶LCD的SkyEye前面編譯安裝的skyeye不支持LCD模擬。SkyEye對(duì)LCD的模擬是建立在gtk之上的,所以需要下載安裝gtk。筆者安裝的gtk版本是gtk+-2.2.1。cd/opt/armlinuxtarjxvfgtk+-2.2.1.tar.bz2cdgtk+-2.2.1./configure--target=arm-elf--prefix=/usr/localmakemakeinstall經(jīng)過以上幾步就可以重新編譯安裝了帶lcd模擬支持的SkyEye。3、安裝交叉編譯工具筆者所使用的交叉編譯工具是cross-2.95.3,因?yàn)閎usybox1.0.0與cross-2.95.3配套。安裝方法如下:cd/usr/localmakearmcdarmtarzxvfcross-2.95.3.tar.gz解壓后將在/usr/local/arm目錄下面生成一個(gè)名為2.95.3的目錄,所包含的ARMLinux交叉編譯器為2.95.3/bin目錄下的arm-linux-gcc。因此,需要在PATH環(huán)境變量中加上/usr/local/arm/2.95.3/bin一項(xiàng),使得arm-linux-gcc能夠在命令行下直接執(zhí)行(修改方法同上修改SkyEye的環(huán)境變量一樣)。4、配置、編譯和運(yùn)行內(nèi)核使用的內(nèi)核源代碼包為linux-2.4.13-patched-for-EP7312.tar.gz,該版本是針對(duì)ARMEP7312的Linux內(nèi)核版本。在/opt/armlinux目錄下解壓縮該文件,將生成一個(gè)linux-2.4.13目錄:tarzxvflinux-2.4.13-patched-for-EP7312.tar.gz首先需要進(jìn)行內(nèi)核配置,在命令行下輸入“makemenuconfig”,進(jìn)入內(nèi)核的配置界面:cdlinux-2makemenuconfigⅠ、進(jìn)入內(nèi)核的首界面:Ⅱ、然后進(jìn)入“SystemType”子菜單,選擇合適的處理器類型,如下圖所示:Ⅲ、進(jìn)入“CLPS711X/EP721XImplementations”菜單,選擇“EDB7312”,如下圖所示:Ⅳ、進(jìn)入“Blockdevices”子菜單,選擇“RAMdisksupport”和“IntialRAMdisk(initrd)support”,如下圖所示:Ⅴ、因?yàn)樾枰褂肦OMFS文件系統(tǒng)類型,所以進(jìn)入“Filesystems”子菜單,選擇“ROMfilesystemsupport”,如下圖所示:Ⅵ、配置完內(nèi)核之后保存配置并退出配置界面,運(yùn)行如下命令編譯內(nèi)核映像。makedepmakezImage生成的壓縮格式映像為arch/arm/boot/compressed/vmlinux文件,未壓縮的映像為內(nèi)核根目錄下的vmlinux文件。5、內(nèi)核在SkyEye上的運(yùn)行經(jīng)過了以上幾個(gè)步驟,現(xiàn)在就可以在SkyEye上運(yùn)行該內(nèi)核了。首先在/opt/armlinux目錄下建立一個(gè)用于保存運(yùn)行時(shí)程序和數(shù)據(jù)的工作目錄ep7312:cd/opt/armlinuxmkdirep7312cdep7312然后把內(nèi)核文件拷貝到該目錄下:cp/opt/armlinux/linux-2.4.13/vmlinux.–f在運(yùn)行SkyEye之前還需要一個(gè)針對(duì)EP7312的SkyEye配置文件skyeye.conf。在/opt/armlinux/ep7312下面新建一個(gè)skyeye.conf文件,添加如下的內(nèi)容:保存。skyeye.conf文件中各配置選項(xiàng)的含義如下:cpu:基本CPU核配置選項(xiàng),arm720t表示SkyEye所模擬的處理器類型是ARM720T。mach:具體的開發(fā)板(包括CPU擴(kuò)展)配置選項(xiàng),ep7312表示特定處理器是EP7312。mem_bank:內(nèi)核配置選項(xiàng)。然后就可以運(yùn)行“skyeyevmlinux”命令將內(nèi)核裝載到skyeye模擬器上運(yùn)行。首先出現(xiàn)的界面如下然后在(skyeye)命令提示下依次鍵入:targetsimloadrun可以看到vmlinux內(nèi)核已經(jīng)成功運(yùn)行了,但在根文件系統(tǒng)的掛載時(shí)失敗。這是因?yàn)檫€沒有制作根文件系統(tǒng),所以會(huì)顯示如下的信息:Kernelpanic:VFS:Unabletomountrootfsonlf:00但出現(xiàn)了上面的提示時(shí),這說明內(nèi)核沒有問題,下面就是準(zhǔn)備根文件系統(tǒng)了。6、根文件系統(tǒng)制作筆者所使用的根文件系統(tǒng)系統(tǒng)程序方案是BusyBox,所使用的版本是busybox1.0.0.tar.gz。首先在/opt/armlinux目錄下解壓縮該軟件包:tarzxvfbusybox-1.00.tar.gzcdbusybox-1.00然后執(zhí)行“makemenuconfig”命令對(duì)BusyBox進(jìn)行配置,見下圖:進(jìn)入“BuildOptions”子菜單,按下圖進(jìn)行配置。上述配置將BusyBox編譯為一個(gè)靜態(tài)可執(zhí)行程序(不需要共享庫(kù)),這樣運(yùn)行比較方便。選擇使用交叉編譯器,把編譯器的前綴設(shè)置為“arm-linux-”,相當(dāng)于指定編譯器為arm-linux-gcc。然后就是各種工具程序的選擇和配置。這些選項(xiàng)基本上可以保持不變,不過為了減少busybox程序的體積,可以去掉一些沒有太大用處或者目前用不著的工具(注意需要取消網(wǎng)絡(luò)工具中的route工具)。配置完之后運(yùn)行下面的命令來編譯BusyBox:makedepmake如果編譯正確無(wú)誤,將在當(dāng)前目錄下生成一個(gè)名為busybox的可執(zhí)行文件。使用file命令查看下,確定它是ARM版本的程序。如下圖所示:接著使用下面的命令就可以將BusyBox的工具程序安裝到指定的目標(biāo)根文件系統(tǒng)目錄下:makePREFIX=/opt/armlinux/ep7312/rootfsinstall進(jìn)入目標(biāo)根文件系統(tǒng)目錄看一下,應(yīng)該已經(jīng)有了bin、sbin、usr/bin和usr/sbin等系統(tǒng)目錄,目錄下有各種工具程序。BusyBox的默認(rèn)安裝目錄是當(dāng)前目錄下的_install目錄,也可以先把工具程序安裝到該目錄,然后拷貝到目標(biāo)根文件系統(tǒng)中。接下來就要在目標(biāo)根文件系統(tǒng)中創(chuàng)建常用的一些設(shè)備文件節(jié)點(diǎn)。首先創(chuàng)建/dev目錄,然后在該目錄下使用mknod命令創(chuàng)建如下的設(shè)備:創(chuàng)建完設(shè)備節(jié)點(diǎn)之后我們需要在/etc目錄下創(chuàng)建一些系統(tǒng)運(yùn)行所需的配置文件,包括inittab和fstab等。因?yàn)橄到y(tǒng)init程序使用的是BusyBox的init,所以就可以直接使用BusyBox提供的示例inittab文件即可。把該文件拷貝到目標(biāo)根文件系統(tǒng)的etc目錄下:cp/opt/armlinux/busybox-1.00/examples/inittab/opt/armlinux/ep7312/rootfs/etc從inittab文件可以看到,BusyBox的init程序自動(dòng)啟動(dòng)/etc/init.d目錄下的名為rcS的腳本。因此,就需要在目標(biāo)根文件系統(tǒng)的etc目錄下創(chuàng)建一個(gè)init.d目錄:cd/opt/armlinux/ep7312/rootfs/etcmkdirinit.dcdinit.d然后在init.d目錄下創(chuàng)建一個(gè)系統(tǒng)啟動(dòng)腳本rcS,并使用chmod+x命令使其具有可執(zhí)行屬性。內(nèi)容如下:vircS輸入上圖的內(nèi)容退出保存chmod+xrcS//修改rcS屬性使其變成可執(zhí)行該腳本所做的工作很簡(jiǎn)單,就是掛載proc文件系統(tǒng),并顯示/etc/motd文件中的系統(tǒng)歡迎信息。所以就還要在目標(biāo)根文件系統(tǒng)的etc目錄下創(chuàng)建一個(gè)motd文件,其內(nèi)容可隨意,筆者的內(nèi)容如下:在上面的基礎(chǔ)上,還需要在目標(biāo)根文件系統(tǒng)的etc目錄下創(chuàng)建一個(gè)文件系統(tǒng)的配置文件fstab,其內(nèi)容如下:到目前為止,一個(gè)可以運(yùn)行的根文件系統(tǒng)的內(nèi)容就準(zhǔn)備好了,我們?cè)僭谀繕?biāo)根文件系統(tǒng)目錄下加上lib和var等一些有用的系統(tǒng)目錄:cd/o pt/armlinux/ep7312/rootfsmkdirlibvarln–s/var/tmptmp我們得到的目標(biāo)根文件系統(tǒng)的目錄結(jié)構(gòu)如下:接下來使用genromfs工具制作ROMFS類型的目標(biāo)文件系統(tǒng)映像:cd/opt/armlinux/ep7312/genromfs–drootfs–frootfs.img有了目標(biāo)根文件系統(tǒng)映像之后,我們需要修改skyeye.conf文件中的相應(yīng)選項(xiàng)使SkyEye裝載指定的映像文件。修改后的skyeye.conf內(nèi)容如下:現(xiàn)在,讓我們?cè)?opt/armlinux/ep7312目錄下再次運(yùn)行SkyEye:可以看到根文件系統(tǒng)已經(jīng)被正確地掛載,init程序也已經(jīng)執(zhí)行,rcS腳本顯示的歡迎信息也顯示在屏幕上。我們按照提示按一下回車鍵進(jìn)入BusyBox的Shell環(huán)境:在Shell提示符下輸入ls–l命令查看一下目標(biāo)機(jī)上根文件系統(tǒng)的結(jié)構(gòu):再到/bin目錄和/sbin目錄下看一下:可以看到/bin和/sbin目錄下的程序都是指向busybox程序的符號(hào)鏈接,/usr/bin和/usr/sbin下的程序也是如此。所有這些程序的功能都包含在一個(gè)700KB的busybox程序中,真是無(wú)愧“瑞士軍刀”的稱號(hào)。到目前為止我們已經(jīng)構(gòu)建了一個(gè)可以在SkyEyeEP7312模擬器上正確運(yùn)行的ARMLinux內(nèi)核和ROMFS根文件系統(tǒng)。 四、在SkyEye的EP7312模擬器上運(yùn)行MiniGUISkyEye項(xiàng)目組于2004年針對(duì)EP7312模擬器完成了LCD和觸摸屏的仿真,下面所闡述的內(nèi)容是筆者根據(jù)自身的實(shí)踐闡述如何在嵌入式Linux上運(yùn)行MiniGUI。之前所做的所有工作都是為移植MiniGUI搭建好移植的環(huán)境。有了針對(duì)SkyEye的EP7312模擬器編譯的內(nèi)核,且已準(zhǔn)備好了基本的文件系統(tǒng)。筆者將所需的源代碼、工具等的安裝布局如下:armlinux內(nèi)核:/opt/armlinux/linux-2.4.13armlinux交叉編譯工具:/usr/local/arm/2.95.31、確認(rèn)內(nèi)核的配置首先,要將針對(duì)SkyEyeEP7312模擬器的LCD驅(qū)動(dòng)程序和觸摸屏驅(qū)動(dòng)程序添加到默認(rèn)的armlinux內(nèi)核中。將/opt/armlinux目錄下的armlinux4skyeye-ep7312.tar.gz解壓到/opt/armlinux/ep7312目錄下:cd/opt/armlinux/cparmlinux4skyeye-ep7312.tar.gz/opt/armlinux/ep7312tarzxvfarmlinux4skyeye-ep7312.tar.gz然后,將LCDFrameBuffer驅(qū)動(dòng)程序和觸摸屏驅(qū)動(dòng)程序源文件復(fù)制到armlinux內(nèi)核中:cd/opt/armlinux/cpep7312/armlinux4skyeye-ep7312/skyeye_ts_drv.[ch]linux-2.4.13/drivers/char/cpep7312/armlinux4skyeye-ep7312/skyeye_sys.hlinux-2.4.13/drivers/char/cpep7312/armlinux4skyeye-ep7312/ep7312.hlinux-2.4.13/drivers/video/cpep7312/armlinux4skyeye-ep7312/clps711xfb.clinux-2.4.13/drivers/video/-f注意,上面最后一條命令將覆蓋內(nèi)核中原有的clps711xfb.c。也就是說,SkyEyeEP7312模擬器的LCDFrameBuffer是在CLPS711xFrameBuffer驅(qū)動(dòng)的基礎(chǔ)上修改而成的。實(shí)際的EP7312板子支持12位色的顯示模式,但模擬器中的實(shí)現(xiàn)僅支持8位色。接下來,就是修改Linux內(nèi)核的配置文件,將觸摸屏驅(qū)動(dòng)程序添加到Linux內(nèi)核的配置選項(xiàng)中。修改linux-2.4.13/drivers/char/Config.in文件,在33行處添加如下一行:Bool‘TouchscreendriversupportforSkyEyeEP7312simulation’CONFIG_TS_SKYEYE_EP7312修改linux-2.4.13/driver/char/Makefile文件,在263行處添加如下一行:obj-$(CONFIG_TS_SKYEYE_EP7312)+=skyeye_ts_drv.o上述修改將針對(duì)SkyEyeEP7312的觸摸屏驅(qū)動(dòng)程序作為配置選項(xiàng)添加到了Linux內(nèi)核中,這樣,就可以通過makemenuconfig命令在配置Linux內(nèi)核時(shí)選擇是否編譯該觸摸屏驅(qū)動(dòng)程序。在完成上述修改后,就可以在linux-2.4.13/目錄下運(yùn)行makemenuconfig命令配置Linux內(nèi)核了。首先,保持其他配置不變,在“SystemType”的“CLPS711XImplementations”選中“EDB7312”:在“Characterdevices”選項(xiàng)中,確保選中“Virtualterminal”以及剛才添加的針對(duì)SkyEyeEP7312模擬器的觸摸屏驅(qū)動(dòng)程序(“TouchscrendriversupportforSkyEyeEP7312simulation”)選項(xiàng):在“Consoledrivers”選項(xiàng)組中,取消“VGAtexconsole”選項(xiàng),并在“Frame-bufferSupport”中,按下圖所示那樣選擇各選項(xiàng):完成上述配置后,保留其他配置不變,即可保存并退出makemenuconfig命令。檢查linux-2.4.13/目錄下的.config文件,可以看到如下選項(xiàng):接下來就可以針對(duì)SkyEye的EP7312模擬器編譯包含LCD仿真和觸摸屏仿真的Linux內(nèi)核了:makedepmake2、為SkyEye的EP7312模擬器交叉編譯MiniGUI筆者用的源代碼包是/home/source/minigui/目錄下的libminigui-gpl-1.6.3.tar.gz、minigui-gpl-res-1.6.tar.gz、mg-samples-gpl-1.6.3.tar.gz這三個(gè)包。我們可以直接使用源碼包中包含的配置腳本來為SkyEyeEP7312模擬器配置并交叉編譯源碼包。首先來看下這個(gè)配置腳本的內(nèi)容。進(jìn)入源碼包目錄:cd/home/source/minigui/libminigui-gpl-1.6.3打開build/目錄下的buildlib-linux-ep7312-skyeye文件。該文件的內(nèi)容如下:在MiniGUi源代碼目錄下,可直接運(yùn)行該腳本配置MiniGUI,然后運(yùn)行make和makeinstall命令:cd/home/source/minigui/libminigui-gpl-1.6.3./build/bulidlib-linux-ep7312-skyeyemakecleanmakemakeinstall在成功運(yùn)行上述命令之后,我們可在通過--prefix選項(xiàng)指定的目錄下看到MiniGUI的頭文件以及交叉編譯后的函數(shù)庫(kù)文件。至此,就編譯好了針對(duì)SkyEyeEP7312模擬器的MiniGUI,并將配置文件、頭文件和函數(shù)庫(kù)安裝到了指定的位置。將MiniGUI頭文件和函數(shù)庫(kù)安裝到上述這個(gè)位置主要的好處是,在進(jìn)行交叉編譯時(shí),我們無(wú)須顯示指定MiniGUI相關(guān)頭文件和庫(kù)文件的搜索路徑。接下來,就是編譯并運(yùn)行MiniGUI應(yīng)用程序。3、在SkyEye的EP7312模擬器上運(yùn)行MiniGUI示例程序a、交叉編譯MiniGUI示例程序單獨(dú)編譯MiniGUI應(yīng)用程序的辦法是:arm-linux-gcc–Wall–O2–ohelloworldhelloworld.c–lminigui–lpthread如果想使用mg-samples-gpl-1.6.3包,還可以直接使用預(yù)先準(zhǔn)備好的configure腳本生成可用于交叉編譯的makefile文件:cd/home/source/minigui/mg-samples-gpl-1.6.3./build-linux-ep7312-skyeyemakecleanmake運(yùn)行上述命令后,將交叉編譯生成mg-samples-gpl包中針對(duì)SkyEyeEP7312模擬器的所有示例程序。把交叉編譯好的可執(zhí)行文件拷貝到根文件系統(tǒng)的/bin目錄下。b、準(zhǔn)備文件系統(tǒng)一般而言,在嵌入式系統(tǒng)開發(fā)過程中,我們編譯完MiniGUI和應(yīng)用程序之后,需要把MiniGUI庫(kù)、資源和應(yīng)用程序拷貝到目標(biāo)系統(tǒng)準(zhǔn)備的文件系統(tǒng)目錄中,然后使用相關(guān)的工具生成目標(biāo)映像,在下載到目標(biāo)板上運(yùn)行。在某些目標(biāo)系統(tǒng)上,也可以使用某些下載工具通過串口或以太網(wǎng)口單獨(dú)下載文件到目標(biāo)板中。針對(duì)SkyEye的EP7312模擬器,我們使用ROMFS技術(shù),將根文件系統(tǒng)放在ROMFS中由內(nèi)核在引導(dǎo)結(jié)束后掛載該文件系統(tǒng)。為此,我們需在skyeye.conf文件中指定好ROMFS的映像文件名稱及合適的大小。我們可以在剛開始我們做的那個(gè)根文件系統(tǒng)的基礎(chǔ)上制作包括MiniGUI函數(shù)庫(kù)、配置文件、資源文件以及示例程序在內(nèi)的ROMFS映像文件。制作新ROMFS映像文件的步驟如下:第一步:將minigui-gpl-res-1.6包中的資源直接安裝到目標(biāo)文件系統(tǒng)中。進(jìn)入minigui-gpl-res-1.6目錄并編輯config.linux文件,將其中的prefix變量修改為:然后執(zhí)行makeinstall即可將MiniGUI所使用的資源文件復(fù)制到/opt/armlinux/ep7312/rootfs/usr/local/lib/minigui目錄下。刪除不需要的位圖、圖標(biāo)等資源:cdrootfs/usr/local/lib/minigui/resrmbmp/*flat,bmp–frmbmp/*phone.bmp–frmicon/*flat.ico–frmimetab/-rf第二步:筆者的MiniGUI應(yīng)用程序是使用動(dòng)態(tài)鏈接編譯的,因此,需要將交叉編譯環(huán)境中的C函數(shù)庫(kù)、libthread函數(shù)庫(kù)、MiniGUI函數(shù)庫(kù)復(fù)制ROMFS文件系統(tǒng)的/lib目錄下:cd/opt/armlinux/ep7312/rootfscp/usr/local/arm/2.95.3/arm-linux/lib/libminigui-1.6.so.2lib/cp/usr/local/arm/2.95.3/arm-linux/lib/libpthread.so.0lib/cp/usr/local/arm/2.95.3/arm-linux/lib/libm.so.6lib/cp/usr/local/arm/2.95.3/arm-linux/lib/libc.so.6lib/cp/usr/local/arm/2.95.3/arm-linux/lib/ld-linux.so.2lib/arm-linux-striplib/*上述命令將ld-linux.so.2、libc.so.6、libm.so.6、libpthread.so.0等文件復(fù)制到ROMFS文件系統(tǒng)的/lib目錄。注意,我們最后調(diào)用arm-linux-strip命令剝離了共享庫(kù)中的符號(hào)信息。第三步:在ROMFS中建立下面的符號(hào)鏈接:mkdir–pusr/local/arm/2.95.3/arm-linux/ln–s/libusr/local/arm/2.95.3/arm-linux/lib上面的命令情確保動(dòng)態(tài)鏈接系統(tǒng)能夠找到正確的動(dòng)態(tài)鏈接庫(kù)。ROMFS中的/usr/local/arm/2.95.3/arm-linux/lib目錄其實(shí)就是在主機(jī)上編譯生成可執(zhí)行文件時(shí)共享庫(kù)的位置,我們要在目標(biāo)系統(tǒng)上建立一樣的目錄,以便在執(zhí)行程序時(shí),動(dòng)態(tài)鏈接系統(tǒng)能夠找到這些共享庫(kù)。因?yàn)槲覀儗⒊绦蛩褂玫墓蚕韼?kù)全部復(fù)制到了ROMFS的/lib目錄下。因此,這里我們使用符號(hào)鏈接指向這個(gè)位置。第四步:復(fù)制MiniGUI的運(yùn)行時(shí)配置文件:mkdirusr/local/etccp/usr/local/arm/2.95.3/arm-linux/etc/MiniGUI.cfgusr/local/etc修改配置文件,指定正確的輸入引擎名稱:第五步:調(diào)用genromfs命令制作ROMFS映像文件:cd/opt/armlinux/ep7312genromfs–drootfs–frootfs.img至此,包含MiniGUI示例程序的ROMFS文件系統(tǒng)映像就建好了。c、運(yùn)行MiniGUI示例程序直接修改原先在/opt/armlinux/ep7312目錄中,修改后的如下圖所示:將編譯好的Linux內(nèi)核復(fù)制到/opt/armlinux/ep7312目錄,然后在XWindow終端仿真程序中運(yùn)行SkyEye:cp/opt/armlinux/linux-2.4.13/vmlinux.skyeyevmlinux(SkyEye)target(SkyEye)load(SkyEye)run內(nèi)核啟動(dòng)之后,進(jìn)入/bin目錄運(yùn)行helloworld程序:至此,MiniGUI移植完成。五、移植過程中遇到的問題及解決方法:SkyEye安裝如果下載的安
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育公司聘用合同范例
- 天津?yàn)I海職業(yè)學(xué)院《基礎(chǔ)化學(xué)實(shí)驗(yàn)Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 施工合同范例 投料試車
- 電站工程合同范例
- 幼兒游泳培訓(xùn)合同范例
- 打板合同范例
- 電子商務(wù)交易合同范例
- 廈門保結(jié)合同范例
- 勞務(wù)公司分包合同范例
- 梅賽德斯租賃合同范例
- 2024版首診負(fù)責(zé)制度課件
- 新西蘭飲食文化英文介紹課件
- 改溝改渠施工方案
- DB11T 2081-2023 道路工程混凝土結(jié)構(gòu)表層滲透防護(hù)技術(shù)規(guī)范
- 貴州省貴陽(yáng)市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 2024年問政山東拆遷協(xié)議書模板
- 我的教育故事
- 山東省青島市2023-2024學(xué)年高一年級(jí)上冊(cè)1月期末選科測(cè)試 生物 含解析
- 電工技術(shù)(第3版)表格式教案教學(xué)詳案設(shè)計(jì)
- 中學(xué)教職工安全知識(shí)測(cè)試練習(xí)試題
- 2024年青島市技師學(xué)院招考聘用48人高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論