資料介紹
13.2 編譯器的缺省行為
多數(shù)嵌入式應(yīng)用程序最初都是在原型環(huán)境下開(kāi)發(fā)的。無(wú)論什么樣的原型仿真環(huán)境與最終產(chǎn)品環(huán)境都是有差異的。因此,考慮如何將嵌入式應(yīng)用程序從其所依賴(lài)的開(kāi)發(fā)工具或調(diào)試環(huán)境中移植到在目標(biāo)硬件上獨(dú)立運(yùn)行是非常重要的。
開(kāi)始編寫(xiě)嵌入式應(yīng)用程序時(shí),開(kāi)發(fā)者可能并不清楚目標(biāo)硬件的具體規(guī)格。如,目標(biāo)系統(tǒng)使用了什么樣的外圍設(shè)備、存儲(chǔ)器映射情況甚至不能確定處理器的型號(hào)。
為在了解這些詳細(xì)信息前能夠繼續(xù)軟件的開(kāi)發(fā),RVCT工具提供了很多默認(rèn)的操作,使用戶能編譯和調(diào)試與目標(biāo)系統(tǒng)無(wú)關(guān)的應(yīng)用程序代碼。下面詳細(xì)介紹這些編譯選項(xiàng),只有深入了解這些編譯選項(xiàng)設(shè)置,才能使開(kāi)發(fā)更順利的進(jìn)行。
13.2.1 Semihosting
1.Semihosting簡(jiǎn)介
在RVCT C庫(kù)中,對(duì)某些ISO C功能的支持由主機(jī)調(diào)試環(huán)境提供。提供該功能的機(jī)制被稱(chēng)為Semihostin[1]。大多數(shù)的ARM調(diào)試系統(tǒng)都支持Semihosting機(jī)制,如ReslView Debugger AXD等。
調(diào)試系統(tǒng)提供這種機(jī)制是非常有用的,因?yàn)橛糜陂_(kāi)發(fā)使用的硬件系統(tǒng)經(jīng)常沒(méi)有最終系統(tǒng)的所有輸入和輸出設(shè)備。在這種情況下,Semihosting可讓主機(jī)代替目標(biāo)系統(tǒng)提供這些設(shè)備的功能。舉例來(lái)說(shuō),此機(jī)制可以用于啟用C庫(kù)中的函數(shù)(例如,printf()和scanf())使用主機(jī)的屏幕和鍵盤(pán),而不使用目標(biāo)系統(tǒng)的屏幕和鍵盤(pán)。
半主機(jī)由一組已定義的SWI操作來(lái)實(shí)現(xiàn)。應(yīng)用程序調(diào)用相應(yīng)的SWI,然后由調(diào)試代理程序(Debug Agent)處理SWI異常。調(diào)試代理程序完成系統(tǒng)與主機(jī)之間的通信。
圖13.1顯示了Semihosting機(jī)制的處理過(guò)程。

