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