winCE嵌入式作業系統介紹

2023-02-11 03:03:04 字數 4399 閱讀 1452

windows ce 嵌入式系統

windows ce是microsoft公司的嵌入式作業系統產品。它是乙個緊湊、高效和可擴充套件的作業系統,具有多執行緒、多工、確定性的實時和完全搶先式優先順序的作業系統環境,適合於只有有限硬體資源的硬體系統。作業系統的定製採用模組化設計方式,便於使用者的使用。

支援win32 api和mfc,具有windows程式設計經驗的使用者可迅速掌握其程式設計方法。

第一章緒論

bspbsp是介於主機板硬體和作業系統之間的一層,也可以說是作業系統的一部分,主要目的是為了支援作業系統,使之能夠正常地在主機板上執行.

「嵌入性」、「專用性」和「計算機系統」是嵌入式系統的三個基本要素。

一般情況下,嵌入式作業系統可分為兩類:一類是面向控制和通訊等領域的實時作業系統,如winriver公司的vxworks、isi公司的psos、qnx公司的qnx和ati的nucleus等.另一類是面向消費電子產品的非實時作業系統,

windows ce是乙個實時作業系統.實時支援功能在以下幾個方面提公升了windows ce的效能.

(1)支援巢狀中斷

(2)允許更高優先順序別的中斷首先得到響應,而不是等待低階別的中斷服務執行緒(ist)

(3)更好的執行緒響應能力

(4)對高階別中斷服務執行緒的響應時間上限的要求更加嚴格,**程響應能力方面的改進,可幫助開發人員掌握執行緒轉換的具體時間,並通過增強的監控能力和對硬體的控制能力幫助開發人員建立更好的嵌入式應用程式.

(5)更多的優先級別,256個優先級別可使開發人員在控制嵌入式系統的時序安排方面有更大的靈活性.

(6)更強的控制能力,對系統內的執行緒數量的控制能力可使開發人員更好地掌握排程程式的工作情況.

5 豐富的多**和多語言支援

第二章 windows ce的體系結構和功能

2.1 windows ce的層次結構

2.2 程序、執行緒與排程

2.3 記憶體管理

2.4 儲存管理與檔案系統

2.5 使用者介面與圖形系

2.1.1 微核心結構

windows ce屬於比較典型的微核心作業系統在核心中僅僅實現程序、執行緒、排程及記憶體管理等最基本的模組,而把圖形系統、 檔案系統及裝置驅動程式等等都作為單獨的使用者程序來實現.這樣做顯著地提高了系統的穩定性和靈活性.

作業系統的結構可分為單體核心結構和微核心結構.傳統的unix 是單體核心作業系統的代表.單體核心作業系統將圖形、裝置驅動及檔案系統等功能全部在作業系統核心中實現,執行在核心狀態和同一位址空間.

其優點是減少了程序間通訊和狀態切換的系統開銷,獲得較高的執行效率;缺點是核心龐大,占用資源較多且不易剪裁,一旦每個驅動程式出錯,就會導致整個系統的崩潰,系統的穩定性、安全性不好.

與此相反,微核心系統在核心中只實現那些必須由核心實現的基本功能,而將圖形系統、檔案系統、裝置驅動及通訊等功能在核心之外,以系統服務的形式提供各種功能.這種結構的優點是有乙個精煉的核心,便於剪裁與移植,而且由於系統服務程式執行在使用者位址空間,因而個別驅動程式的錯誤不至於導致整個系統的崩潰;其不足之處是在執行中使用者狀態和核心狀態頻繁地切換 ,從而導致系統效率不如單體核心.

微核心結構用乙個水平分層的結構代替了傳統的縱向分層的結構。在微核心外部的作業系統部件被當作伺服器程序實現,它們可以借助通過微核心傳遞資訊來實現相互之間的互動。

2.1.2 層次化模型

基於windows ce構建的嵌入式系統大致可以分為4個層次,從下到上依次是:硬體層、oem層、作業系統層和應用程式層.

(2)oem層

oem層是邏輯上位於硬體和windows ce作業系統之間的一層硬體相關的**.它的主要作用是對具體的硬體進行抽象,抽象出統一的介面,然後windows ce核心可以使用這些介面和硬體進行通訊.oem層包括oem抽象層、引導程式、配置檔案和驅動程式4個模組.

oem抽象層(oal)是整個oem層的主體.它包含了高度硬體相關的**.oal重要負責windows ce核心與硬體的通訊.

當引導程式引導作業系統結束後,由oal負責硬體平台的初始化,包括中斷服務例程(isr)、實時時鐘(rtc)、定時器(timer)、核心除錯、開關中斷和核心效能監測等工作. oal的**在物理上是核心的一部分,最終經過編譯鏈結,oal會成為核心的一部分.

oem層是windows ce中至關重要的一層,也是windows ce區別於桌面windows重要標誌之一.由於有了oem層,winows ce作業系統才可以執行在不同體系結構的硬體平台上,實現廣泛的硬體支援.

(3)作業系統層作業系統層實現了windws ce作為乙個作業系統的主要功能 .windows ce的程序管理、執行緒管理、排程、物理記憶體和虛擬記憶體管理、檔案系統及裝置管理等功能的實現都位於這一層. 由於windows ce是乙個微核心作業系統.

作業系統的基本功能被放在幾個獨立的程序(exe)裡面實現.在執行時,這些程序大致有如下的幾個: 核心 圖形系統 物件儲存 裝置管理系統 服務

由於windows ce是乙個可剪裁的嵌入式作業系統所以未必所有的windows ce系統中都具有上述的幾個程序,如果有的windows ce不包含圖形介面,那麼這個系統中就不會有其實, 只有和是所有windows ce中都必不可少的.