圖13.1 Semihosting機(jī)制的處理過(guò)程
在很多情況下,Semihosting SWI由庫(kù)函數(shù)內(nèi)的代碼調(diào)用。應(yīng)用程序也可以直接調(diào)用。支持ARM C庫(kù)中Semihosting的詳細(xì)信息,請(qǐng)參閱ARM相關(guān)文檔。
2.Semihosting軟件接口
ARM和Thumb SWI指令包含一個(gè)軟中斷號(hào),該中斷號(hào)可以被應(yīng)用程序使用。此編號(hào)可以由系統(tǒng)中的SWI處理程序進(jìn)行解碼。有關(guān)SWI處理程序的詳細(xì)信息,請(qǐng)參閱本書(shū)中ARM異常處理一節(jié)。
Semihosting使用固定的中斷號(hào)調(diào)用相應(yīng)的處理程序。用于Semihosting的SWI是:
· 0x123456(在ARM狀態(tài)下);
· 0xAB(在Thumb狀態(tài)下)。
注意用戶在編寫(xiě)自己的中斷處理程序時(shí),避免使用Semihosting已經(jīng)使用的中斷向量號(hào)。
調(diào)試代理通過(guò)SWI的中斷向量號(hào)識(shí)別該軟中斷是目標(biāo)系統(tǒng)提出的Semihosting請(qǐng)求。具體是何種Semihosting請(qǐng)求(鍵盤(pán)輸入請(qǐng)求或屏幕顯示請(qǐng)求),通過(guò)向寄存器r0傳遞不同的參數(shù)進(jìn)行區(qū)分。所有其他參數(shù)通過(guò)一個(gè)數(shù)據(jù)塊進(jìn)行傳遞。該數(shù)據(jù)塊的地址通過(guò)寄存器r1傳遞給中斷處理程序。軟中斷的處理結(jié)果放在r0中返回,也可以通過(guò)顯式的返回值或傳遞數(shù)據(jù)塊的指針帶回程序的處理結(jié)果。即使未返回結(jié)果,也假定r0是被使用的。
用r0傳遞的可用Semihosting操作編號(hào)分配如下:
· 0x00-0x31 這些編號(hào)由ARM公司使用;
· 0x32-0xFF 這些編號(hào)由ARM公司保留,以備將來(lái)使用;
· 0x100-0x1FF 這些編號(hào)保留給用戶應(yīng)用程序。
注意雖然這些編號(hào)ARM公司不使用,用戶可以使用這些編號(hào)編寫(xiě)自己的SWI操作,但建議使用其他 SWI 編號(hào),而不要使用Semihosting SWI 編號(hào)和這些Semihosting的預(yù)留操作類(lèi)型編號(hào)。
· 0x200-0xFFFFFFFF這些編號(hào)未定義。當(dāng)前未使用并且不推薦使用這些編號(hào)。
在以下部分中,操作名稱(chēng)之后的括號(hào)中的編號(hào)是調(diào)用Semihosting操作時(shí)放入r0的值。例如,SYS_OPEN(0x01)。
如果從匯編語(yǔ)言代碼中調(diào)用SWI,最好使用semihost.h中定義的操作名稱(chēng)??梢杂?EQU 偽操作定義操作名稱(chēng)。例如:
SYS_OPEN EQU 0x01
SYS_CLOSE EQU 0x02
3.Semihosting需求函數(shù)
Semihosting需要的函數(shù)列表如表13.1所示。如果使用默認(rèn)的Semihosting功能,用戶不需要編寫(xiě)任何其他代碼。也可以重新實(shí)現(xiàn)部分的輸入/輸出函數(shù),使這些函數(shù)和標(biāo)準(zhǔn)Semihosting混合使用。
表13.1 Semihosting函數(shù)列表
函 數(shù) 名 稱(chēng)描 述
SYS_OPEN (0x01)打開(kāi)文件
SYS_CLOSE(0x02)關(guān)閉使用SYS_OPEN打開(kāi)的文件
SYS_WRITEC (0x03)向控制臺(tái)輸出字符
SYS_WRITE0 (0x04)將空終止的字符串寫(xiě)入控制臺(tái)
SYS_WRITE (0x05)寫(xiě)入主機(jī)上的文件
續(xù)表
函 數(shù) 名 稱(chēng)描 述
SYS_READ (0x06)將文件內(nèi)容讀取到緩存器
SYS_READC (0x07)從控制臺(tái)讀取字節(jié)
SYS_ISERROR (0x08)確定返回代碼是否錯(cuò)誤
SYS_ISTTY (0x09)檢查文件是否連接到交互設(shè)備
SYS_SEEK (0x0A)搜索到文件中的某個(gè)位置
SYS_FLEN (0x0C)返回文件的長(zhǎng)度
SYS_TMPNAM (0x0D)返回文件的臨時(shí)名稱(chēng)
SYS_REMOVE (0x0E)刪除主機(jī)上的文件
SYS_RENAME (0x0F)重命名主機(jī)上的文件
SYS_CLOCK (0x10)執(zhí)行開(kāi)始后的厘秒數(shù)
SYS_TIME (0x11)1970 年 1 月 1 日到現(xiàn)在的秒數(shù)
SYS_SYSTEM (0x12)將命令傳遞給主機(jī)命令行解釋程序
SYS_ERRNO (0x13)獲得 C 庫(kù) errno 變量的值
SYS_GET_CMDLINE (0x15)獲得用于調(diào)用可執(zhí)行程序的命令行
SYS_HEAPINFO (0x16)獲得系統(tǒng)堆參數(shù)
SYS_ELAPSED (0x30)獲得自執(zhí)行開(kāi)始的目標(biāo)滴答聲數(shù)目
SYS_TICKFREQ (0x31)確定滴答聲的頻率
13.2.2 C 庫(kù)結(jié)構(gòu)
從概念上來(lái)講,C庫(kù)函數(shù)可被化分成兩類(lèi),一類(lèi)為ISO C語(yǔ)言的規(guī)范部分,該部分的主要功能是向用戶提供一個(gè)調(diào)用接口;另一類(lèi)為ISO C語(yǔ)言規(guī)范提供支持。圖13.2顯示了這兩類(lèi)函數(shù)在C庫(kù)中的結(jié)構(gòu)。

