版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
構(gòu)建嵌入式開發(fā)環(huán)境4主機(jī)與目標(biāo)板結(jié)合的交叉開發(fā)模式建立主機(jī)開發(fā)的軟件環(huán)境建立交叉編譯工具鏈Makefile介紹第4章構(gòu)建嵌入式開發(fā)環(huán)境4.1交叉開發(fā)模式
對(duì)于嵌入式開發(fā),最初的嵌入式設(shè)備是一個(gè)空白的系統(tǒng),需要通過(guò)主機(jī)為它構(gòu)建基本的軟件系統(tǒng),并燒寫到設(shè)備中。另外,嵌入式設(shè)備的資源并不足以用來(lái)開發(fā)軟件,所以需要用到交叉開發(fā)模式:在主機(jī)上編寫、編輯、編譯軟件和應(yīng)用程序,然后下載到目標(biāo)板上,在目標(biāo)板上運(yùn)行、驗(yàn)證程序。主機(jī)又稱宿主機(jī),一般為PC;目標(biāo)板指正在開發(fā)的嵌入式設(shè)備或者ARM開發(fā)板。圖4.1PC系統(tǒng)和嵌入式Linux系統(tǒng)結(jié)構(gòu)對(duì)比第4章構(gòu)建嵌入式開發(fā)環(huán)境
嵌入式系統(tǒng)軟件主要包括:Bootloader、Linux內(nèi)核和根文件系統(tǒng)(包含各種應(yīng)用程序)。對(duì)于嵌入式開發(fā),主要包括以下幾個(gè)方面:(1)在主機(jī)上編譯Bootloader,燒入目標(biāo)板。(2)在主機(jī)上編譯Linux內(nèi)核,通過(guò)Bootloader燒入目標(biāo)板或直接啟動(dòng)。(3)在主機(jī)上編譯各類應(yīng)用程序,目標(biāo)板啟動(dòng)內(nèi)核后通過(guò)NFS運(yùn)行它們,經(jīng)過(guò)驗(yàn)證后燒入目標(biāo)板。
在交叉開發(fā)模式中,主機(jī)與目標(biāo)板通常有4種連接方式:JTAG、串口、USB、網(wǎng)絡(luò)。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.2建立主機(jī)開發(fā)的軟件環(huán)境對(duì)于嵌入式開發(fā),主要的就是在主機(jī)上開發(fā)工作,然后放到目標(biāo)板上運(yùn)行驗(yàn)證。通過(guò)主機(jī)上的軟件可以編譯內(nèi)核和開發(fā)嵌入式系統(tǒng)中運(yùn)行的軟件。安裝軟件的過(guò)程主要包括:安裝宿主機(jī)上的Linux操作系統(tǒng);配置與安裝宿主機(jī)操作系統(tǒng)下的串口通信工具M(jìn)inicom、TFTP服務(wù)、NFS(NetworkFileSystem,網(wǎng)絡(luò)文件系統(tǒng)),建立交叉編譯工具鏈。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.2.1主機(jī)Linux操作系統(tǒng)的安裝1.在Windows上安裝虛擬機(jī)VMware2.
Fedora的安裝Fedora(第七版以前為FedoraCore)是一款基于Linux的操作系統(tǒng),也是一組維持計(jì)算機(jī)正常運(yùn)行的軟件集合。Fedora由FedoraProject社區(qū)開發(fā)、紅帽公司贊助,目標(biāo)是創(chuàng)建一套新穎、多功能并且自由和開源的操作系統(tǒng)。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.2.2Minicom的安裝配置 Minicom是Linux操作系統(tǒng)或者基于Linux操作系統(tǒng)下的一款串口通信軟件,在嵌入式開發(fā)領(lǐng)域應(yīng)用十分廣泛。Minicom的配置過(guò)程如下:(1)先檢查宿主機(jī)的VMware上是否已經(jīng)添加了串口(serialport)設(shè)備。(2)再次啟動(dòng)Linux之后,注意右下角有一個(gè)圓圓的圖標(biāo),把鼠標(biāo)放在上面會(huì)顯示串口信息。(3)對(duì)Minicom配置主要是配置串行口、波特率和是否使用流控制技術(shù)。(4)借助一些命令來(lái)使用Minicom。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.2.3TFTP服務(wù)的安裝配置 TFTP是基于UDP協(xié)議實(shí)現(xiàn)的,用來(lái)下載遠(yuǎn)程文件的最簡(jiǎn)單網(wǎng)絡(luò)協(xié)議。TFTP分為服務(wù)器程序和客戶端程序,在主機(jī)上通常同時(shí)配置TFTP服務(wù)器端和客戶端。
嵌入式Linux的TFTP開發(fā)環(huán)境包括兩個(gè)方面:一是Linux服務(wù)器端的tftp-server支持,二是嵌入式目標(biāo)系統(tǒng)的tftp-client支持。因?yàn)閁-Boot本身內(nèi)置支持tftp-client,所以嵌入式目標(biāo)系統(tǒng)端就不用配置了。第4章構(gòu)建嵌入式開發(fā)環(huán)境TFTP服務(wù)的安裝配置過(guò)程如下:(1)先安裝xinetd服務(wù),命令如下: yuminstallxinetd(2)安裝xinetd完成后,安裝TFTP的客戶端和服務(wù)器端,命令如下: yuminstalltftp yuminstalltftp-server(3)對(duì)TFTP服務(wù)器進(jìn)行配置。把/etc/xinetd.d/tftp.rpmnew復(fù)制并改名為/etc/xinetd.d/tftp,命令如下: cp /etc/xinetd.d/tftp.rpmnew /etc/xinetd.d/tftp第4章構(gòu)建嵌入式開發(fā)環(huán)境(4)打開?/etc/xinetd.d/tftp文件,并修改其中的某些內(nèi)容。①?disable=yes改為disable=no;②修改user的值,不使用root用戶;③修改server_args的行為,將server_args=-s/var/lib/tftpboot改為server_args?=?-s/tftpboot/-c;④修改?/etc/sysconfig/selinux文件:SELINUX=disabled(系統(tǒng)默認(rèn)是enforcing,改成disabled);chmod777/tftpboot修改/tftpboot文件夾的權(quán)限。至此,TFTP服務(wù)已經(jīng)配置完成。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.2.4NFS的安裝配置 NFS(NetworkFileSystem,網(wǎng)絡(luò)文件系統(tǒng))類似于Windows中的文件共享服務(wù)。它的最大特點(diǎn)是可以讓網(wǎng)絡(luò)上不同的機(jī)器、不同的操作系統(tǒng)之間彼此共享文件,所以它可以看作一個(gè)簡(jiǎn)單的文件服務(wù)器。第4章構(gòu)建嵌入式開發(fā)環(huán)境
在NFS服務(wù)中,主機(jī)是被掛載(mount)端,為遠(yuǎn)端客戶機(jī)提供可以訪問(wèn)的共享文件。主機(jī)需要配置兩方面內(nèi)容:即設(shè)置NFS服務(wù)和允許“指定的NFS用戶”使用。其具體步驟如下:設(shè)置NFS服務(wù)。指定NFS服務(wù)的用戶。在客戶機(jī)端掛接共享目錄。
①進(jìn)入Minicom終端界面。[root@localhostroot]#
minicom
②設(shè)置開發(fā)板的IP地址。[root@localhostroot]#
ifconfigetho6
③掛載共享目錄。[root@localhostroot]#mount-osoft,timeo=100,rsize=1024:/linux_nfs/mnt第4章構(gòu)建嵌入式開發(fā)環(huán)境4.3建立交叉編譯工具鏈
源文件需要經(jīng)過(guò)編譯才能生成可執(zhí)行文件。在Windows下進(jìn)行開發(fā)時(shí),集成開發(fā)環(huán)境已經(jīng)將各種編譯工具的使用封裝好了,只需要點(diǎn)幾個(gè)按鈕即可完成編譯。Linux下也有很優(yōu)秀的集成開發(fā)工具,比如gcc、ld、objcopy、objdump等,它們編譯出來(lái)的程序在x86平臺(tái)上運(yùn)行。要編譯出能在ARM平臺(tái)上運(yùn)行的程序,必須使用交叉編譯工具鏈arm-linux-gcc、arm-linux-ld等。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.3.1arm-linux-gcc選項(xiàng)通常,我們所說(shuō)的“編譯”涉及到四個(gè)過(guò)程,分別是:預(yù)處理。將程序中諸如“#include”、宏定義命令“#define”、條件編譯命令“#if”、“#ifdef”等展開,輸出到一個(gè)后綴為.i的文件里。所用到的工具為arm-linux-cpp。編譯。把上述的.i的文件翻譯成成匯編代碼,所用到的工具為cc1。第4章構(gòu)建嵌入式開發(fā)環(huán)境(3)匯編。匯編就是將第二步輸出的匯編代碼翻譯成符合一定格式的機(jī)器代碼。文件一般后綴為.obj,所用到的工具為arm-linux-as。(4)連接。連接就是將上一步生成的OBJ文件和系統(tǒng)庫(kù)的OBJ文件、庫(kù)文件連接起來(lái),最終生成可以在特定平臺(tái)運(yùn)行的可執(zhí)行文件,用到的工具是arm-linux-ld。第4章構(gòu)建嵌入式開發(fā)環(huán)境例子:以下是一個(gè)打印“HelloWorld!”字符串的程序: #include<stdio.h> intmain(intargc,char*argv[?]) { printf("HelloWorld!\n"); return0; }第4章構(gòu)建嵌入式開發(fā)環(huán)境$arm-linux-gcc-ohellohello.ccc1hello.c-o/tmp/cctETob7.sas-o/tmp/ccvv2KbL.o/tmp/cctETob7.scollect2-ohellocrt1.ocrti.ocrtbegin.o/tmp/ccvv2KbL.ocrtend.ocrtn.old被collect2調(diào)用來(lái)連接程序cpp-ohello.ihello.ccc1hello.i-o/tmp/cctETob7.s編譯過(guò)程示例:第4章構(gòu)建嵌入式開發(fā)環(huán)境選項(xiàng):1.總體選項(xiàng)(OverallOption)
-c:預(yù)處理、編譯和匯編源文件,但是不作連接,編譯器根據(jù)源文件生成OBJ文件。-S:編譯后即停止,不進(jìn)行匯編。
?-E:預(yù)處理后即停止,不進(jìn)行編譯。-ofile:指定輸出文件為file。?-v:顯示制作GCC工具自身時(shí)的配置命令;同時(shí)顯示編譯器驅(qū)動(dòng)程序、預(yù)處理器、編譯器的版本號(hào)。第4章構(gòu)建嵌入式開發(fā)環(huán)境2.警告選項(xiàng)(WarningOption)-Wall:該選項(xiàng)基本打開了所有需要注意的警告信息,比如沒(méi)有指定類型的聲明、在聲明之前就使用的函數(shù)、局部變量除了聲明就沒(méi)再使用等。
警告雖然對(duì)程序沒(méi)有壞的影響,但是有些警告需要加以關(guān)注,比如類型匹配的警告等。第4章構(gòu)建嵌入式開發(fā)環(huán)境3.調(diào)試選項(xiàng)(DebuggingOption)-g:以操作系統(tǒng)的本地格式(stabs、COFF、XCOFF或DWARF)產(chǎn)生調(diào)試信息,GDB能夠使用這些調(diào)試信息。在大多數(shù)使用stabs格式的系統(tǒng)上,“-g”選項(xiàng)加入只有GDB才使用的額外調(diào)試信息??梢允褂孟旅娴倪x項(xiàng)來(lái)生成額外的信息:-gstabs+、-gstabs、-gxcoff+、-gxcoff、-gdwarf+?或?-gdwarf,具體用法請(qǐng)讀者參考GCC手冊(cè)。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.優(yōu)化選項(xiàng)(OptimizationOption)(1)
-O或?-O1:對(duì)于大函數(shù),優(yōu)化編譯的過(guò)程將占用較多的時(shí)間和相當(dāng)大的內(nèi)存。(2)?-O2:多優(yōu)化一些。這個(gè)選項(xiàng)既增加了編譯時(shí)間,也提高了生成代碼的運(yùn)行效果。(3)?-O3:優(yōu)化得更多。(4)
-O0:不優(yōu)化。第4章構(gòu)建嵌入式開發(fā)環(huán)境5.目錄選項(xiàng)(DirectoryOption)(1)在頭文件的搜索路徑列表中添加dir目錄。
如果以“#include<>”包含文件,則只在標(biāo)準(zhǔn)庫(kù)目錄開始搜索(包括使用?-Idir選項(xiàng)定義的目錄);如果以“#include"file"”包含文件,則先從用戶的工作目錄開始搜索,再搜索標(biāo)準(zhǔn)庫(kù)目錄。第4章構(gòu)建嵌入式開發(fā)環(huán)境5.目錄選項(xiàng)(DirectoryOption)(2)-I-。任何在“-I-”前面用“-I”選項(xiàng)指定的搜索路徑只適用于“-I”這種情況;它們不能用來(lái)搜索“#include<>”包含的頭文件。(3)
-Ldir。在“-l”選項(xiàng)的搜索路徑列表中添加dir目錄。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.3.2arm-linux-ld選項(xiàng)arm-linux-ld用于將多個(gè)目標(biāo)文件、庫(kù)文件連接成可執(zhí)行文件。直接指定代碼段、數(shù)據(jù)段、bss段的起始地址
直接指定代碼段、數(shù)據(jù)段、bss段的起始地址的格式如下:
-Ttext startaddr
-Tdata startaddr
-Tbss startaddr
其中,“startaddr”分別表示代碼段、數(shù)據(jù)段和bss段的起始地址,它是一
個(gè)十六進(jìn)制的數(shù)。第4章構(gòu)建嵌入式開發(fā)環(huán)境2.使用連接腳本設(shè)置地址連接腳本timer.lds的含義:①第2行表示設(shè)置“當(dāng)前運(yùn)行地址”為0x30000000。②第3行定義了一個(gè)名為“.text”的段,它的內(nèi)容為“*(.text)”,表示所有輸入文件的代碼段。這些代碼段被集合在一起,起始運(yùn)行地址為0x30000000。③第4行定義了一個(gè)名為“.rodata”的段,在輸出文件timer_elf中,它緊挨著“.text”段存放。⑤第5、6行的含義與第4行類似。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.3.3arm-linux-objcopy選項(xiàng)常用arm-linux-objcopy來(lái)將ELF格式的可執(zhí)行文件轉(zhuǎn)換為二進(jìn)制文件。 arm-linux-objcopy [-Fbfdname|--target=bfdname] [-Ibfdname|--input-target=bfdname] [-Obfdname|--output-target=bfdname] [-S|--strip-all][-g|--strip-debug] [-Ksymbolname|--keep-symbol=symbolname] [-Nsymbolname|--strip-symbol=symbolname] [-Lsymbolname|--localize-symbol=symbolname] [-Wsymbolname|--weaken-symbol=symbolname] [-x|--discard-all][-X|--discard-locals] [-bbyte|--byte=byte]第4章構(gòu)建嵌入式開發(fā)環(huán)境[-iinterleave|--interleave=interleave][-Rsectionname|--remove-section=sectionname][-p|--preserve-dates][--debugging][--gap-fill=val][--pad-to=address][--set-start=val][--adjust-start=incr][--change-address=incr][--change-section-address=section{=,+,-}val][--change-warnings][--no-change-warnings][--set-section-flags=section=flags][--add-section=sectionname=filename][--change-leadingchar][--remove-leading-char][--weaken][-v|--verbose][-V|--version][--help]input-file[outfile第4章構(gòu)建嵌入式開發(fā)環(huán)境常用的一些選項(xiàng):
input-file、outfile:參數(shù)input-file和outfile分別表示輸入目標(biāo)文件(源目標(biāo)文件)和輸出目標(biāo)文件(目的目標(biāo)文件)。(2)?-Ibfdname或?--input-target=bfdname:用來(lái)指明源文件的格式,bfdname是BFD庫(kù)中描述的標(biāo)準(zhǔn)格式名。(3)?-Obfdname或?--output-target=bfdname:使用指定的格式來(lái)輸出文件,bfdname是BFD庫(kù)中描述的標(biāo)準(zhǔn)格式名。第4章構(gòu)建嵌入式開發(fā)環(huán)境常用的一些選項(xiàng):(4)?-Fbfdname或?--target=bfdname:同時(shí)指明源文件、目的文件的格式。(5)?-Rsectionname或?--remove-section?=?sectionname:從輸出文件中刪掉所有名為sectionname的段。這個(gè)選項(xiàng)可以多次使用。(6)?-S或?--strip-all:不從源文件中拷貝重定位信息和符號(hào)信息到目標(biāo)文件中。(7)?-g或?--strip-debug:不從源文件中拷貝調(diào)試符號(hào)到目標(biāo)文件中。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.3.4arm-linux-objdump選項(xiàng)arm-linux-objdump用于顯示二進(jìn)制文件信息,本書中常用來(lái)查看反匯編代碼。 arm-linux-objdump [-a][-bbfdname|--target=bfdname] [-C][--debugging] [-d][-D] [--disassemble-zeroes] [--file-headers|-f] [-EB|-EL|--endian={big|little}][-f] [-h][-i|--info] [-jsection|--section=name]
第4章構(gòu)建嵌入式開發(fā)環(huán)境[-l][-mmachine][--prefix-addresses][-r][-R][-s|--full-contents][-S|--source][--[no-]show-raw-insn][--stabs][-t][-T][-x][--start-address=address][--stop-address=address][--adjust-vma=offset][--version][--help]objfile...第4章構(gòu)建嵌入式開發(fā)環(huán)境常用的一些選項(xiàng):?-bbfdname或?--target=bfdname:指定目標(biāo)碼格式。這不是必需的,arm-linux-objdump能自動(dòng)識(shí)別許多格式。(2)??--disassemble或?-d:反匯編可執(zhí)行段(executablesections)。(3)?--disassemble-all或?-D:與?-d類似,反匯編所有段。(4)?-EB或?-EL或?--endian={big|little}:指定字節(jié)序。第4章構(gòu)建嵌入式開發(fā)環(huán)境常用的一些選項(xiàng):(5)?--file-headers或?-f:顯示文件的整體頭部摘要信息。(6)?--section-headers、--headers或?-h:顯示目標(biāo)文件各個(gè)段的頭部摘要信息。(7)?--info或?-i:顯示支持的目標(biāo)文件格式和CPU架構(gòu),它們?cè)凇?b”、“-m”選項(xiàng)中用到。(8)?--section=name或?-jname:僅顯示指定section的信息。(9)?--architecture=machine或?-mmachine:指定反匯編目標(biāo)文件時(shí)使用的架構(gòu)。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.4Makefile介紹
一個(gè)工程中往往包括很多的源文件,如果一個(gè)一個(gè)進(jìn)行編譯,往往是很繁瑣的,這時(shí)候makefile就起到了作用。makefile定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至進(jìn)行更復(fù)雜的功能操作。因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。makefile帶來(lái)的好處就是“自動(dòng)化編譯”。一旦寫好了makefile文件,只需要一個(gè)make命令,整個(gè)工程便會(huì)完全自動(dòng)進(jìn)行編譯,極大地提高了軟件開發(fā)的效率。第4章構(gòu)建嵌入式開發(fā)環(huán)境
所要完成的Makefile文件描述了整個(gè)工程的編譯、連接等規(guī)則,其中包括:工程中的哪些源文件需要編譯以及如何編譯,需要?jiǎng)?chuàng)建哪些庫(kù)文件以及如何創(chuàng)建這些庫(kù)文件,如何最后產(chǎn)生想要的可執(zhí)行文件。盡管看起來(lái)可能是很復(fù)雜的事情,但是為工程編寫Makefile的好處是能夠使用一行命令來(lái)完成“自動(dòng)化編譯”。一旦提供一個(gè)(通常對(duì)于一個(gè)工程來(lái)說(shuō)會(huì)是多個(gè))正確的Makefile,編譯整個(gè)工程所要做的唯一的一件事就是在shell提示符下輸入make命令。整個(gè)工程完全自動(dòng)編譯,極大地提高了效率。第4章構(gòu)建嵌入式開發(fā)環(huán)境例如,一個(gè)makefile文件編譯一個(gè)工程,其中:工程里包含3個(gè)頭文件和8個(gè)C文件。 #sampleMakefile. edit:main.okbd.ocommand.odisplay.o\ insert.osearch.ofiles.outils.o cc-oeditmain.okbd.ocommand.odisplay.o\ insert.osearch.ofiles.outils.o main.o:main.cdefs.h cc-cmain.c kbd.o:kbd.cdefs.hcommand.h cc-ckbd.c command.o:command.cdefs.hcommand.h cc-ccommand.c第4章構(gòu)建嵌入式開發(fā)環(huán)境display.o:display.cdefs.hbuffer.h cc-cdisplay.cinsert.o:insert.cdefs.hbuffer.h cc-cinsert.csearch.o:search.cdefs.hbuffer.h cc-csearch.cfiles.o:files.cdefs.hbuffer.hcommand.h cc-cfiles.cutils.o:utils.cdefs.h cc-cutils.cclean: rmeditmain.okbd.ocommand.odisplay.o\ insert.osearch.ofiles.outils.o第4章構(gòu)建嵌入式開發(fā)環(huán)境4.4.1Makefile規(guī)則一個(gè)簡(jiǎn)單的Makefile文件包含一系列的“規(guī)則”,其樣式如下:
目標(biāo)(target)…:依賴(prerequisites)… <tab>命令(command)第4章構(gòu)建嵌入式開發(fā)環(huán)境4.4.2Makefile文件里的賦值方法Makefile文件里,變量定義的語(yǔ)法形式如下: immediate=deferred immediate?=deferred immediate:=immediate immediate+=deferredorimmediate defineimmediate deferred endef第4章構(gòu)建嵌入式開發(fā)環(huán)境
在GNUmake中對(duì)變量賦值有兩種方式:延時(shí)變量和立即變量。區(qū)別在于它們的定義方式和擴(kuò)展時(shí)的方式不同,前者在這個(gè)變量使用時(shí)才擴(kuò)展開,后者在定義時(shí)它的值就已經(jīng)確定了。第4章構(gòu)建嵌入式開發(fā)環(huán)境4.4.3Makefile常用函數(shù)1.字符串替換和分析函數(shù)
$(substfrom,to,text):在文本“text”中使用“to”替換每一處“from”。?$(patsubstpattern,replacement,text):尋找“text”中符合格式“pattern”的字,用“replacement”替換它們。$(stripstring):去掉前導(dǎo)和結(jié)尾空格,并將中間的多個(gè)空格壓縮為單個(gè)空格。第4章構(gòu)建嵌入式開發(fā)環(huán)境(4)
$(findstringfind,in):在字符串“in”中搜尋“find”,如果找到,則返回值是“find”,否則返回值為空。(5)
$(filterpattern...,text):返回在“text”中由空格隔開且匹配格式“pattern...”的字,去除不符合格式“pattern...”的字。(6)
$(filter-outpattern...,text):返回在“text”中由空格隔開且不匹配格式
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育館環(huán)境衛(wèi)生承諾書
- 2024年研發(fā)設(shè)計(jì)與技術(shù)咨詢協(xié)議3篇
- 證券公司投資資產(chǎn)管理
- SP館租賃合同模板
- 鐵路軌道施工安全合同
- 設(shè)計(jì)工作室隔斷租賃協(xié)議
- 跨境支付項(xiàng)目澄清函參考模板
- 環(huán)保行業(yè)污染防治培訓(xùn)費(fèi)管理辦法
- 能源利用評(píng)審員管理辦法
- 機(jī)場(chǎng)化糞池改造工程合同
- 數(shù)學(xué)文化欣賞
- 脊柱區(qū)1教學(xué)講解課件
- KK5-冷切鋸操作手冊(cè)-20151124
- 教你炒紅爐火版00纏論大概
- 消防管道施工合同
- 大學(xué)生計(jì)算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 2023年國(guó)開大學(xué)期末考復(fù)習(xí)題-3987《Web開發(fā)基礎(chǔ)》
- 《駱駝祥子》1-24章每章練習(xí)題及答案
- 國(guó)際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報(bào)告(6400字)》
- 全國(guó)英語(yǔ)等級(jí)考試三級(jí)全真模擬試題二-2023修改整理
評(píng)論
0/150
提交評(píng)論