嵌入式系統(tǒng)中的處理器技術(shù)
2 嵌入式處理器芯片的開發(fā)
2.1 一般開發(fā)過程
盡管有幾千種現(xiàn)成的芯片可供選擇,但是許多設(shè)計者需要與眾不同的特性。因此,他們開發(fā)自己的嵌入式芯片,即所謂的專用集成電路。
設(shè)計人員開始時需要從一家公司取得嵌入式微處理器的內(nèi)核的授權(quán),然后添加他自已應(yīng)用特有的特性。例如,對于數(shù)字照相機處理器來說,他可能為這種電荷耦合設(shè)備的芯片添加1個控制器。又比如,對于具有Internet功能的家電處理器來說,可以添加1個Ethernet接口。設(shè)計者然后將他的設(shè)計交給“鑄造廠”,即一家擁有“工廠”(芯片制造廠)的公司,并將部分制造量出售給其他公司。主要的制造廠有United Microelectronics公司、TSMC公司和IBM Microelectronics公司。
對于一些設(shè)計者來說,甚至這種靈活性還不夠用。他們可以找到某些公司,這些公司擁有可高度定制嵌入式微處理器內(nèi)核的許可證。利用這類內(nèi)核,可以開發(fā)出用于特殊目的的新機器級指令。對于數(shù)字相機處理器而言,1條提高JPEG圖像壓縮率的指令具有很高的價值。對于MP3音樂播放器來說,1條加速音頻解壓縮率的指令具有同樣的用處。然后,定制的設(shè)計交給“鑄造廠”進行生產(chǎn)。
和通用計算機不同,嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計,量體裁衣,去除冗余,力爭在同樣的硅片面積上實現(xiàn)更高的性能,這樣才能在具體應(yīng)用對處理器的選擇面前更具有競爭力。嵌入式處理器要針對用戶的具體需求,對芯片配置進行裁剪和添加才能達到理想的性能;但同時還受用戶訂貨量的制約。因此不同的處理器面向的用戶是不一樣的,可能是一般用戶、行業(yè)用戶或單一用戶。
嵌入式處理器的發(fā)展也體現(xiàn)出穩(wěn)定性,1個體系一般要存在8~lO年的時間。1個體系結(jié)構(gòu)及其相關(guān)的片上外設(shè)、開發(fā)工具、庫函數(shù)、嵌入式應(yīng)用產(chǎn)品是一套復(fù)雜的知識系統(tǒng),用戶和半導(dǎo)體廠商都不會輕易地放棄1種處理器。
2.2 嵌入式系統(tǒng)的開發(fā)工具
嵌入式處理器是一個復(fù)雜的高技術(shù)系統(tǒng),要在短時間內(nèi)掌握并開發(fā)出所有功能是很不容易的,而市場競爭要求產(chǎn)品能夠快速上市,這一矛盾要求嵌入式處理器能夠有容易掌握和使用的開發(fā)工具平臺,提高用戶和程序員的時間一投入回報率。面對成百上千種處理器,選擇是一個問題,學(xué)習(xí)掌握處理器結(jié)構(gòu)及其應(yīng)用更需要時間,因此以開發(fā)工具和技術(shù)咨詢?yōu)榛A(chǔ)的整體解決方案是迫切需要的。好的開發(fā)工具除能夠開發(fā)出處理器的全部功能以外,還應(yīng)當(dāng)對用戶是友好的。
嵌入式系統(tǒng)開發(fā)工具平臺主要包括以下幾類。
2.2.1 實時在線仿真系統(tǒng)
在計算機輔助設(shè)計非常發(fā)達的今天,實時在線仿真系統(tǒng)(InCircuit Emulator,ICE)仍是進行嵌入式應(yīng)用系統(tǒng)調(diào)試最有效的開發(fā)工具。 ICE首先可以通過實際執(zhí)行,對應(yīng)用程序進行原理性檢驗,排除人難以發(fā)現(xiàn)的設(shè)計邏輯錯誤。ICE的另一個主要功能是在應(yīng)用系統(tǒng)中仿真微控制器的實時執(zhí)行,發(fā)現(xiàn)和排除由于硬件干擾等引起的異常執(zhí)行行為。此外,高級的ICE帶有完善的跟蹤功能,可以將應(yīng)用系統(tǒng)的實際狀態(tài)變化、微控制器對狀態(tài)變化的反應(yīng)、以及應(yīng)用系統(tǒng)對控制的響應(yīng)等以一種錄像的方式連續(xù)記錄下來,以供分析,在分析中優(yōu)化控制過程。很多機電系統(tǒng)難以建立精確有效的數(shù)字模型,或是建立模型需要大量人力,這時采用ICE的跟蹤功能對系統(tǒng)進行記錄和分析是一個快而有效的方法。
ICE不僅是軟硬件排錯工具,同時也是提高和優(yōu)化系統(tǒng)性能指標的工具。高檔ICE工具(如美國Nohau公司的產(chǎn)品)可根據(jù)用戶投資裁減功能,亦可根據(jù)需要選擇配置各種檔次的實時邏輯跟蹤器(Trace)、實時映像存儲器(Shadow RAM)及程序效率實時分析功能(PPA)。
2.2.2 高級語言編譯器
C語言作為一種通用的高級語言,大幅度提高了嵌入式系統(tǒng)工程的工作效率,充分發(fā)揮出嵌入式處理器日益提高的性能,縮短產(chǎn)品進入市場時間。另外,C語言便于移植和修改,使產(chǎn)品的升級和繼承更迅速。更重要的是,采用C語言編寫的程序易于在不同的開發(fā)者之間進行交流,從而促進了嵌入式系統(tǒng)開發(fā)的產(chǎn)業(yè)化。
區(qū)別于一般計算機中的C語言編譯器,嵌入式系統(tǒng)中的C語言編譯器要專門進行優(yōu)化,以提高編譯效率。優(yōu)秀的嵌入式系統(tǒng)C編譯器代碼長度和執(zhí)行時間僅比以匯編語言編寫的同樣功能程序長5%~20%。編譯效率的不同,是區(qū)別嵌入式系統(tǒng)C編譯器性能差別的重要根據(jù)之一。而C編譯器殘余的5%~10%效率差別,完全可以由現(xiàn)代微控制器的高速度、大存儲器空間以及產(chǎn)品提前進入市場來彌補。
新型的微控制器指令速度不斷提高,存儲器空間也相應(yīng)加大,已經(jīng)達到甚至超過了目前的通用計算機中的微處理器,為嵌入式系統(tǒng)工程采用過去一直不敢問津的C++語言創(chuàng)造了條件。C++語言強大的類、繼承等功能更便于實現(xiàn)復(fù)雜的程序功能。但是C++語言為了支持復(fù)雜的語法,在代碼生成效率方面不免有所下降。為此,1995年初在日本成立的Embedded C++技術(shù)委員會經(jīng)過幾年的研究,針對嵌入式應(yīng)用制訂了減小代碼尺寸的EC++標準。EC++保留了C++的主要優(yōu)點,提供對C++的向上兼容性,并滿足嵌入式系統(tǒng)設(shè)計的一些特殊要求。在嵌入式高級語言編譯器方面處于領(lǐng)先地位的Tasking公司,是EC++技術(shù)委員會成員之一,也是最先推出EC++產(chǎn)品的公司。
C/C++/EC++引入嵌入式系統(tǒng),使得嵌入式開發(fā)和個人計算機、小型機等在開發(fā)上的差別正在逐漸消除,軟件工程中的很多經(jīng)驗、方法乃至庫函數(shù)可以移植到嵌入式系統(tǒng)。在嵌入式開發(fā)中采用高級語言,還使得硬件開發(fā)和軟件開發(fā)可以分工,從事嵌入式軟件開發(fā)不再必須精通系統(tǒng)硬件和相應(yīng)的指令集匯編。
另一種高級語言Java的發(fā)展則具有戲劇性。Java本來是為設(shè)備獨立的嵌入式系統(tǒng)設(shè)計、為了提高程序繼承性的語言,但是目前基于Java的嵌入式開發(fā)工具代碼生成長度要比嵌入式C編譯工具長10倍以上。因此EC++很可能在未來的一段時間內(nèi)仍是嵌入式系統(tǒng)的主流。
2.2.3 源程序模擬器
源程序模擬器是在廣泛使用的、人機接口完備的工作平臺上,如小型機和PC,通過軟件手段模擬執(zhí)行某種嵌入式處理器內(nèi)核編寫的源程序的測試工具。簡單的模擬器可以通過指令解釋方式逐條執(zhí)行源程序,分配虛擬存儲空間和外設(shè),供程序員檢查;高級的模擬器可以利用計算機的外部接口模擬出處理器的I/O電氣信號。不同檔次和功能模擬器工具價格差距巨大。模擬器軟件獨立于處理器硬件,一般與編譯器集成在同一個環(huán)境中,是一種有效的源程序檢驗和測試工具。但值得注意的是,模擬器畢竟是以一種處理器模擬另一種處理器的運行,在指令執(zhí)行時間、中斷響應(yīng)、定時器等方面很可能與實際處理器有較大差別。另外,它無法和ICE一樣,仿真嵌入式系統(tǒng)在應(yīng)用系統(tǒng)中的實際執(zhí)行情況。
結(jié)語
嵌入式系統(tǒng)是將計算機直接嵌入到應(yīng)用系統(tǒng)中,是信息技術(shù)的最終產(chǎn)品。嵌入式系統(tǒng)的核心就是嵌入式處理器。嵌入式系統(tǒng)是信息產(chǎn)業(yè)走向21世紀知識經(jīng)濟時代的最重要的經(jīng)濟增長點之一,是一個不可壟斷的工業(yè),對中國的信息產(chǎn)業(yè)來說充滿了機遇和挑戰(zhàn)。世界是多樣化的,尤其是已經(jīng)進入后PC時代——無所不在的計算(nomadic computing)將使嵌入式處理器遍及人們能夠想象得到的各個角落,因此,每種處理器都有存在的理由,都有可伸展的方向。這一點應(yīng)特別引起中國信息產(chǎn)業(yè)界的關(guān)注。
評論