圖13.2 C庫(kù)的函數(shù)結(jié)構(gòu)
對(duì)部分ISO C功能的支持是由主機(jī)調(diào)試環(huán)境在支持函數(shù)的設(shè)備驅(qū)動(dòng)程序級(jí)別提供的。
例如,RVCT C庫(kù)通過(guò)寫(xiě)入調(diào)試器控制臺(tái)窗口來(lái)實(shí)現(xiàn)ISO C printf()系列函數(shù)。通過(guò)調(diào)用__sys_write()來(lái)提供該功能。這是一個(gè)執(zhí)行半主機(jī)SWI的支持函數(shù),使字符串被寫(xiě)入到控制臺(tái)。
多數(shù)嵌入式應(yīng)用程序最初都是在原型環(huán)境下開(kāi)發(fā)的。無(wú)論什么樣的原型仿真環(huán)境與最終產(chǎn)品環(huán)境都是有差異的。因此,考慮如何將嵌入式應(yīng)用程序從其所依賴(lài)的開(kāi)發(fā)工具或調(diào)試環(huán)境中移植到在目標(biāo)硬件上獨(dú)立運(yùn)行是非常重要的。
開(kāi)始編寫(xiě)嵌入式應(yīng)用程序時(shí),開(kāi)發(fā)者可能并不清楚目標(biāo)硬件的具體規(guī)格。如,目標(biāo)系統(tǒng)使用了什么樣的外圍設(shè)備、存儲(chǔ)器映射情況甚至不能確定處理器的型號(hào)。
為在了解這些詳細(xì)信息前能夠繼續(xù)軟件的開(kāi)發(fā),RVCT工具提供了很多默認(rèn)的操作,使用戶能編譯和調(diào)試與目標(biāo)系統(tǒng)無(wú)關(guān)的應(yīng)用程序代碼。下面詳細(xì)介紹這些編譯選項(xiàng),只有深入了解這些編譯選項(xiàng)設(shè)置,才能使開(kāi)發(fā)更順利的進(jìn)行。
13.2.1 Semihosting
1.Semihosting簡(jiǎn)介
在RVCT C庫(kù)中,對(duì)某些ISO C功能的支持由主機(jī)調(diào)試環(huán)境提供。提供該功能的機(jī)制被稱(chēng)為Semihostin[1]。大多數(shù)的ARM調(diào)試系統(tǒng)都支持Semihosting機(jī)制,如ReslView Debugger AXD等。
調(diào)試系統(tǒng)提供這種機(jī)制是非常有用的,因?yàn)橛糜陂_(kāi)發(fā)使用的硬件系統(tǒng)經(jīng)常沒(méi)有最終系統(tǒng)的所有輸入和輸出設(shè)備。在這種情況下,Semihosting可讓主機(jī)代替目標(biāo)系統(tǒng)提供這些設(shè)備的功能。舉例來(lái)說(shuō),此機(jī)制可以用于啟用C庫(kù)中的函數(shù)(例如,printf()和scanf())使用主機(jī)的屏幕和鍵盤(pán),而不使用目標(biāo)系統(tǒng)的屏幕和鍵盤(pán)。
半主機(jī)由一組已定義的SWI操作來(lái)實(shí)現(xiàn)。應(yīng)用程序調(diào)用相應(yīng)的SWI,然后由調(diào)試代理程序(Debug Agent)處理SWI異常。調(diào)試代理程序完成系統(tǒng)與主機(jī)之間的通信。
圖13.1顯示了Semihosting機(jī)制的處理過(guò)程。