(i)系統呼叫與

不是乙個單獨的程序,它是乙個會被所有的使用者程序都載入的動態鏈結庫(dynamic link library).所有的應用程式都不能直接與作業系統或硬體打交道,如果應用程式希望訪問 windows ce所提供的服務,那麼只能通過進行.

的主要功能是負責應用程式與windows ce通訊以及完成windows ce的系統呼叫.系統呼叫是作業系統向應用程式提供的服務,一般以函式的形式提供,這些函式通常在應用程式之外的程序中實現.

系統呼叫的詳細過程如下

①當應用程式進行系統呼叫時,它直接呼叫的是 中的乙個包裝(wrapper)函式.此包裝函式為真正的系統呼叫準備所需要的引數.會被所有的使用者程序載入,因此這一步其實只是程序內部的函式呼叫.

②會發起乙個異常,也可以叫做軟體中斷.在不同的cpu體系結構上,異常實現的原理也不一樣.總之,異常的作用是把執行權重新由應用程式還給作業系統.

③作業系統核心會捕捉所有的異常.當作業系統捕捉到此異常時,也就重新獲得了cpu.在windows ce上,會處理這個軟體中斷,這樣執行系統呼叫的應用程式就掛起了,執行就轉入了

④接下來根據系統呼叫的不同,找到具體實現該系統呼叫的程序(這些程序在windows ce上也被稱為psl,全稱是 protected server library),此程序可能是本身,也可能不是.如果不是那麼執行將再次跳轉,把執行轉到具體實現系統呼叫的程序去執行.

⑤實現這個系統呼叫的程序得到執行的機會,它會根據根據具體系統呼叫的不同而完成希望實現的功能,然後返回.

⑥當實現系統呼叫的程序執行結束返回的時候,整個系統呼叫也就結束了,應用程式可以從對的呼叫處返回.

(ii)系統呼叫的例項

假設有乙個應用程式需要建立乙個視窗,它必須首先呼叫中的creatwindow( )函式(這個函式就是前面提到的系統呼叫的包裝函式),然後會引發軟體中斷,執行轉入 會查詢到 creatwindow( )函式是圖形介面有關的函式,在中實現.就會選中開始執行,此時 ,開始執行建立視窗的任務.當視窗建立結束時 ,就會返回,然後接著從軟體中斷中返回, 系統呼叫就結束了.

如果應用程式呼叫createprocess( )去建立乙個新的程序,那麼同樣會呼叫中的createprocess( )函式,然後自陷進入所不同的是,createprocess( )函式就是在中實現的,所以無須再切換到其它程序,可直接在 中完成建立程序的任務,然後返回.

應用程式呼叫charlowerbuff( )函式轉換字串的大小寫時, 由於charlowerbuff( )函式的實現就在內部,所以不會引發軟體中斷,也不會有程序切換,而是由內的這個函式直接轉換字串,結束後返回.

(iii)windows ce的系統呼叫機制

了解了windows ce的系統呼叫機制後,可能會有這樣的疑問 :windows ce中每次系統呼叫都會導致多個程序之間頻繁切換,而且系統呼叫所涉及的資料也需要在多個程序之間遷移, 這樣勢必會使整個系統的效率降低,而效率對嵌入式系統來說 ,是尤為重要的.

windows ce依靠它獨特的架構解決了這個問題.其實,在 windows ce中,系統呼叫發生的整個過程中,並沒有發生真正的執行緒上下文切換.windows ce核心負責把api的呼叫轉到實現該api的psl程序.

psl程序會把進行系統呼叫的執行執行緒從乙個程序遷移到下乙個程序.也就是說,在整個系統呼叫過程中,在處理器上執行的執行緒始終是乙個.還拿createwindow作為例子,雖然createwindow系統呼叫會在應用程式、和中來回切換,但是3個程序中執行的執行緒是同乙個執行緒,也就是說,並沒有發生真的上下文切換發生,所謂的「切換」只是把執行程序的虛擬位址空間對映到了slot 0.

windows ce核心負責把應用程式中的使用者態執行緒改變訪問許可權,然後把它遷移到系統程序中,在整個系統呼叫的過程中,這個執行緒在3個程序中使用同乙個棧和同一些暫存器.當這個執行緒離開 psl程序的時候,windows ce核心再把它的特殊訪問許可權移除.借助psl,在系統呼叫時並沒有真正地發生上下文切換,因此,系統的效率不會受到影響.

嵌入式實時作業系統習題集

一 填空題 1 arm advanced risc machines 既可以認為是乙個公司的名字,也可以認為是對一類處理器的通稱,還可以認為是一種技術的名字。1991年arm公司成立於英國劍橋,主要 晶元設計技術的授權,將arm技術智財權ip核的技術轉讓給不同廠商,形成各種晶元,其中ip核是指 是一...

《嵌入式作業系統》課程實踐教學研究

作者 張莉莉,丁曉波 軟體導刊 2013年第12期 摘要 計算機作業系統相關課程是計算機專業的主幹課程之一。為適應物聯網發展需要,對 嵌入式作業系統 課程實踐教學進行了研究,並給出了每個環節的教學方案。關鍵詞 物聯網 嵌入式作業系統 教學模式 中圖分類號 g434文獻標識碼 a文章編號文章編號 16...

嵌入式實時作業系統詳細設計說明書

目錄摘要 abstract 1 緒論 2 1.1 嵌入式系統簡介 2 1.2 嵌入式處理器 2 1.3 嵌入式實時作業系統 rtos 3 1.4 myrtos的介紹 4 2 硬體體系結構和軟體平台 5 2.1 硬體體系結構 5 2.2 軟體平台 5 3 myrtos詳細設計及編碼實現 7 3.1 m...