版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第11章章 ARM連接器連接器11.1 ARM映像文件映像文件ARM中的各種源文件(包括匯編程序、C語言程序以及C+程序)經(jīng)過ARM編譯器編譯后,生成ELF格式的目標文件。這些目標文件和相應(yīng)的C/C+運行時庫經(jīng)過ARM連接器處理后,生成ELF格式的映像文件(Image)。這種ELF格式的映像文件可以被寫入嵌入式設(shè)備的ROM中。本節(jié)介紹這種ELF格式的映像文件的結(jié)構(gòu)。211.1.1 ARM映像文件的組成映像文件的組成1. ARM映像文件的組成部分映像文件的組成部分一個映像文件由一個或多個域組成。每個域包含一個或多個輸出段。每個輸出段包含一個或多個輸入段。各輸入段包含了目標文件中的代碼和數(shù)據(jù)。3
2、11.1.1 ARM映像文件的組成映像文件的組成2. ARM映像文件各組成部分的地址映射映像文件各組成部分的地址映射ARM映像文件各組成部分在存儲系統(tǒng)中的地址有兩種:一種是在映像文件位于存儲器中時(也就是該映像文件開始運行之前)的地址,稱為加載時地址;一種是在映像文件運行時的地址,稱為運行時地址。在圖11.2給出的例子中,RW段的加載時地址為0 x6000(指該段所占的存儲區(qū)域的起始地址),該地址位于ROM中;RW段的運行時地址為0 x8000(指該段所占的存儲區(qū)域的起始地址),該地址位于RAM中。4RO段RAM加載時的地址映射關(guān)系運行時的地址映射關(guān)系0 x00000 x60000 x8000
3、0 xa0000 xffffRW段RO段RW段ZI 段ROM 11.1.2 ARM映像文件的入口點映像文件的入口點1. ARM映像文件中的兩類入口點映像文件中的兩類入口點2. 定義初始入口點定義初始入口點3. 普通入口點的用法普通入口點的用法511.1.3 輸入段的排序規(guī)則輸入段的排序規(guī)則通常情況下,一個輸出段中,各輸入段的排列順序通常情況下,一個輸出段中,各輸入段的排列順序是由下面幾個因素決定的。用戶也可以通過連接選是由下面幾個因素決定的。用戶也可以通過連接選項項-first和和-last來改變這些規(guī)則。來改變這些規(guī)則。輸入段的屬性。輸入段的名稱。各輸入段在連接命令行的輸入段列表中的排列順序
4、。按照輸入段的屬性,其排列順序如下所示。按照輸入段的屬性,其排列順序如下所示。(1)只讀的代碼段。(2)只讀的數(shù)據(jù)段。(3)可讀寫的代碼段。(4)其他已經(jīng)初始化的數(shù)據(jù)段。(5)未初始化的數(shù)據(jù)。611.2 ARM連接器介紹連接器介紹ARM開發(fā)包中包含了連接器開發(fā)包中包含了連接器armlink,它將編譯得,它將編譯得到的到的ELF格式的目標文件以及相關(guān)的格式的目標文件以及相關(guān)的C/C+運行時運行時庫進行連接,生成相應(yīng)的結(jié)果文件。庫進行連接,生成相應(yīng)的結(jié)果文件。具體來說,具體來說,armlink可以完成以下操作:可以完成以下操作:連接編譯后得到的目標文件和相應(yīng)的C/C+運行時庫,生成可執(zhí)行的映像文件
5、。將一些目標文件進行連接,生成一個新的目標文件,供將來進一步連接時使用,這稱為部分連接。指定代碼和數(shù)據(jù)在內(nèi)存中的位置。生成被連接文件的調(diào)試信息和相互間的引用信息。711.2 ARM連接器介紹連接器介紹armlink在進行部分連接和完全連接生成可執(zhí)行的映像文件時所進行的在進行部分連接和完全連接生成可執(zhí)行的映像文件時所進行的操作是不同的。下面分別介紹這兩種情況。操作是不同的。下面分別介紹這兩種情況。(1)armlink在進行完全連接生成可執(zhí)行的映像文件時執(zhí)行下面的操作。解析輸入的目標文件之間的符號引用關(guān)系。根據(jù)輸入目標文件對C/C+函數(shù)的調(diào)用關(guān)系,從C/C+運行時庫中提取相應(yīng)的模塊。將各輸入段排序
6、,組成相應(yīng)的輸出段。刪除重復(fù)的調(diào)試信息段。根據(jù)用戶指定的分組和定位信息,建立映像文件的地址映射關(guān)系。重定位需要重定位的值。生成可執(zhí)行的映像文件。(2)armlink在進行部分連接生成新的目標文件時執(zhí)行下面的操作。刪除重復(fù)的調(diào)試信息段。最小化符號表的大小。保留那些未被解析的符號。生成新的目標文件。811.3 ARM連接器生成的符號連接器生成的符號ARM連接器定義了一些符號,這些符號中都包含字符連接器定義了一些符號,這些符號中都包含字符$。ARM連接器在生成映像文件時,用它們來代表映像文件中連接器在生成映像文件時,用它們來代表映像文件中各域的起始地址以及存儲區(qū)域界限、各輸出段的起始地址以各域的起始
7、地址以及存儲區(qū)域界限、各輸出段的起始地址以及存儲區(qū)域界限、各輸入段的起始地址以及存儲區(qū)域界限。及存儲區(qū)域界限、各輸入段的起始地址以及存儲區(qū)域界限。比如,比如,Load$region_name$Base代表域代表域region_name加載時的起始地址;而加載時的起始地址;而image$region_ name$Base代表代表域域region_name運行時的起始地址。運行時的起始地址。這些符號可以被匯編程序引用,用于地址重定位。這些符號這些符號可以被匯編程序引用,用于地址重定位。這些符號可以被可以被C程序作為外部符號引用。程序作為外部符號引用。所有這些符號,只有在其被應(yīng)用程序引用時,所有這些
8、符號,只有在其被應(yīng)用程序引用時,ARM連接器連接器才會生成該符號。才會生成該符號。推薦使用映像文件中與域相關(guān)的符號,而不是使用與段相關(guān)推薦使用映像文件中與域相關(guān)的符號,而不是使用與段相關(guān)的符號。的符號。911.3.1 連接器生成的與域相關(guān)的符號連接器生成的與域相關(guān)的符號連接器生成的與域相關(guān)的符號如表連接器生成的與域相關(guān)的符號如表11.1所示。各符號的命名所示。各符號的命名規(guī)則是:如果使用了地址映射配置文件規(guī)則是:如果使用了地址映射配置文件(scatter文件文件),該文,該文件規(guī)定了映像文件中各域的名稱;如果未使用地址映射配置件規(guī)定了映像文件中各域的名稱;如果未使用地址映射配置文件文件(sca
9、tter文件文件),連接器按照下面的規(guī)則確定各符號中的,連接器按照下面的規(guī)則確定各符號中的region_name:對于只讀的域,使用名稱ER_RO。對于可讀寫的域,使用名稱ER_RW。對于使用0初始化的域,使用名稱ER_ZI。10符號名稱含 義Load$region_name$Base域region_name的加載時起始地址Image$region_name$Base域region_name的運行時起始地址Image$region_name$Length域region_name運行時的長度(為4字節(jié)的倍數(shù))Image$region_name$Limit域region_name運行時存儲區(qū)域末尾
10、的下一個字節(jié)地址(該地址不屬于域region_name所占的存儲區(qū)域) 11.3.1 連接器生成的與域相關(guān)的符號連接器生成的與域相關(guān)的符號對于映像文件的每個域,如果其中包含了對于映像文件的每個域,如果其中包含了ZI屬性的屬性的輸出段,連接器將會為該輸出段,連接器將會為該ZI輸出段生成另外的符號。輸出段生成另外的符號。這些符號如表這些符號如表11.2所示。所示。11符號名稱含 義Image$region_name$ ZI$Base域region_name中ZI輸出段的運行時起始地址Image$region_name$ ZI$Length域region_name中ZI輸出段運行時的長度(為4字節(jié)的
11、倍數(shù))Image$region_name$ ZI$Limit域region_name中ZI輸出段運行時存儲區(qū)域末尾的下一個字節(jié)地址(該地址不屬于域region_name所占的存儲區(qū)域) 11.3.2 連接器生成的與輸出段相關(guān)的符號連接器生成的與輸出段相關(guān)的符號如果未使用地址映射配置文件如果未使用地址映射配置文件(scatter文件文件),連接,連接器生成的與輸出段相關(guān)的符號如器生成的與輸出段相關(guān)的符號如 表表11.3所示;如所示;如果使用了地址映射配置文件果使用了地址映射配置文件(scatter文件文件),表,表11.3中所列的符號沒有意義,如果應(yīng)用程序使用了這些中所列的符號沒有意義,如果應(yīng)用
12、程序使用了這些符號,將可能得到錯誤的結(jié)果,這時應(yīng)該使用上一符號,將可能得到錯誤的結(jié)果,這時應(yīng)該使用上一小節(jié)中介紹的與域相關(guān)的符號。小節(jié)中介紹的與域相關(guān)的符號。12符號名稱含 義Image $RO$BaseRO輸出段運行時的起始地址Image$RO$LimitRO輸出段運行時存儲區(qū)域的界限Image $RW$BaseRW輸出段運行時的起始地址Image$RW$LimitRW輸出段運行時的存儲區(qū)域界限Image $ZI$BaseZI輸出段運行時的起始地址Image$ZI$LimitZI輸出段運行時存儲區(qū)域的界限11.3.3 連接器生成的與輸入段相關(guān)的符號連接器生成的與輸入段相關(guān)的符號ARM連接器為
13、映像文件中的每一個輸入段生成兩個連接器為映像文件中的每一個輸入段生成兩個符號,如表符號,如表11.4所示。所示。13符號名稱含 義SectionName$BaseSectionName輸入段運行時的起始地址SectionName $LimitSectionName輸入段運行時的存儲區(qū)域界限11.4 連接器的優(yōu)化功能連接器的優(yōu)化功能1. 刪除重復(fù)的調(diào)試信息段刪除重復(fù)的調(diào)試信息段2. 刪除重復(fù)的代碼段刪除重復(fù)的代碼段3. 刪除未使用的段刪除未使用的段4. 生成小代碼段生成小代碼段(veneer)1411.5 運行時庫的使用運行時庫的使用ARM連接器使用連接器使用C/C+運行時庫的基本步驟如下。運行
14、時庫的基本步驟如下。(1)ARM連接器根據(jù)一定的規(guī)則確定需要使用哪些C/C+運行時庫。具體的規(guī)則在11.5.1小節(jié)中介紹。(2)從各搜索路徑中查找相應(yīng)的C/C+運行時庫。參見11.5.2小節(jié)中的介紹。(3)選擇合適種類的C/C+運行時庫。適應(yīng)于不同的編譯選項和連接選項,各C/C+運行時庫具有不同的種類。參見11.5.3小節(jié)中的介紹。(4)重復(fù)掃描各C/C+運行時庫,解析各符號。參見11.5.4小節(jié)中的介紹。1511.5.1 C/C+運行時庫與目標文件運行時庫與目標文件ARM中中C/C+運行時庫就是一些運行時庫就是一些ELF格式的目標文件的集合,這些目標格式的目標文件的集合,這些目標文件是按照文
15、件是按照ar格式組織在一起的。格式組織在一起的。ARM連接器在使用一般目標文件和連接器在使用一般目標文件和C/C+運行時庫時有所不同。其主要區(qū)別如下所示。運行時庫時有所不同。其主要區(qū)別如下所示。(1)在ARM連接器的輸入列表中的所有目標文件將被無條件地包含到輸出的映像文件中,而不論該目標文件是否被其他的目標文件引用。如果用戶在連接時沒有指定連接選項-noremove,連接器將會在后面的處理中刪除映像文件中沒有被使用的段。(2)而連接器在使用C/C+運行時庫時,有所不同,主要遵守下面的規(guī)則:如果在連接器的輸入列表中顯式地指定了C/C+運行時庫的某成員,則該成員將被無條件地包含到輸出的映像文件中,
16、而不論該成員是否被其他的目標文件引用。如果C/C+運行時庫中某成員被其他的目標文件按nonweak方式引用,或者被其他已經(jīng)被包含的C/C+運行時庫中的成員按nonweak方式引用,則該C/C+運行時庫中的成員將會被包含到輸出的映像文件中。被按weak方式引用的C/C+運行時庫中的成員不會被包含到輸出的映像文件中。1611.5.2 查找需要的查找需要的C/C+運行時庫運行時庫可以通過下面可以通過下面3種方法來指定種方法來指定ARM標準標準C/C+運行運行時庫的路徑。其中連接選項時庫的路徑。其中連接選項-libpath指定的指定的ARM標標準準C/C+運行時庫的路徑優(yōu)先級高于使用環(huán)境變量運行時庫的
17、路徑優(yōu)先級高于使用環(huán)境變量ARMLIB指定的指定的ARM標準標準C/C+運行時庫的路徑。運行時庫的路徑。使用連接選項-libpath來指定ARM標準C/C+運行時庫的路徑。這時指定的是包含路徑armlib和cpplib的父路徑。使用Code Warrior IDE中關(guān)于連接選項的控制面板來指定ARM標準C/C+運行時庫的路徑。使用環(huán)境變量ARMLIB來指定ARM標準C/C+運行時庫的路徑。這時ARMLIB被設(shè)置成包含路徑armlib和cpplib的父路徑。1711.5.3 選擇合適種類的選擇合適種類的C/C+運行時庫運行時庫針對不同的編譯選項和連接選項,各針對不同的編譯選項和連接選項,各C/C
18、+運行時運行時庫具有不同的種類。各種不同種類的庫具有不同的種類。各種不同種類的C/C+運行時運行時庫是依靠其名稱來識別的。庫是依靠其名稱來識別的。C/C+運行時庫的命名運行時庫的命名格式如下所示:格式如下所示: root_.1811.5.4 掃描掃描C/C+運行時庫運行時庫在從上面的操作中得到需要使用的在從上面的操作中得到需要使用的C/C+運行時庫,運行時庫,ARM連接器掃描這些連接器掃描這些C/C+運行時庫,加載相應(yīng)的對象,解析各運行時庫,加載相應(yīng)的對象,解析各目標文件中的符號。具體操作步驟如下。目標文件中的符號。具體操作步驟如下。(1)ARM連接器按順序掃描各C/C+運行時庫,以完成所有的
19、nonweak方式的引用關(guān)系。這樣,如果有多個目標可以滿足引用關(guān)系,則排在前面的庫被使用。這是一個必須注意的特點。(2)如果某個庫的成員滿足引用要求,該成員被加載,從而解析了相應(yīng)的符號。該成員函數(shù)的引入也可能實現(xiàn)了weak方式的引用。(3)在引入某個成員后,在解析了一些符號同時,可能帶來新的需要解析的符號。(4)這種解析過程重復(fù)進行,直到解析完所有的符號,或者確定某些符號不能被解析為止。1911.6 從一個映像文件中使用另一個映像文件中的符號從一個映像文件中使用另一個映像文件中的符號在在ARM中,從一個映像文件中訪問另一個映像文件中,從一個映像文件中訪問另一個映像文件中的符號是通過中的符號是通
20、過symdefs文件實現(xiàn)的。本節(jié)介紹這文件實現(xiàn)的。本節(jié)介紹這些相關(guān)的技術(shù)。些相關(guān)的技術(shù)。2011.6.1 symdefs文件文件symdefs文件是一種目標文件。與普通的目標文件文件是一種目標文件。與普通的目標文件不同的是,其中只包含了符號和其對應(yīng)的數(shù)值,沒不同的是,其中只包含了符號和其對應(yīng)的數(shù)值,沒有包含代碼和數(shù)據(jù)。一個有包含代碼和數(shù)據(jù)。一個symdefs文件通常包括文件通常包括3部分:一個標識符;可選的注釋部分;包含符號和部分:一個標識符;可選的注釋部分;包含符號和其對應(yīng)的數(shù)值的部分。下面是一個其對應(yīng)的數(shù)值的部分。下面是一個symdefs文件的文件的簡單例子。它包括了一個簡單例子。它包括了
21、一個symdefs文件通常包含的文件通常包含的3部分。部分。標識符:標識符: # 注釋:注釋: ; value type name, this is an added comment2111.6.1 symdefs文件文件1. 標識符字符串標識符字符串2. 注釋注釋3. 符號及其對應(yīng)的值符號及其對應(yīng)的值(1)符號的地址值:ARM連接器使用固定的十六進制值來表示符號的地址值。用戶在修改該地址值時可以使用十六進制,也可以使用十進制。(2)符號的類型:它有下面3類。A:ARM代碼符號。T:Thumb代碼符號。D:數(shù)據(jù)符號。(3)符號名稱:滿足ARM中關(guān)于合法符號的定義。2211.6.2 建立建立sy
22、mdefs文件文件在完成所有的其他連接操作后,在完成所有的其他連接操作后,ARM連接器可以生連接器可以生成一個成一個symdefs文件。對于部分連接和失敗的連接文件。對于部分連接和失敗的連接操作,操作,ARM連接器不會產(chǎn)生連接器不會產(chǎn)生symdefs文件。文件。使用連接選項使用連接選項-symdefs filename生成相應(yīng)的生成相應(yīng)的symdefs文件時,可以有下面兩種情況:文件時,可以有下面兩種情況:如果連接選項中指定的文件filename不存在,在ARM連接器生成包括所有全局符號的symdefs文件。如果連接選項中指定的文件filename已存在,則該文件的內(nèi)容將限制ARM連接器生成的
23、symdefs文件中包括哪些符號。2311.6.3 symdefs文件的使用文件的使用 使用使用symdefs文件的方法與使用普通的目標文件相文件的方法與使用普通的目標文件相同,將其作為輸入文件。同,將其作為輸入文件。ARM連接器從連接器從symdefs文文件中提取需要的符號及其相關(guān)信息,將這些信息加件中提取需要的符號及其相關(guān)信息,將這些信息加入到輸出符號表中,這些符號具有入到輸出符號表中,這些符號具有ABSOLUTE和和GLOBAL屬性。屬性。ARM連接器像對待從其他目標文連接器像對待從其他目標文件中提取的符號一樣對待這些符號。件中提取的符號一樣對待這些符號。在從在從symdefs文件中提取
24、符號及其相關(guān)信息時,在文件中提取符號及其相關(guān)信息時,在下列情況下,下列情況下,ARM連接器認為該符號為非法符號,連接器認為該符號為非法符號,將產(chǎn)生錯誤信息:將產(chǎn)生錯誤信息:該符號的某一列信息為空時。該符號的某一列具有非法的數(shù)值時。2411.7 隱藏或者重命名全局符號隱藏或者重命名全局符號本節(jié)介紹如何將輸出文件中的符號隱藏或者重命本節(jié)介紹如何將輸出文件中的符號隱藏或者重命名。這樣可以避免全局符號名稱沖突。名。這樣可以避免全局符號名稱沖突。ARM提供的提供的steering格式的文件就是用于這一目的。格式的文件就是用于這一目的。2511.7.1 steering文件的格式文件的格式steering
25、文件是一個文本文件,其格式如下:文件是一個文本文件,其格式如下:第1個非空格字符為字符“#”或者“;”的行是注釋行,注釋行是被作為空行來對待的。其中可以包含空行,以提高可讀性??招袑⒈籄RM連接器忽略。既非空行,也非注釋行的行,可以是一個完整的命令,也可以是一個命令的一部分,因為一個命令可以跨多個行。一個命令行的最后一個非空格字符如果為字符“,”,表示下面的一行是本命令的續(xù)行部分。2611.7.2 steering文件中的命令文件中的命令1. RENAME2. HIDE 3. SHOW2711.8 ARM連接器的命令行選項連接器的命令行選項ARM連接器的命令行格式如下所示:連接器的命令行格式如
26、下所示: armlink -help -vsn -partial -output file -elf -ro-base address -ropi-rw-base address -rwpi -split -scatter file -debug|-nodebug-remove (RO/RW/ZI)|-unremove -entry location -keep section-id-first section-id -last section-id -libpath pathlist -scanlib|-noscanlib-locals|-nolocals -callgraph -info
27、topics -map -symbols -symdefs file-edit file -xref -xreffrom object(section) -xrefto object(section)-errors file -list file -verbose -unmangled |-mangled -via file-strict -unresolved symbol input-file-list2811.8 ARM連接器的命令行選項連接器的命令行選項其中選項的含義及用法如下所示。其中選項的含義及用法如下所示。1. -help2. -vsn3. -partial4. -output
28、file5. -elf6. -ro-base address7. -ropi8. -rw-base address9. -rwpi10. -split11. -scatter file12. -debug2911.8 ARM連接器的命令行選項連接器的命令行選項13. -nodebug14. -remove(RW/RO/ZI)15. -unremove16. -entry location17. -keep section-id18. -first section-id19. -last section-id20. -libpath pathlist21. -scanlib22. -noscan
29、lib23. -locals24. -nolocals3011.8 ARM連接器的命令行選項連接器的命令行選項25. -callgraph26. -info topics27. -map28. -symbols29. -symdefs file30. -edit file31. -xref32. -xreffrom object(section)33. -xrefto object(section)34. -errors file3111.8 ARM連接器的命令行選項連接器的命令行選項35. -list file36. -verbose37. -unmangled38. -mangled39. -via file40. -strict41. -unresolved symbol42. -input-file-list3211.9 使用使用scatter文件定義映像文件的地址映射文件定義映像文件的地址映射根據(jù)映像文件中地址映射的復(fù)雜程度,有兩種方法來告訴根據(jù)映像文件中地址映射的復(fù)雜程度,有兩種方法來告訴ARM連接器連接器這些相關(guān)的信息。對于映像文件中地址映射關(guān)系比較簡單的情況,可以這些相關(guān)的信息。對于映像文件中地址映射關(guān)系比較簡單的情況,可以使用命令行選項;對于映像文件中地址映
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年汽車銷售公司售后服務(wù)保障合同3篇
- 2024年科技創(chuàng)新項目贊助合同3篇
- 2025下半年浙江麗水市青田縣招聘國企業(yè)工作人員及人員高頻重點提升(共500題)附帶答案詳解
- 2025下半年廣西玉林市殘疾人聯(lián)合會直屬事業(yè)單位市殘疾人康復(fù)中心招聘5人歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年四川省雅安市級事業(yè)單位招聘117人歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年四川省內(nèi)江威遠縣鎮(zhèn)屬事業(yè)單位專項招聘5人歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年四川南充市順慶區(qū)事業(yè)單位招聘22人高頻重點提升(共500題)附帶答案詳解
- 2025上海科學(xué)技術(shù)交流中心工作人員公開招聘高頻重點提升(共500題)附帶答案詳解
- 2025上半年陜西省寶雞市事業(yè)單位歷年高頻重點提升(共500題)附帶答案詳解
- 2025上半年浙江省舟山廣播電視總臺招聘事業(yè)單位人員13人高頻重點提升(共500題)附帶答案詳解
- 中央銀行理論與實務(wù)期末復(fù)習(xí)題
- 水產(chǎn)養(yǎng)殖生產(chǎn)記錄表模板
- 國家開放大學(xué)電大本科《國際私法》案例題題庫及答案(b試卷號:1020)
- 喜慶中國節(jié)春節(jié)習(xí)俗文化PPT模板
- 各種骨折英文名稱
- 加熱爐溫度控制系統(tǒng)
- 二次供水工程技術(shù)規(guī)程(CJJ140—2010 )
- 小說HOTEL介紹
- 設(shè)備故障處理流程圖
- 晨暉智能一卡通管理系統(tǒng)
- 應(yīng)急預(yù)案評審要素表
評論
0/150
提交評論