深入了解嵌入式,嵌入式系統(tǒng)結構你真的學會了?
嵌入式系統(tǒng)說白了,就是針對某個應用的計算機系統(tǒng)!進一步說,嵌入式系統(tǒng)是針對某個應用,軟硬件可裁減的,對體積、功耗等有嚴格要求的一個計算機系統(tǒng)。為增進大家對嵌入式的認識,本文將對嵌入式系統(tǒng)結構以及運行方式予以介紹。如果你對嵌入式具有興趣,不妨繼續(xù)往下閱讀哦。
嵌入式系統(tǒng)通常包括構成軟件的基本運行環(huán)境的硬件和操作系統(tǒng)兩部分。嵌入式系統(tǒng)的運行環(huán)境和應用場合決定了嵌入式系統(tǒng)具有區(qū)別于其它操作系統(tǒng)的一些特點。
(1)嵌入式處理器
嵌入式處理器可以分為三類:嵌入式微處理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。嵌入式微處理器就是和通用計算機的微處理器對應的CPU。在應用中,一般是將微處理器裝配在專門設計的電路板上,在母板上只保留和嵌入式相關的功能即可,這樣可以滿足嵌入式系統(tǒng)體積小和功耗低的要求。目前的嵌入式處理器主要包括:PowerPC、Motorola 68000、ARM系列等等。
嵌入式微控制器又稱為單片機,它將CPU、存儲器(少量的RAM、ROM或兩者都有)和其它外設封裝在同一片集成電路里。常見的有8051。
嵌入式DSP專門用來對離散時間信號進行極快的處理計算,提高編譯效率和執(zhí)行速度。在數字濾波、FFT、譜分析、圖像處理的分析等領域,DSP正在大量進入嵌入式市場。
(2)微內核結構
大多數操作系統(tǒng)至少被劃分為內核層和應用層兩個層次。內核只提供基本的功能,如建立和管理進程、提供文件系統(tǒng)、管理設備等,這些功能以系統(tǒng)調用方式提供給用戶。一些桌面操作系統(tǒng),如Windows、Linux等,將許多功能引入內核,操作系統(tǒng)的內核變得越來越大。內核變大使得占用的資源增多,剪裁起來很麻煩。
大多數嵌入式操作系統(tǒng)采用了微內核結構,內核只提供基本的功能,比如:任務的調度、任務之間的通信與同步、內存管理、時鐘管理等。其它的應用組件,比如網絡功能、文件系統(tǒng)、GUI系統(tǒng)等均工作在用戶態(tài),以系統(tǒng)進程或函數調用的方式工作。因而系統(tǒng)都是可裁減的,用戶可以根據自己的需要選用相應的組件。
(3)任務調度
在嵌入式系統(tǒng)中,任務即線程。大多數的嵌入式操作系統(tǒng)支持多任務。多任務運行的實現實際是靠CPU在多個任務之間切換、調度。每個任務都有其優(yōu)先級,不同的任務優(yōu)先級可能相同也可能不同。任務的調度有三種方式:可搶占式調度、不可搶占式調度和時間片輪轉調度。不可搶占式調度是指,一個任務一旦獲得CPU就獨占CPU運行,除非由于某種原因,它決定放棄CPU的使用權;可搶占式調度是基于任務優(yōu)先級的,當前正在運行的任務可以隨時讓位給優(yōu)先級更高的處于就緒態(tài)的其它任務;當兩個或兩個以上任務有同樣的優(yōu)先級,不同任務輪轉地使用CPU,直到系統(tǒng)分配的CPU時間片用完,這就是時間片輪轉調度。
目前,大多數嵌入式操作系統(tǒng)對不同優(yōu)先級的任務采用基于優(yōu)先級的搶占式調度法,對相同優(yōu)先級的任務則采用時間片輪轉調度法。
(4)硬實時和軟實時
有些嵌入式系統(tǒng)對時間的要求較高,稱之為實時系統(tǒng)。有兩種類型的實時系統(tǒng):硬實時系統(tǒng)和軟實時系統(tǒng)。軟實時系統(tǒng)并不要求限定某一任務必須在一定的時間內完成,只要求各任務運行得越快越好;硬實時系統(tǒng)對系統(tǒng)響應時間有嚴格要求,一旦系統(tǒng)響應時間不能滿足,就可能會引起系統(tǒng)崩潰或致命的錯誤,一般在工業(yè)控制中應用較多。
(5)內存管理
針對有內存管理單元(MMU)的處理器設計的一些桌面操作系統(tǒng),如Windows、Linux,使用了虛擬存儲器的概念。虛擬內存地址被送到MMU。在這里,虛擬地址被映射為物理地址,實際存儲器被分割為相同大小的頁面,采用分頁的方式載入進程。一個程序在運行之前,沒有必要全部裝入內存,而是僅將那些當前要運行的部分頁面裝入內存運行。
大多數嵌入式系統(tǒng)針對沒有MMU的處理器設計,不能使用處理器的虛擬內存管理技術,采用的是實存儲器管理策略。因而對于內存的訪問是直接的,它對地址的訪問不需要經過MMU,而是直接送到地址線上輸出,所有程序中訪問的地址都是實際的物理地址;而且,大多數嵌入式操作系統(tǒng)對內存空間沒有保護,各個進程實際上共享一個運行空間。一個進程在執(zhí)行前,系統(tǒng)必須為它分配足夠的連續(xù)地址空間,然后全部載入主存儲器的連續(xù)空間。
由此可見,嵌入式系統(tǒng)的開發(fā)人員不得不參與系統(tǒng)的內存管理。從編譯內核開始,開發(fā)人員必須告訴系統(tǒng)這塊開發(fā)板到底擁有多少內存;在開發(fā)應用程序時,必須考慮內存的分配情況并關注應用程序需要運行空間的大小。另外,由于采用實存儲器管理策略,用戶程
序同內核以及其它用戶程序在一個地址空間,程序開發(fā)時要保證不侵犯其它程序的地址空間,以使得程序不至于破壞系統(tǒng)的正常工作,或導致其它程序的運行異常;因而,嵌入式系統(tǒng)的開發(fā)人員對軟件中的一些內存操作要格外小心。
(6)內核加載方式
嵌入式操作系統(tǒng)內核可以在Flash上直接運行,也可以加載到內存中運行。Flash的運行方式,是把內核的可執(zhí)行映像燒寫到Flash上,系統(tǒng)啟動時從Flash的某個地址開始執(zhí)行。這種方法實際上是很多嵌入式系統(tǒng)所采用的方法。內核加載方式是把內核的壓縮文件存放在Flash上,系統(tǒng)啟動時讀取壓縮文件在內存里解壓,然后開始執(zhí)行。這種方式相對復雜一些,但是運行速度可能更快,因為RAM的存取速率要比Flash高。
由于嵌入式系統(tǒng)的內存管理機制,嵌入式操作系統(tǒng)對用戶程序采用靜態(tài)鏈接的形式。在嵌入式系統(tǒng)中,應用程序和操作系統(tǒng)內核代碼編譯、鏈接生成一個二進制影像文件來運行。
以上便是此次帶來的嵌入式相關內容,通過本文,希望大家對嵌入式已經具備一定的了解。如果你喜歡本文,不妨持續(xù)關注我們網站哦,將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!