資料介紹
ARM處理器支持位置無(wú)關(guān)的程序設(shè)計(jì),這種程序加載到存儲(chǔ)器的任意地址空間都可以正常運(yùn)行,其設(shè)計(jì)方法在嵌入式應(yīng)用系統(tǒng)開(kāi)發(fā)中具有重要的作用。尤其在裸機(jī)狀態(tài)下開(kāi)發(fā)Bootloader程序及進(jìn)行內(nèi)核初始化設(shè)計(jì);利用位置無(wú)關(guān)的程序設(shè)計(jì)方法還可以在具體應(yīng)用中用于構(gòu)建高效率動(dòng)態(tài)鏈接庫(kù),因而了解位置無(wú)關(guān)的程序設(shè)計(jì)方法,有助于開(kāi)發(fā)人員設(shè)計(jì)出結(jié)構(gòu)簡(jiǎn)單、清晰的應(yīng)用程序。
應(yīng)用程序必須經(jīng)過(guò)編譯、匯編和鏈接后才變成可執(zhí)行文件,在鏈接時(shí),要對(duì)所有目標(biāo)文件進(jìn)行重定位(relocatiON),建立符號(hào)引用規(guī)則,同時(shí)為變量、函數(shù)等分配運(yùn)行地址。當(dāng)程序執(zhí)行時(shí),系統(tǒng)必須把代碼加載到鏈接時(shí)所指定的地址空間,以保證程序在執(zhí)行過(guò)程中對(duì)變量、函數(shù)等符號(hào)的正確引用,使程序正常運(yùn)行。在具有操作系統(tǒng)的系統(tǒng)中,重定位過(guò)程由操作系統(tǒng)自動(dòng)完成。
在設(shè)計(jì)Bootloader程序時(shí),必須在裸機(jī)環(huán)境中進(jìn)行,這時(shí)Bootloader映像文件的運(yùn)行地址必須由程序員設(shè)定。通常情況下,將Bootloader程序下載到ROM的0x0地址進(jìn)行啟動(dòng),而在大多數(shù)應(yīng)用系統(tǒng)中,為了快速啟動(dòng),首先將Bootloader程序拷貝到SDRAM中再運(yùn)行。一般情況下,這兩者的地址并不相同,程序在SDRAM中的地址重定位過(guò)程必須由程序員完成。實(shí)際上,由于Bootloader是系統(tǒng)上電后要執(zhí)行的第一段程序,Bootloader程序的拷貝和在這之前的所有工作都必須由其自身來(lái)完成,而這些指令都是在ROM中執(zhí)行的。也就是說(shuō),這些代碼即使不在鏈接時(shí)所指定的運(yùn)行時(shí)地址空間,也可以正確執(zhí)行。這就是位置無(wú)關(guān)代碼,它是一段加載到任意地址空間都能正常執(zhí)行的特殊代碼。
位置無(wú)關(guān)代碼常用于以下場(chǎng)合:
程序在運(yùn)行期間動(dòng)態(tài)加載到內(nèi)存;
程序在不同場(chǎng)合與不同程序組合后加載到內(nèi)存(如共享的動(dòng)態(tài)鏈接庫(kù));
在運(yùn)行期間不同地址相互之間的映射(如Bootloader程序)。
雖然在用GCC編譯時(shí),使用-fPIC選項(xiàng)可為C語(yǔ)言產(chǎn)生位置無(wú)關(guān)代碼,但這并不能修正程序設(shè)計(jì)中固有的位置相關(guān)性缺陷。特別是匯編語(yǔ)言代碼,必須由程序員遵循一定的程序設(shè)計(jì)準(zhǔn)則,才能保證程序的位置無(wú)關(guān)性。
ARM程序的位置無(wú)關(guān)可執(zhí)行文件PIE(PositionIndependent Executable)包括位置無(wú)關(guān)代碼PIC和位置無(wú)關(guān)數(shù)據(jù)PID(PositionIndependent Data)兩部分。
PID主要針對(duì)可讀寫(xiě)數(shù)據(jù)段(.data段),其中保存已賦初值的全局變量。為實(shí)現(xiàn)其位置無(wú)關(guān)性,通常使用寄存器R9作為靜態(tài)基址寄存器,使其指向該可讀寫(xiě)段的首地址,并使用相對(duì)于基址寄存器的偏移量來(lái)對(duì)該段的變量進(jìn)行尋址。這種方法常用于為可重入程序的多個(gè)實(shí)例產(chǎn)生多個(gè)獨(dú)立的數(shù)據(jù)段。在程序設(shè)計(jì)中,一般不必考慮可讀寫(xiě)段的位置無(wú)關(guān)性,這主要是因?yàn)榭勺x寫(xiě)數(shù)據(jù)主要分配在SDRAM中。
PIC包括程序中的代碼和只讀數(shù)據(jù)(.text段),為保證程序能在ROM和SDRAM空間都能正確運(yùn)行(如裸機(jī)狀態(tài)下的Bootloader程序),必須采用位置無(wú)關(guān)代碼程序設(shè)計(jì)。
PIC遵循只讀段位置無(wú)關(guān)ROPI(ReadOnly Position Independence)的ATPCS(ARMThumb Procedure Call STandard)的程序設(shè)計(jì)規(guī)范:
程序設(shè)計(jì)規(guī)范
?。?) 程序設(shè)計(jì)規(guī)范1
引用同一ROPI段或相對(duì)位置固定的另一ROPI段中的符號(hào)時(shí),必須是基于PC的符號(hào)引用,即使用相對(duì)于當(dāng)前PC的偏移量來(lái)實(shí)現(xiàn)跳轉(zhuǎn)或進(jìn)行常量訪(fǎng)問(wèn)。
① 位置無(wú)關(guān)的程序跳轉(zhuǎn)。在A(yíng)RM匯編程序中,使用相對(duì)跳轉(zhuǎn)指令B/BL實(shí)現(xiàn)程序跳轉(zhuǎn)。指令中所跳轉(zhuǎn)的目標(biāo)地址用基于當(dāng)前PC的偏移量來(lái)表示,與鏈接時(shí)分配給地址標(biāo)號(hào)的絕對(duì)地址值無(wú)關(guān),因而代碼可以在任何位置進(jìn)行跳轉(zhuǎn),實(shí)現(xiàn)位置無(wú)關(guān)性。
另外,還可使用ADR或ADRL偽指令將地址標(biāo)號(hào)值讀取到PC中實(shí)現(xiàn)程序跳轉(zhuǎn)。這是因?yàn)锳DR或ADRL等偽指令會(huì)被編譯器替換為對(duì)基于PC的地址值進(jìn)行操作,但這種方式所能讀取的地址范圍較小,并且會(huì)因地址值是否為字對(duì)齊而異。
但在A(yíng)RM程序中,使用LDR等指令直接將地址標(biāo)號(hào)值讀取到PC中實(shí)現(xiàn)程序跳轉(zhuǎn)不是位置無(wú)關(guān)的。例如: LDR PC, =main
上面的偽指令編譯后的結(jié)果為: LDR PC, [PC, OFFSET_TO_LPOOL]
??? LPOOL
DCD main
可見(jiàn),雖然LDR是把基于PC的一個(gè)存儲(chǔ)單元LPOOL的內(nèi)容加載到PC中,但該存儲(chǔ)單元中保存的卻是鏈接時(shí)所決定的main函數(shù)入口的絕對(duì)地址,所以main函數(shù)實(shí)際所在的段不是位置無(wú)關(guān)。
?、?位置無(wú)關(guān)的常量訪(fǎng)問(wèn)。在應(yīng)用程序中,經(jīng)常要讀寫(xiě)相關(guān)寄存器以完成必要的硬件初始化。為增強(qiáng)程序的可讀性,利用EQU偽指令對(duì)一些常量進(jìn)行賦值,但在訪(fǎng)問(wèn)過(guò)程中,必須實(shí)現(xiàn)位置無(wú)關(guān)性。下面以PXA270的GPIO初始化介紹位置無(wú)關(guān)的常量訪(fǎng)問(wèn)方法。
GPIO_BASE EQU 0x40e00000; GPIO基址寄存器地址
GPDR0 EQU 0x00c; 相對(duì)于GPIO基址寄存器的偏移量
init_GPDR0 EQU 0xfffbfe00; 寄存器GPDR0初值
LDR R1, =GPIO_BASE
LDR R0, =init_GPDR0
STR R0, [R1, #GPDR0]
上述匯編代碼段經(jīng)編譯后的結(jié)果為:
LDR R1, [PC, OFFSET_TO_GPIO_BASE]
LDR R0, [PC, OFFSET_TO_init_GPDR0]
STR R0, [R1, #0xc]?
GPIO_BASE
DCD 0x40e00000
GPDR0
DCD 0x00c
init_GPDR0
DCD 0xfffbfe00
可見(jiàn),LDR偽指令實(shí)際上使用基于PC的偏移量來(lái)對(duì)符號(hào)常量GPIO_BASE和init_GPDR0進(jìn)行引用,因而是位置無(wú)關(guān)的。由此可以得出如下結(jié)論:使用LDR偽指令將一個(gè)常量讀取到非PC的其他通用寄存器中可實(shí)現(xiàn)位置無(wú)關(guān)的常量訪(fǎng)問(wèn);但將一個(gè)地址值讀取到PC中進(jìn)行程序跳轉(zhuǎn)時(shí),跳轉(zhuǎn)目標(biāo)則是位置相關(guān)的。
?。?) 程序設(shè)計(jì)規(guī)范2
其他被ROPI段中的代碼引用的必須是絕對(duì)地址,或者是基于可讀寫(xiě)位置無(wú)關(guān)(RWPI)段的靜態(tài)基址寄存器的可寫(xiě)數(shù)據(jù)。
使用絕對(duì)地址只能引用被重定位到特定位置的代碼段中的符號(hào),通過(guò)在位置無(wú)關(guān)代碼中引入絕對(duì)地址,可以讓程序跳轉(zhuǎn)到指定位置。例如,假設(shè)Bootloader的階段1將其自身代碼拷貝到鏈接時(shí)所指定的SDRAM地址空間后,當(dāng)要跳轉(zhuǎn)到階段2的C程序入口時(shí),可以使用指令“LDR PC, =main”跳轉(zhuǎn)到程序在SDRAM中的main函數(shù)入口地址開(kāi)始執(zhí)行。這是因?yàn)槌绦蛟诰幾g鏈接時(shí)給main函數(shù)分派絕對(duì)地址,系統(tǒng)通過(guò)將main函數(shù)的絕對(duì)地址直接賦給PC實(shí)現(xiàn)程序跳轉(zhuǎn)。如果使用相對(duì)跳轉(zhuǎn)指令“B main”,那么只會(huì)跳轉(zhuǎn)到啟動(dòng)ROM內(nèi)部的main函數(shù)入口。
?
應(yīng)用程序必須經(jīng)過(guò)編譯、匯編和鏈接后才變成可執(zhí)行文件,在鏈接時(shí),要對(duì)所有目標(biāo)文件進(jìn)行重定位(relocatiON),建立符號(hào)引用規(guī)則,同時(shí)為變量、函數(shù)等分配運(yùn)行地址。當(dāng)程序執(zhí)行時(shí),系統(tǒng)必須把代碼加載到鏈接時(shí)所指定的地址空間,以保證程序在執(zhí)行過(guò)程中對(duì)變量、函數(shù)等符號(hào)的正確引用,使程序正常運(yùn)行。在具有操作系統(tǒng)的系統(tǒng)中,重定位過(guò)程由操作系統(tǒng)自動(dòng)完成。
在設(shè)計(jì)Bootloader程序時(shí),必須在裸機(jī)環(huán)境中進(jìn)行,這時(shí)Bootloader映像文件的運(yùn)行地址必須由程序員設(shè)定。通常情況下,將Bootloader程序下載到ROM的0x0地址進(jìn)行啟動(dòng),而在大多數(shù)應(yīng)用系統(tǒng)中,為了快速啟動(dòng),首先將Bootloader程序拷貝到SDRAM中再運(yùn)行。一般情況下,這兩者的地址并不相同,程序在SDRAM中的地址重定位過(guò)程必須由程序員完成。實(shí)際上,由于Bootloader是系統(tǒng)上電后要執(zhí)行的第一段程序,Bootloader程序的拷貝和在這之前的所有工作都必須由其自身來(lái)完成,而這些指令都是在ROM中執(zhí)行的。也就是說(shuō),這些代碼即使不在鏈接時(shí)所指定的運(yùn)行時(shí)地址空間,也可以正確執(zhí)行。這就是位置無(wú)關(guān)代碼,它是一段加載到任意地址空間都能正常執(zhí)行的特殊代碼。
位置無(wú)關(guān)代碼常用于以下場(chǎng)合:
程序在運(yùn)行期間動(dòng)態(tài)加載到內(nèi)存;
程序在不同場(chǎng)合與不同程序組合后加載到內(nèi)存(如共享的動(dòng)態(tài)鏈接庫(kù));
在運(yùn)行期間不同地址相互之間的映射(如Bootloader程序)。
雖然在用GCC編譯時(shí),使用-fPIC選項(xiàng)可為C語(yǔ)言產(chǎn)生位置無(wú)關(guān)代碼,但這并不能修正程序設(shè)計(jì)中固有的位置相關(guān)性缺陷。特別是匯編語(yǔ)言代碼,必須由程序員遵循一定的程序設(shè)計(jì)準(zhǔn)則,才能保證程序的位置無(wú)關(guān)性。
ARM程序的位置無(wú)關(guān)可執(zhí)行文件PIE(PositionIndependent Executable)包括位置無(wú)關(guān)代碼PIC和位置無(wú)關(guān)數(shù)據(jù)PID(PositionIndependent Data)兩部分。
PID主要針對(duì)可讀寫(xiě)數(shù)據(jù)段(.data段),其中保存已賦初值的全局變量。為實(shí)現(xiàn)其位置無(wú)關(guān)性,通常使用寄存器R9作為靜態(tài)基址寄存器,使其指向該可讀寫(xiě)段的首地址,并使用相對(duì)于基址寄存器的偏移量來(lái)對(duì)該段的變量進(jìn)行尋址。這種方法常用于為可重入程序的多個(gè)實(shí)例產(chǎn)生多個(gè)獨(dú)立的數(shù)據(jù)段。在程序設(shè)計(jì)中,一般不必考慮可讀寫(xiě)段的位置無(wú)關(guān)性,這主要是因?yàn)榭勺x寫(xiě)數(shù)據(jù)主要分配在SDRAM中。
PIC包括程序中的代碼和只讀數(shù)據(jù)(.text段),為保證程序能在ROM和SDRAM空間都能正確運(yùn)行(如裸機(jī)狀態(tài)下的Bootloader程序),必須采用位置無(wú)關(guān)代碼程序設(shè)計(jì)。
PIC遵循只讀段位置無(wú)關(guān)ROPI(ReadOnly Position Independence)的ATPCS(ARMThumb Procedure Call STandard)的程序設(shè)計(jì)規(guī)范:
程序設(shè)計(jì)規(guī)范
?。?) 程序設(shè)計(jì)規(guī)范1
引用同一ROPI段或相對(duì)位置固定的另一ROPI段中的符號(hào)時(shí),必須是基于PC的符號(hào)引用,即使用相對(duì)于當(dāng)前PC的偏移量來(lái)實(shí)現(xiàn)跳轉(zhuǎn)或進(jìn)行常量訪(fǎng)問(wèn)。
① 位置無(wú)關(guān)的程序跳轉(zhuǎn)。在A(yíng)RM匯編程序中,使用相對(duì)跳轉(zhuǎn)指令B/BL實(shí)現(xiàn)程序跳轉(zhuǎn)。指令中所跳轉(zhuǎn)的目標(biāo)地址用基于當(dāng)前PC的偏移量來(lái)表示,與鏈接時(shí)分配給地址標(biāo)號(hào)的絕對(duì)地址值無(wú)關(guān),因而代碼可以在任何位置進(jìn)行跳轉(zhuǎn),實(shí)現(xiàn)位置無(wú)關(guān)性。
另外,還可使用ADR或ADRL偽指令將地址標(biāo)號(hào)值讀取到PC中實(shí)現(xiàn)程序跳轉(zhuǎn)。這是因?yàn)锳DR或ADRL等偽指令會(huì)被編譯器替換為對(duì)基于PC的地址值進(jìn)行操作,但這種方式所能讀取的地址范圍較小,并且會(huì)因地址值是否為字對(duì)齊而異。
但在A(yíng)RM程序中,使用LDR等指令直接將地址標(biāo)號(hào)值讀取到PC中實(shí)現(xiàn)程序跳轉(zhuǎn)不是位置無(wú)關(guān)的。例如: LDR PC, =main
上面的偽指令編譯后的結(jié)果為: LDR PC, [PC, OFFSET_TO_LPOOL]
??? LPOOL
DCD main
可見(jiàn),雖然LDR是把基于PC的一個(gè)存儲(chǔ)單元LPOOL的內(nèi)容加載到PC中,但該存儲(chǔ)單元中保存的卻是鏈接時(shí)所決定的main函數(shù)入口的絕對(duì)地址,所以main函數(shù)實(shí)際所在的段不是位置無(wú)關(guān)。
?、?位置無(wú)關(guān)的常量訪(fǎng)問(wèn)。在應(yīng)用程序中,經(jīng)常要讀寫(xiě)相關(guān)寄存器以完成必要的硬件初始化。為增強(qiáng)程序的可讀性,利用EQU偽指令對(duì)一些常量進(jìn)行賦值,但在訪(fǎng)問(wèn)過(guò)程中,必須實(shí)現(xiàn)位置無(wú)關(guān)性。下面以PXA270的GPIO初始化介紹位置無(wú)關(guān)的常量訪(fǎng)問(wèn)方法。
GPIO_BASE EQU 0x40e00000; GPIO基址寄存器地址
GPDR0 EQU 0x00c; 相對(duì)于GPIO基址寄存器的偏移量
init_GPDR0 EQU 0xfffbfe00; 寄存器GPDR0初值
LDR R1, =GPIO_BASE
LDR R0, =init_GPDR0
STR R0, [R1, #GPDR0]
上述匯編代碼段經(jīng)編譯后的結(jié)果為:
LDR R1, [PC, OFFSET_TO_GPIO_BASE]
LDR R0, [PC, OFFSET_TO_init_GPDR0]
STR R0, [R1, #0xc]?
GPIO_BASE
DCD 0x40e00000
GPDR0
DCD 0x00c
init_GPDR0
DCD 0xfffbfe00
可見(jiàn),LDR偽指令實(shí)際上使用基于PC的偏移量來(lái)對(duì)符號(hào)常量GPIO_BASE和init_GPDR0進(jìn)行引用,因而是位置無(wú)關(guān)的。由此可以得出如下結(jié)論:使用LDR偽指令將一個(gè)常量讀取到非PC的其他通用寄存器中可實(shí)現(xiàn)位置無(wú)關(guān)的常量訪(fǎng)問(wèn);但將一個(gè)地址值讀取到PC中進(jìn)行程序跳轉(zhuǎn)時(shí),跳轉(zhuǎn)目標(biāo)則是位置相關(guān)的。
?。?) 程序設(shè)計(jì)規(guī)范2
其他被ROPI段中的代碼引用的必須是絕對(duì)地址,或者是基于可讀寫(xiě)位置無(wú)關(guān)(RWPI)段的靜態(tài)基址寄存器的可寫(xiě)數(shù)據(jù)。
使用絕對(duì)地址只能引用被重定位到特定位置的代碼段中的符號(hào),通過(guò)在位置無(wú)關(guān)代碼中引入絕對(duì)地址,可以讓程序跳轉(zhuǎn)到指定位置。例如,假設(shè)Bootloader的階段1將其自身代碼拷貝到鏈接時(shí)所指定的SDRAM地址空間后,當(dāng)要跳轉(zhuǎn)到階段2的C程序入口時(shí),可以使用指令“LDR PC, =main”跳轉(zhuǎn)到程序在SDRAM中的main函數(shù)入口地址開(kāi)始執(zhí)行。這是因?yàn)槌绦蛟诰幾g鏈接時(shí)給main函數(shù)分派絕對(duì)地址,系統(tǒng)通過(guò)將main函數(shù)的絕對(duì)地址直接賦給PC實(shí)現(xiàn)程序跳轉(zhuǎn)。如果使用相對(duì)跳轉(zhuǎn)指令“B main”,那么只會(huì)跳轉(zhuǎn)到啟動(dòng)ROM內(nèi)部的main函數(shù)入口。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于ARM處理器的TFT-LCD顯示系統(tǒng) 34次下載
- 基于ARM處理器的禽舍環(huán)境監(jiān)控系統(tǒng) 31次下載
- 增量式PID控制算法程序設(shè)計(jì)方案下載 7次下載
- 使用ARM處理器設(shè)計(jì)電子式互感器數(shù)據(jù)采集系統(tǒng)的論文說(shuō)明 7次下載
- ARM嵌入式處理器的GNU工具應(yīng)用程序免費(fèi)下載 7次下載
- 基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計(jì)方案解析 35次下載
- ARM體系結(jié)構(gòu)下的程序設(shè)計(jì)經(jīng)驗(yàn) 5次下載
- 嵌入式軟件開(kāi)發(fā)之基于ARM處理器的嵌入式系統(tǒng)設(shè)計(jì)方案解析 1次下載
- 嵌入式系統(tǒng)開(kāi)發(fā)基礎(chǔ)_基于ARM9微處理器C語(yǔ)言程序設(shè)計(jì)(第二版) 0次下載
- ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)_免費(fèi)下載 324次下載
- 基于ARM 微處理器的故障記錄系統(tǒng) 57次下載
- 基于ARM的BSP程序設(shè)計(jì)方案
- ARM程序設(shè)計(jì)基礎(chǔ)教材
- ARM程序設(shè)計(jì)基礎(chǔ)
- ARM微處理器的編程模型
- 解析PLC梯形圖程序設(shè)計(jì) 1402次閱讀
- 基于pSOS和TM1300媒體處理器實(shí)現(xiàn)多媒體通信系統(tǒng)的應(yīng)用方案 2081次閱讀
- 采用ARM EP9315處理器實(shí)現(xiàn)P0104總線(xiàn)的應(yīng)用方案 2895次閱讀
- ARM協(xié)處理器接口 1420次閱讀
- 各類(lèi)ARM處理器的區(qū)別及應(yīng)用 6045次閱讀
- 基于嵌入式處理器PowerPC7447的設(shè)計(jì)方案 1128次閱讀
- 解答arm處理器的七種工作模式 1.6w次閱讀
- 淺談arm處理器的優(yōu)勢(shì) 1.2w次閱讀
- 解答arm是什么/arm處理器采用什么技術(shù) 8078次閱讀
- 運(yùn)用ARM處理器軟件工具出錯(cuò),會(huì)帶來(lái)什么樣的結(jié)果? 705次閱讀
- 液晶顯示屏設(shè)計(jì)方案:基于Nios嵌入式軟核處理器 1081次閱讀
- arm的協(xié)處理器有幾個(gè)?ARM協(xié)處理器詳解 8823次閱讀
- 淺談ARM處理器的特點(diǎn)和體系結(jié)構(gòu) 1.7w次閱讀
- 基于ARM處理器的高效異常處理解決方案 1286次閱讀
- PicoBlaze處理器IP Core的原理與應(yīng)用 851次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開(kāi)關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于A(yíng)T89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專(zhuān)業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論
查看更多