圖13.1 Semihosting機(jī)制的處理過(guò)程
在很多情況下,Semihosting SWI由庫(kù)函數(shù)內(nèi)的代碼調(diào)用。應(yīng)用程序也可以直接調(diào)用。支持ARM C庫(kù)中Semihosting的詳細(xì)信息,請(qǐng)參閱ARM相關(guān)文檔。
2.Semihosting軟件接口
ARM和Thumb SWI指令包含一個(gè)軟中斷號(hào),該中斷號(hào)可以被應(yīng)用程序使用。此編號(hào)可以由系統(tǒng)中的SWI處理程序進(jìn)行解碼。有關(guān)SWI處理程序的詳細(xì)信息,請(qǐng)參閱本書(shū)中ARM異常處理一節(jié)。
Semihosting使用固定的中斷號(hào)調(diào)用相應(yīng)的處理程序。用于Semihosting的SWI是:
· 0x123456(在ARM狀態(tài)下);
· 0xAB(在Thumb狀態(tài)下)。
調(diào)試代理通過(guò)SWI的中斷向量號(hào)識(shí)別該軟中斷是目標(biāo)系統(tǒng)提出的Semihosting請(qǐng)求。具體是何種Semihosting請(qǐng)求(鍵盤(pán)輸入請(qǐng)求或屏幕顯示請(qǐng)求),通過(guò)向寄存器r0傳遞不同的參數(shù)進(jìn)行區(qū)分。所有其他參數(shù)通過(guò)一個(gè)數(shù)據(jù)塊進(jìn)行傳遞。該數(shù)據(jù)塊的地址通過(guò)寄存器r1傳遞給中斷處理程序。軟中斷的處理結(jié)果放在r0中返回,也可以通過(guò)顯式的返回值或傳遞數(shù)據(jù)塊的指針帶回程序的處理結(jié)果。即使未返回結(jié)果,也假定r0是被使用的。
用r0傳遞的可用Semihosting操作編號(hào)分配如下:
· 0x00-0x31 這些編號(hào)由ARM公司使用;
· 0x32-0xFF 這些編號(hào)由ARM公司保留,以備將來(lái)使用;
· 0x100-0x1FF 這些編號(hào)保留給用戶應(yīng)用程序。
· 0x200-0xFFFFFFFF這些編號(hào)未定義。當(dāng)前未使用并且不推薦使用這些編號(hào)。
在以下部分中,操作名稱(chēng)之后的括號(hào)中的編號(hào)是調(diào)用Semihosting操作時(shí)放入r0的值。例如,SYS_OPEN(0x01)。
如果從匯編語(yǔ)言代碼中調(diào)用SWI,最好使用semihost.h中定義的操作名稱(chēng)??梢杂?EQU 偽操作定義操作名稱(chēng)。例如:
SYS_OPEN EQU 0x01
SYS_CLOSE EQU 0x02
3.Semihosting需求函數(shù)
Semihosting需要的函數(shù)列表如表13.1所示。如果使用默認(rèn)的Semihosting功能,用戶不需要編寫(xiě)任何其他代碼。也可以重新實(shí)現(xiàn)部分的輸入/輸出函數(shù),使這些函數(shù)和標(biāo)準(zhǔn)Semihosting混合使用。
表13.1 Semihosting函數(shù)列表
函 數(shù) 名 稱(chēng)描 述
SYS_OPEN (0x01)打開(kāi)文件
SYS_CLOSE(0x02)關(guān)閉使用SYS_OPEN打開(kāi)的文件
SYS_WRITEC (0x03)向控制臺(tái)輸出字符
SYS_WRITE0 (0x04)將空終止的字符串寫(xiě)入控制臺(tái)
SYS_WRITE (0x05)寫(xiě)入主機(jī)上的文件
續(xù)表
函 數(shù) 名 稱(chēng)描 述
SYS_READ (0x06)將文件內(nèi)容讀取到緩存器
SYS_READC (0x07)從控制臺(tái)讀取字節(jié)
SYS_ISERROR (0x08)確定返回代碼是否錯(cuò)誤
SYS_ISTTY (0x09)檢查文件是否連接到交互設(shè)備
SYS_SEEK (0x0A)搜索到文件中的某個(gè)位置
SYS_FLEN (0x0C)返回文件的長(zhǎng)度
SYS_TMPNAM (0x0D)返回文件的臨時(shí)名稱(chēng)
SYS_REMOVE (0x0E)刪除主機(jī)上的文件
SYS_RENAME (0x0F)重命名主機(jī)上的文件
SYS_CLOCK (0x10)執(zhí)行開(kāi)始后的厘秒數(shù)
SYS_TIME (0x11)1970 年 1 月 1 日到現(xiàn)在的秒數(shù)
SYS_SYSTEM (0x12)將命令傳遞給主機(jī)命令行解釋程序
SYS_ERRNO (0x13)獲得 C 庫(kù) errno 變量的值
SYS_GET_CMDLINE (0x15)獲得用于調(diào)用可執(zhí)行程序的命令行
SYS_HEAPINFO (0x16)獲得系統(tǒng)堆參數(shù)
SYS_ELAPSED (0x30)獲得自執(zhí)行開(kāi)始的目標(biāo)滴答聲數(shù)目
SYS_TICKFREQ (0x31)確定滴答聲的頻率
13.2.2 C 庫(kù)結(jié)構(gòu)
從概念上來(lái)講,C庫(kù)函數(shù)可被化分成兩類(lèi),一類(lèi)為ISO C語(yǔ)言的規(guī)范部分,該部分的主要功能是向用戶提供一個(gè)調(diào)用接口;另一類(lèi)為ISO C語(yǔ)言規(guī)范提供支持。圖13.2顯示了這兩類(lèi)函數(shù)在C庫(kù)中的結(jié)構(gòu)。

