MiniGUI在SKyEye0.8.6上的成功移植_第1頁
MiniGUI在SKyEye0.8.6上的成功移植_第2頁
MiniGUI在SKyEye0.8.6上的成功移植_第3頁
MiniGUI在SKyEye0.8.6上的成功移植_第4頁
MiniGUI在SKyEye0.8.6上的成功移植_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

湖南城市學院信息技術與工程管理學院MiniGUI在SkyEye0.8.6上的移植項目小組成員蔣文杰舒伸羅品京付錫林陽棉似曹育斌指導老師:陽俊2011-9-1

目錄一、移植平臺搭建 2二、移植過程中所需資源包匯總 2三、移植環(huán)境搭建詳解 31、編譯安裝SkyEye 32、編譯安裝帶LCD的SkyEye 33、安裝交叉編譯工具 44、配置、編譯和運行內(nèi)核 45、內(nèi)核在SkyEye上的運行 86、根文件系統(tǒng)制作 9四、在SkyEye的EP7312模擬器上運行MiniGUI 191、確認內(nèi)核的配置 202、為SkyEye的EP7312模擬器交叉編譯MiniGUI 243、在SkyEye的EP7312模擬器上運行MiniGUI示例程序 25a、交叉編譯MiniGUI示例程序 25b、準備文件系統(tǒng) 25c、運行MiniGUI示例程序 27五、移植過程中遇到的問題及解決方法 28

