- 相關(guān)推薦
嵌入式系統關(guān)鍵技術(shù)分析與開(kāi)發(fā)應用
摘要:基于嵌入式系統的概念,闡述嵌入式系統的關(guān)鍵技術(shù)、嵌入式開(kāi)發(fā)以及廣泛的應用。首先,分析嵌入式系統的技術(shù)特點(diǎn),分別從嵌入式處理器和嵌入式操作系統兩方面介紹,著(zhù)重說(shuō)明它不同于其它操作系統的一些處理方法和過(guò)程;在此基礎上闡述嵌入式軟件的開(kāi)發(fā)過(guò)程,并結合作者嵌入式軟件開(kāi)發(fā)的實(shí)踐,著(zhù)重闡述嵌入式軟件的一些開(kāi)發(fā)技巧。接著(zhù),介紹目前嵌入式系統一些流行的應用,以及南京東大移動(dòng)互聯(lián)技術(shù)有限公司自行研制的基于藍牙技術(shù)的嵌入式產(chǎn)品。最后,給出作者的體會(huì ),展望嵌入式系統的前景。引 言
在當前數字信息技術(shù)和網(wǎng)絡(luò )技術(shù)高速發(fā)展的后PC(Post-PC)時(shí)代,嵌入式系統已經(jīng)廣泛地滲透到科學(xué)研究、工程設計、軍事技術(shù)、各類(lèi)產(chǎn)業(yè)和商業(yè)文化藝術(shù)以及人們的日常生活等方方面面中。隨著(zhù)國內外各種嵌入式產(chǎn)品的進(jìn)一步開(kāi)發(fā)和推廣,嵌入式技術(shù)越來(lái)越和人們的生活緊密結合。
1970年左右出現了嵌入式系統的概念,此時(shí)的嵌入式系統很多都不采用操作系統,它們只是為了實(shí)現某個(gè)控制功能,使用一個(gè)簡(jiǎn)單的循環(huán)控制對外界的控制請求進(jìn)行處理。當應用系統越來(lái)越復雜、利用的范圍越來(lái)越廣泛的時(shí)候,每添加一項新的功能,都可能需要從頭開(kāi)始設計。沒(méi)有操作系統已成為一個(gè)最大的缺點(diǎn)了。
C語(yǔ)言的出現使操作系統開(kāi)發(fā)變得簡(jiǎn)單。從上世紀80年代開(kāi)始,出現了各種各樣的商用嵌入式操作系統百家爭鳴的局面,比較著(zhù)名的有VxWorks、pSOS和Windows CE等等,這些操作系統大部分是為專(zhuān)有系統而開(kāi)發(fā)的。另外,源代碼開(kāi)放的嵌入式Linux,由于其強大的網(wǎng)絡(luò )功能和低成本,近來(lái)也得到了越來(lái)越多的應用。
1 嵌入式系統的技術(shù)特點(diǎn)
嵌入式系統通常包括構成軟件的基本運行環(huán)境的硬件和操作系統兩部分。嵌入式系統的運行環(huán)境和應用場(chǎng)合決定了嵌入式系統具有區別于其它操作系統的一些特點(diǎn)。
(1)嵌入式處理器
嵌入式處理器可以分為三類(lèi):嵌入式微處理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。嵌入式微處理器就是和通用計算機的微處理器對應的CPU。在應用中,一般是將微處理器裝配在專(zhuān)門(mén)設計的電路板上,在母板上只保留和嵌入式相關(guān)的功能即可,這樣可以滿(mǎn)足嵌入式系統體積小和功耗低的要求。目前的嵌入式處理器主要包括:PowerPC、Motorola 68000、ARM系列等等。
嵌入式微控制器又稱(chēng)為單片機,它將CPU、存儲器(少量的RAM、ROM或兩者都有)和其它外設封裝在同一片集成電路里。常見(jiàn)的有8051。
嵌入式DSP專(zhuān)門(mén)用來(lái)對離散時(shí)間信號進(jìn)行極快的處理計算,提高編譯效率和執行速度。在數字濾波、FFT、譜分析、圖像處理的分析等領(lǐng)域,DSP正在大量進(jìn)入嵌入式市場(chǎng)。
(2)微內核結構
大多數操作系統至少被劃分為內核層和應用層兩個(gè)層次。內核只提供基本的功能,如建立和管理進(jìn)程、提供文件系統、管理設備等,這些功能以系統調用方式提供給用戶(hù)。一些桌面操作系統,如Windows、Linux等,將許多功能引入內核,操作系統的內核變得越來(lái)越大。內核變大使得占用的資源增多,剪裁起來(lái)很麻煩。
大多數嵌入式操作系統采用了微內核結構,內核只提供基本的功能,比如:任務(wù)的調度、任務(wù)之間的通信與同步、內存管理、時(shí)鐘管理等。其它的應用組件,比如網(wǎng)絡(luò )功能、文件系統、GUI系統等均工作在用戶(hù)態(tài),以系統進(jìn)程或函數調用的方式工作。因而系統都是可裁減的,用戶(hù)可以根據自己的需要選用相應的組件。
(3)任務(wù)調度
在嵌入式系統中,任務(wù)即線(xiàn)程。大多數的嵌入式操作系統支持多任務(wù)。多任務(wù)運行的實(shí)現實(shí)際是靠CPU在多個(gè)任務(wù)之間切換、調度。每個(gè)任務(wù)都有其優(yōu)先級,不同的任務(wù)優(yōu)先級可能相同也可能不同。任務(wù)的調度有三種方式:可搶占式調度、不可搶占式調度和時(shí)間片輪轉調度。不可搶占式調度是指,一個(gè)任務(wù)一旦獲得CPU就獨占CPU運行,除非由于某種原因,它決定放棄CPU的使用權;可搶占式調度是基于任務(wù)優(yōu)先級的,當前正在運行的任務(wù)可以隨時(shí)讓位給優(yōu)先級更高的處于就緒態(tài)的其它任務(wù);當兩個(gè)或兩個(gè)以上任務(wù)有同樣的優(yōu)先級,不同任務(wù)輪轉地使用CPU,直到系統分配的CPU時(shí)間片用完,這就是時(shí)間片輪轉調度。
目前,大多數嵌入式操作系統對不同優(yōu)先級的任務(wù)采用基于優(yōu)先級的搶占式調度法,對相同優(yōu)先級的任務(wù)則采用時(shí)間片輪轉調度法。
(4)硬實(shí)時(shí)和軟實(shí)時(shí)
有些嵌入式系統對時(shí)間的要求較高,稱(chēng)之為實(shí)時(shí)系統。有兩種類(lèi)型的實(shí)時(shí)系統:硬實(shí)時(shí)系統和軟實(shí)時(shí)系統。軟實(shí)時(shí)系統并不要求限定某一任務(wù)必須在一定的時(shí)間內完成,只要求各任務(wù)運行得越快越好;硬實(shí)時(shí)系統對系統響應時(shí)間有嚴格要求,一旦系統響應時(shí)間不能滿(mǎn)足,就可能會(huì )引起系統崩潰或致命的錯誤,一般在工業(yè)控制中應用較多。
(5)內存管理
針對有內存管理單元(MMU)的處理器設計的一些桌面操作系統,如Windows、Linux,使用了虛擬存儲器的概念。虛擬內存地址被送到MMU。在這里,虛擬地址被映射為物理地址,實(shí)際存儲器被分割為相同大小的頁(yè)面,采用分頁(yè)的方式載入進(jìn)程。一個(gè)程序在運行之前,沒(méi)有必要全部裝入內存,而是僅將那些當前要運行的部分頁(yè)面裝入內存運行。
大多數嵌入式系統針對沒(méi)有MMU的處理器設計,不能使用處理器的虛擬內存管理技術(shù),采用的是實(shí)存儲器管理策略。因而對于內存的訪(fǎng)問(wèn)是直接的,它對地址的訪(fǎng)問(wèn)不需要經(jīng)過(guò)MMU,而是直接送到地址線(xiàn)上輸出,所有程序中訪(fǎng)問(wèn)的地址都是實(shí)際的物理地址;而且,大多數嵌入式操作系統對內存空間沒(méi)有保護,各個(gè)進(jìn)程實(shí)際上共享一個(gè)運行空間。一個(gè)進(jìn)程在執行前,系統必須為它分配足夠的連續地址空間,然后全部載入主存儲器的連續空間。
由此可見(jiàn),嵌入式系統的開(kāi)發(fā)人員不得不參與系統的內存管理。從編譯內核開(kāi)始,開(kāi)發(fā)人員必須告訴系統這塊開(kāi)發(fā)板到底擁有多少內存;在開(kāi)發(fā)應用程序時(shí),必須考慮內存的分配情況并關(guān)注應用程序需要運行空間的大小。另外,由于采用實(shí)存儲器管理策略,用戶(hù)程序同內核以及其它用戶(hù)程序在一個(gè)地址空間,程序開(kāi)發(fā)時(shí)要保證不侵犯其它程序的地址空間,以使得程序不至于破壞系統的正常工作,或導致其它程序的運行異常;因而,嵌入式系統的開(kāi)發(fā)人員對軟件中的一些內存操作要格外小心。
(6)內核加載方式
嵌入式操作系統內核可以在Flash上直接運行,也可以加載到內存中運行。Flash的運行方式,是把內核的可執行映像燒寫(xiě)到Flash上,系統啟動(dòng)時(shí)從Flash的某個(gè)地址開(kāi)始執行。這種方法實(shí)際上是很多嵌入式系統所采用的方法。內核加載方式是把內核的壓縮文件存放在Flash上,系統啟動(dòng)時(shí)讀取壓縮文件在內存里
【嵌入式系統關(guān)鍵技術(shù)分析與開(kāi)發(fā)應用】相關(guān)文章:
嵌入式系統的應用及發(fā)展03-05
嵌入式系統的現狀分析03-03
嵌入式系統開(kāi)發(fā)要素的選擇分析嵌入式處理器(一)03-07
嵌入式Linux系統及其應用前景03-18
UML 在嵌入式系統設計中的應用03-18
嵌入式Linux系統下Microwindows的應用03-19