圖13.2 C庫(kù)的函數(shù)結(jié)構(gòu)
對(duì)部分ISO C功能的支持是由主機(jī)調(diào)試環(huán)境在支持函數(shù)的設(shè)備驅(qū)動(dòng)程序級(jí)別提供的。
例如,RVCT C庫(kù)通過(guò)寫(xiě)入調(diào)試器控制臺(tái)窗口來(lái)實(shí)現(xiàn)ISO C printf()系列函數(shù)。通過(guò)調(diào)用__sys_write()來(lái)提供該功能。這是一個(gè)執(zhí)行半主機(jī)SWI的支持函數(shù),使字符串被寫(xiě)入到控制臺(tái)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式軟件開(kāi)發(fā)的特點(diǎn)、設(shè)計(jì)流程、嵌入式軟件的結(jié)構(gòu)
- 嵌入式軟件開(kāi)發(fā)需要懂的硬件基礎(chǔ)
- 嵌入式軟件開(kāi)發(fā)做什么?嵌入式開(kāi)發(fā)培訓(xùn)學(xué)哪些
- 嵌入式軟件開(kāi)發(fā)是什么??
- 嵌入式軟件開(kāi)發(fā)環(huán)境
- 關(guān)于做嵌入式軟件開(kāi)發(fā)和普通桌面軟件開(kāi)發(fā)的區(qū)別問(wèn)題
- 設(shè)計(jì)的帶嵌入式收發(fā)器的Gen1×1硬核IP的 PCI Express IP編譯器
- 使用ARM核的嵌入式軟件開(kāi)發(fā)環(huán)境與技術(shù)詳細(xì)介紹 8次下載
- 基于嵌入式軟件開(kāi)發(fā)中構(gòu)件技術(shù)的研究 6次下載
- 嵌入式交叉編譯環(huán)境的搭建解析 1次下載
- ARM嵌入式軟件開(kāi)發(fā) 65次下載
- Eclipse嵌入式軟件開(kāi)發(fā)平臺(tái) 55次下載
- 嵌入式軟件開(kāi)發(fā)與Embedded-GIS 36次下載
- 基于嵌入式操作系統(tǒng)的開(kāi)發(fā)方法
- 嵌入式軟件開(kāi)發(fā)系列教程 (很多本書(shū))
- 嵌入式軟件開(kāi)發(fā)和軟件開(kāi)發(fā)的區(qū)別 3.8k次閱讀
- 嵌入式開(kāi)發(fā)中的交叉編譯詳解 2.3k次閱讀
- 如何為嵌入式軟件開(kāi)發(fā)選擇編譯器 975次閱讀
- 深入淺出編譯優(yōu)化選項(xiàng)(上) 3.1k次閱讀
- 如何為嵌入式軟件開(kāi)發(fā)選擇編譯器 1.6k次閱讀
- 嵌入式軟件架構(gòu)設(shè)計(jì)之程序分層 2.7k次閱讀
- C編譯器的缺省字節(jié)對(duì)齊方式(自然對(duì)界) 2.9k次閱讀
- 基于UML嵌入式軟件開(kāi)發(fā)環(huán)境的自動(dòng)取款機(jī)系統(tǒng)的應(yīng)用方案 4.3k次閱讀
- 詳解嵌入式軟件開(kāi)發(fā)到FPGA開(kāi)發(fā) 7k次閱讀
- 把軟件項(xiàng)目管理方法引入嵌入式系統(tǒng)的開(kāi)發(fā)之中的設(shè)計(jì)淺析 2.6k次閱讀
- 嵌入式軟件開(kāi)發(fā)編程規(guī)范介紹 5k次閱讀
- 嵌入式軟件開(kāi)發(fā)的這些編程規(guī)范你了解嗎 4.6k次閱讀
- 物聯(lián)網(wǎng)的產(chǎn)業(yè)生態(tài)是怎樣的詳細(xì)分析概述 5.7k次閱讀
- 學(xué)嵌入式開(kāi)發(fā)入門(mén)_學(xué)嵌入式開(kāi)發(fā)需要看哪些書(shū)籍 3.9w次閱讀
- 嵌入式開(kāi)發(fā)就業(yè)前景分析_嵌入式領(lǐng)域的職業(yè)發(fā)展方向 2w次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說(shuō)明書(shū)
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費(fèi)
- 4丹佛斯2800系列變頻器說(shuō)明書(shū)
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開(kāi)關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊(cè)
- 0.74 MB | 1次下載 | 免費(fèi)
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測(cè)距模塊產(chǎn)品手冊(cè)
- 0.43 MB | 1次下載 | 免費(fèi)
- 8SDFM 激光測(cè)距模塊模組手冊(cè)
- 0.54 MB | 1次下載 | 免費(fèi)
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場(chǎng)分析及創(chuàng)新應(yīng)用
- 3.11 MB | 43次下載 | 免費(fèi)
- 3RV1126B系列開(kāi)發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費(fèi)
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開(kāi)發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場(chǎng)景
- 3.05 MB | 12次下載 | 免費(fèi)
- 6【開(kāi)源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門(mén)學(xué)習(xí)資源包
- 10.55 MB | 8次下載 | 免費(fèi)
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車(chē)載充電機(jī)主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論