一、移植平臺搭建VMwareWorkstationv6.5版本的虛擬機RedHat9.0的Linux操作系統(tǒng)安裝的文章多如牛毛,在這筆者就不再累述。但還是想提醒一下讀者,在選擇安裝路徑時要特別注意,一般它是默認安裝在C:\ProgramFiles下,最好把它安裝在自己工作的目錄下。RedHat9.0安裝的文章網(wǎng)上比比皆是,在這不加累述了,還是那句老話,實在不會的讀者自己上網(wǎng)問google大神。讀者應該注意的地方是在安裝RedHat9.0是要選擇完全安裝,這樣可以避免以后一些不必要的錯誤。二、移植過程中所需資源包匯總/home/source/minigui/libminigui-gpl-1.6.3.tar.gz(開發(fā)庫包)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驅動)armlinux4skyeye-ep7312.tar.gz(LCD和觸摸屏驅動程序)/usr/local/arm/cross-2.95.3.tar.gz(交叉編譯工具)三、移植環(huán)境搭建詳解1、編譯安裝SkyEyeSkyEye是一個用來學習嵌入式開發(fā)的非常有用的工具,下面就SkyEye對EP7312的模擬是如何構建和運行嵌入式Linux系統(tǒng)的加以闡述。首先要建立一個工作目錄/opt/armlinux,至于該目錄下放些什么資源包,筆者在上面已有闡述。為什么筆者要選用SkyEye0.8.6這個版本,而不選用更高的版本呢?這主要是因為該版本支持EP7312上的LCD仿真,功能比較完善。cd/optmkdirarmlinuxcdarmlinuxtarjxvfskyeye0.8.6.tar.gzcdskyeye./configure--target=arm-elf--prefix=/usr/localmakemakeinstall經(jīng)過以上幾步,可執(zhí)行文件skyeye將被安裝到/usr/local/bin目錄下。如果想在任何目錄下直接在命令行下輸入skyeye就想運行SkyEye模擬器的話,就必須在PATH環(huán)境變量中加入/usr/local/bin路徑。修改環(huán)境變量的方法是:cd$homevi.bash_profile在最后一行加/usr/local/binsource.bash_profile//刷新環(huán)境變量(或者注銷一下系統(tǒng))這種修改方法只針對root用戶有用。若想針對所有用戶起作用的話就必須修改/etc/.bashrc,修改方法同上,這樣的話所有用戶都可以在任何目錄下使用SkyEye模擬器了。2、編譯安裝帶LCD的SkyEye前面編譯安裝的skyeye不支持LCD模擬。SkyEye對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,因為busybox1.0.0與cross-2.95.3配套。安裝方法如下:cd/usr/localmakearmcdarmtarzxvfcross-2.95.3.tar.gz解壓后將在/usr/local/arm目錄下面生成一個名為2.95.3的目錄,所包含的ARMLinux交叉編譯器為2.95.3/bin目錄下的arm-linux-gcc。因此,需要在PATH環(huán)境變量中加上/usr/local/arm/2.95.3/bin一項,使得arm-linux-gcc能夠在命令行下直接執(zhí)行(修改方法同上修改SkyEye的環(huán)境變量一樣)。4、配置、編譯和運行內(nèi)核使用的內(nèi)核源代碼包為linux-2.4.13-patched-for-EP7312.tar.gz,該版本是針對ARMEP7312的Linux內(nèi)核版本。在/opt/armlinux目錄下解壓縮該文件,將生成一個linux-2.4.13目錄:tarzxvflinux-2.4.13-patched-for-EP7312.tar.gz首先需要進行內(nèi)核配置,在命令行下輸入“makemenuconfig”,進入內(nèi)核的配置界面:cdlinux-2makemenuconfigⅠ、進入內(nèi)核的首界面:Ⅱ、然后進入“SystemType”子菜單,選擇合適的處理器類型,如下圖所示:Ⅲ、進入“CLPS711X/EP721XImplementations”菜單,選擇“EDB7312”,如下圖所示:Ⅳ、進入“Blockdevices”子菜單,選擇“RAMdisksupport”和“IntialRAMdisk(initrd)support”,如下圖所示:Ⅴ、因為需要使用ROMFS文件系統(tǒng)類型,所以進入“Filesystems”子菜單,選擇“ROMfilesystemsupport”,如下圖所示:Ⅵ、配置完內(nèi)核之后保存配置并退出配置界面,運行如下命令編譯內(nèi)核映像。makedepmakezImage生成的壓縮格式映像為arch/arm/boot/compressed/vmlinux文件,未壓縮的映像為內(nèi)核根目錄下的vmlinux文件。5、內(nèi)核在SkyEye上的運行經(jīng)過了以上幾個步驟,現(xiàn)在就可以在SkyEye上運行該內(nèi)核了。首先在/opt/armlinux目錄下建立一個用于保存運行時程序和數(shù)據(jù)的工作目錄ep7312:cd/opt/armlinuxmkdirep7312cdep7312然后把內(nèi)核文件拷貝到該目錄下:cp/opt/armlinux/linux-2.4.13/vmlinux.–f在運行SkyEye之前還需要一個針對EP7312的SkyEye配置文件skyeye.conf。在/opt/armlinux/ep7312下面新建一個skyeye.conf文件,添加如下的內(nèi)容:保存。skyeye.conf文件中各配置選項的含義如下:cpu:基本CPU核配置選項,arm720t表示SkyEye所模擬的處理器類型是ARM720T。mach:具體的開發(fā)板(包括CPU擴展)配置選項,ep7312表示特定處理器是EP7312。mem_bank:內(nèi)核配置選項。然后就可以運行“skyeyevmlinux”命令將內(nèi)核裝載到skyeye模擬器上運行。首先出現(xiàn)的界面如下然后在(skyeye)命令提示下依次鍵入:targetsimloadrun可以看到vmlinux內(nèi)核已經(jīng)成功運行了,但在根文件系統(tǒng)的掛載時失敗。這是因為還沒有制作根文件系統(tǒng),所以會顯示如下的信息:Kernelpanic:VFS:Unabletomountrootfsonlf:00但出現(xiàn)了上面的提示時,這說明內(nèi)核沒有問題,下面就是準備根文件系統(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”命令對BusyBox進行配置,見下圖:進入“BuildOptions”子菜單,按下圖進行配置。上述配置將BusyBox編譯為一個靜態(tài)可執(zhí)行程序(不需要共享庫),這樣運行比較方便。選擇使用交叉編譯器,把編譯器的前綴設置為“arm-linux-”,相當于指定編譯器為arm-linux-gcc。然后就是各種工具程序的選擇和配置。這些選項基本上可以保持不變,不過為了減少busybox程序的體積,可以去掉一些沒有太大用處或者目前用不著的工具(注意需要取消網(wǎng)絡工具中的route工具)。配置完之后運行下面的命令來編譯BusyBox:makedepmake如果編譯正確無誤,將在當前目錄下生成一個名為busybox的可執(zhí)行文件。使用file命令查看下,確定它是ARM版本的程序。如下圖所示:接著使用下面的命令就可以將BusyBox的工具程序安裝到指定的目標根文件系統(tǒng)目錄下:makePREFIX=/opt/armlinux/ep7312/rootfsinstall進入目標根文件系統(tǒng)目錄看一下,應該已經(jīng)有了bin、sbin、usr/bin和usr/sbin等系統(tǒng)目錄,目錄下有各種工具程序。BusyBox的默認安裝目錄是當前目錄下的_install目錄,也可以先把工具程序安裝到該目錄,然后拷貝到目標根文件系統(tǒng)中。接下來就要在目標根文件系統(tǒng)中創(chuàng)建常用的一些設備文件節(jié)點。首先創(chuàng)建/dev目錄,然后在該目錄下使用mknod命令創(chuàng)建如下的設備:創(chuàng)建完設備節(jié)點之后我們需要在/etc目錄下創(chuàng)建一些系統(tǒng)運行所需的配置文件,包括inittab和fstab等。因為系統(tǒng)init程序使用的是BusyBox的init,所以就可以直接使用BusyBox提供的示例inittab文件即可。把該文件拷貝到目標根文件系統(tǒng)的etc目錄下:cp/opt/armlinux/busybox-1.00/examples/inittab/opt/armlinux/ep7312/rootfs/etc從inittab文件可以看到,BusyBox的init程序自動啟動/etc/init.d目錄下的名為rcS的腳本。因此,就需要在目標根文件系統(tǒng)的etc目錄下創(chuàng)建一個init.d目錄:cd/opt/armlinux/ep7312/rootfs/etcmkdirinit.dcdinit.d然后在init.d目錄下創(chuàng)建一個系統(tǒng)啟動腳本rcS,并使用chmod+x命令使其具有可執(zhí)行屬性。內(nèi)容如下:vircS輸入上圖的內(nèi)容退出保存chmod+xrcS//修改rcS屬性使其變成可執(zhí)行該腳本所做的工作很簡單,就是掛載proc文件系統(tǒng),并顯示/etc/motd文件中的系統(tǒng)歡迎信息。所以就還要在目標根文件系統(tǒng)的etc目錄下創(chuàng)建一個motd文件,其內(nèi)容可隨意,筆者的內(nèi)容如下:在上面的基礎上,還需要在目標根文件系統(tǒng)的etc目錄下創(chuàng)建一個文件系統(tǒng)的配置文件fstab,其內(nèi)容如下:到目前為止,一個可以運行的根文件系統(tǒng)的內(nèi)容就準備好了,我們再在目標根文件系統(tǒng)目錄下加上lib和var等一些有用的系統(tǒng)目錄:cd/o pt/armlinux/ep7312/rootfsmkdirlibvarln–s/var/tmptmp我們得到的目標根文件系統(tǒng)的目錄結構如下:接下來使用genromfs工具制作ROMFS類型的目標文件系統(tǒng)映像:cd/opt/armlinux/ep7312/genromfs–drootfs–frootfs.img有了目標根文件系統(tǒng)映像之后,我們需要修改skyeye.conf文件中的相應選項使SkyEye裝載指定的映像文件。修改后的skyeye.conf內(nèi)容如下:現(xiàn)在,讓我們在/opt/armlinux/ep7312目錄下再次運行SkyEye:可以看到根文件系統(tǒng)已經(jīng)被正確地掛載,init程序也已經(jīng)執(zhí)行,rcS腳本顯示的歡迎信息也顯示在屏幕上。我們按照提示按一下回車鍵進入BusyBox的Shell環(huán)境:在Shell提示符下輸入ls–l命令查看一下目標機上根文件系統(tǒng)的結構:再到/bin目錄和/sbin目錄下看一下:可以看到/bin和/sbin目錄下的程序都是指向busybox程序的符號鏈接,/usr/bin和/usr/sbin下的程序也是如此。所有這些程序的功能都包含在一個700KB的busybox程序中,真是無愧“瑞士軍刀”的稱號。到目前為止我們已經(jīng)構建了一個可以在SkyEyeEP7312模擬器上正確運行的ARMLinux內(nèi)核和ROMFS根文件系統(tǒng)。 四、在SkyEye的EP7312模擬器上運行MiniGUISkyEye項目組于2004年針對EP7312模擬器完成了LCD和觸摸屏的仿真,下面所闡述的內(nèi)容是筆者根據(jù)自身的實踐闡述如何在嵌入式Linux上運行MiniGUI。之前所做的所有工作都是為移植MiniGUI搭建好移植的環(huán)境。有了針對SkyEye的EP7312模擬器編譯的內(nèi)核,且已準備好了基本的文件系統(tǒng)。筆者將所需的源代碼、工具等的安裝布局如下:armlinux內(nèi)核:/opt/armlinux/linux-2.4.13armlinux交叉編譯工具:/usr/local/arm/2.95.31、確認內(nèi)核的配置首先,要將針對SkyEyeEP7312模擬器的LCD驅動程序和觸摸屏驅動程序添加到默認的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驅動程序和觸摸屏驅動程序源文件復制到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驅動的基礎上修改而成的。實際的EP7312板子支持12位色的顯示模式,但模擬器中的實現(xiàn)僅支持8位色。接下來,就是修改Linux內(nèi)核的配置文件,將觸摸屏驅動程序添加到Linux內(nèi)核的配置選項中。修改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上述修改將針對SkyEyeEP7312的觸摸屏驅動程序作為配置選項添加到了Linux內(nèi)核中,這樣,就可以通過makemenuconfig命令在配置Linux內(nèi)核時選擇是否編譯該觸摸屏驅動程序。在完成上述修改后,就可以在linux-2.4.13/目錄下運行makemenuconfig命令配置Linux內(nèi)核了。首先,保持其他配置不變,在“SystemType”的“CLPS711XImplementations”選中“EDB7312”:在“Characterdevices”選項中,確保選中“Virtualterminal”以及剛才添加的針對SkyEyeEP7312模擬器的觸摸屏驅動程序(“TouchscrendriversupportforSkyEyeEP7312simulation”)選項:在“Consoledrivers”選項組中,取消“VGAtexconsole”選項,并在“Frame-bufferSupport”中,按下圖所示那樣選擇各選項:完成上述配置后,保留其他配置不變,即可保存并退出makemenuconfig命令。檢查linux-2.4.13/目錄下的.config文件,可以看到如下選項:接下來就可以針對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這三個包。我們可以直接使用源碼包中包含的配置腳本來為SkyEyeEP7312模擬器配置并交叉編譯源碼包。首先來看下這個配置腳本的內(nèi)容。進入源碼包目錄:cd/home/source/minigui/libminigui-gpl-1.6.3打開build/目錄下的buildlib-linux-ep7312-skyeye文件。該文件的內(nèi)容如下:在MiniGUi源代碼目錄下,可直接運行該腳本配置MiniGUI,然后運行make和makeinstall命令:cd/home/source/minigui/libminigui-gpl-1.6.3./build/bulidlib-linux-ep7312-skyeyemakecleanmakemakeinstall在成功運行上述命令之后,我們可在通過--prefix選項指定的目錄下看到MiniGUI的頭文件以及交叉編譯后的函數(shù)庫文件。至此,就編譯好了針對SkyEyeEP7312模擬器的MiniGUI,并將配置文件、頭文件和函數(shù)庫安裝到了指定的位置。將MiniGUI頭文件和函數(shù)庫安裝到上述這個位置主要的好處是,在進行交叉編譯時,我們無須顯示指定MiniGUI相關頭文件和庫文件的搜索路徑。接下來,就是編譯并運行MiniGUI應用程序。3、在SkyEye的EP7312模擬器上運行MiniGUI示例程序a、交叉編譯MiniGUI示例程序單獨編譯MiniGUI應用程序的辦法是:arm-linux-gcc–Wall–O2–ohelloworldhelloworld.c–lminigui–lpthread如果想使用mg-samples-gpl-1.6.3包,還可以直接使用預先準備好的configure腳本生成可用于交叉編譯的makefile文件:cd/home/source/minigui/mg-samples-gpl-1.6.3./build-linux-ep7312-skyeyemakecleanmake運行上述命令后,將交叉編譯生成mg-samples-gpl包中針對SkyEyeEP7312模擬器的所有示例程序。把交叉編譯好的可執(zhí)行文件拷貝到根文件系統(tǒng)的/bin目錄下。b、準備文件系統(tǒng)一般而言,在嵌入式系統(tǒng)開發(fā)過程中,我們編譯完MiniGUI和應用程序之后,需要把MiniGUI庫、資源和應用程序拷貝到目標系統(tǒng)準備的文件系統(tǒng)目錄中,然后使用相關的工具生成目標映像,在下載到目標板上運行。在某些目標系統(tǒng)上,也可以使用某些下載工具通過串口或以太網(wǎng)口單獨下載文件到目標板中。針對SkyEye的EP7312模擬器,我們使用ROMFS技術,將根文件系統(tǒng)放在ROMFS中由內(nèi)核在引導結束后掛載該文件系統(tǒng)。為此,我們需在skyeye.conf文件中指定好ROMFS的映像文件名稱及合適的大小。我們可以在剛開始我們做的那個根文件系統(tǒng)的基礎上制作包括MiniGUI函數(shù)庫、配置文件、資源文件以及示例程序在內(nèi)的ROMFS映像文件。制作新ROMFS映像文件的步驟如下:第一步:將minigui-gpl-res-1.6包中的資源直接安裝到目標文件系統(tǒng)中。進入minigui-gpl-res-1.6目錄并編輯config.linux文件,將其中的prefix變量修改為:然后執(zhí)行makeinstall即可將MiniGUI所使用的資源文件復制到/opt/armlinux/ep7312/rootfs/usr/local/lib/minigui目錄下。刪除不需要的位圖、圖標等資源:cdrootfs/usr/local/lib/minigui/resrmbmp/*flat,bmp–frmbmp/*phone.bmp–frmicon/*flat.ico–frmimetab/-rf第二步:筆者的MiniGUI應用程序是使用動態(tài)鏈接編譯的,因此,需要將交叉編譯環(huán)境中的C函數(shù)庫、libthread函數(shù)庫、MiniGUI函數(shù)庫復制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等文件復制到ROMFS文件系統(tǒng)的/lib目錄。注意,我們最后調用arm-linux-strip命令剝離了共享庫中的符號信息。第三步:在ROMFS中建立下面的符號鏈接:mkdir–pusr/local/arm/2.95.3/arm-linux/ln–s/libusr/local/arm/2.95.3/arm-linux/lib上面的命令情確保動態(tài)鏈接系統(tǒng)能夠找到正確的動態(tài)鏈接庫。ROMFS中的/usr/local/arm/2.95.3/arm-linux/lib目錄其實就是在主機上編譯生成可執(zhí)行文件時共享庫的位置,我們要在目標系統(tǒng)上建立一樣的目錄,以便在執(zhí)行程序時,動態(tài)鏈接系統(tǒng)能夠找到這些共享庫。因為我們將程序所使用的共享庫全部復制到了ROMFS的/lib目錄下。因此,這里我們使用符號鏈接指向這個位置。第四步:復制MiniGUI的運行時配置文件:mkdirusr/local/etccp/usr/local/arm/2.95.3/arm-linux/etc/MiniGUI.cfgusr/local/etc修改配置文件,指定正確的輸入引擎名稱:第五步:調用genromfs命令制作ROMFS映像文件:cd/opt/armlinux/ep7312genromfs–drootfs–frootfs.img至此,包含MiniGUI示例程序的ROMFS文件系統(tǒng)映像就建好了。c、運行MiniGUI示例程序直接修改原先在/opt/armlinux/ep7312目錄中,修改后的如下圖所示:將編譯好的Linux內(nèi)核復制到/opt/armlinux/ep7312目錄,然后在XWindow終端仿真程序中運行SkyEye:cp/opt/armlinux/linux-2.4.13/vmlinux.skyeyevmlinux(SkyEye)target(SkyEye)load(SkyEye)run內(nèi)核啟動之后,進入/bin目錄運行helloworld程序:至此,MiniGUI移植完成。五、移植過程中遇到的問題及解決方法:SkyEye安裝如果下載的安

溫馨提示

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

最新文檔

評論

0/150

提交評論