實時作業系統(rtos)設計成提供乙個對真實世界的事件的及時響應(timely response)。出現在真實世界中的事件可能有乙個時間限制(deadline),在此期限之前,實時/嵌入式系統必須確保在有限時間內對此事件做出相應的響應。根據相應事件的時間限制,嵌入式實時作業系統可以分為兩類:
1、硬實時嵌入式系統
此類實時系統必須保證在一定的時間裡,對一定的外部事件做出相應的響應,如果在一定時間裡沒有能夠做出相應的響應,就會帶來災難性的後果,也即是說,此類系統對於時間的相應快慢有非常嚴格的要求,比如:電力監控系統等。
2、軟實時嵌入式系統
此類實時系統保證在一定的時間裡,對一定的外部事件做出相應的響應,但是如果在一定時間裡沒有能夠做出相應的響應,不會帶來災難性的後果,只是給使用者帶來一些不快樂的體驗,比如:使用者介面的顯示。
不同的系統,有不同實現方式,對於硬實時嵌入式系統,主要注重與實時性和可靠性,一般沒有檔案系統,虛擬記憶體管理等,主要用於實時監控等,典型的有:vxworks,psos,ucos-ii等。軟實時嵌入式系統注重實時性,也注重實用性,主要用於消費電子等,典型的有:嵌入式linux。
實時嵌入式作業系統在現在應用越來越多,其中大部分是商業的嵌入式作業系統,這些系統提高了豐富的開發工具和穩定的系統,很大的推動了嵌入式系統地發展,但是由於商業性,使我們很少有機會了解嵌入式作業系統的實現內幕。隨著開源軟體的興起,使得我們有機會了解嵌入式作業系統的內部實現成為可能。
由於多年的嵌入式開發,對於嵌入式作業系統特別的感興趣,趁春節的時間,想讀讀開源的嵌入式作業系統原始碼,大體比較一下嵌入式作業系統的具體實現。
對於開源的嵌入式作業系統,現在比較流行的主要有:嵌入式linux,ucos-ii, ecos,freertos等,這裡主要想以嵌入式linux,ucos-ii為例,對嵌入式作業系統的一些基本概念及其實現方式進行一些比較。之所以選擇這兩作業系統,因為:
1、嵌入式linux是現在用得最多的軟實時嵌入式作業系統,而且也是最著名的開源軟體之一
2、ucos-ii是一用得較多的硬實時嵌入式作業系統,儘管商業應用需要licence,對於科研等可以免費使用,而且許多愛好者已經把它移植到了各種硬體平台。
3、儘管硬實時嵌入式作業系統和軟實時嵌入式作業系統有很大的區別,但是可以通過對他們的比較,使我們更容易了解實時嵌入式作業系統的基本概念和組成要素。
實時多工嵌入式系統基本概念:
對於嵌入式系統,不像通用的計算機,提供通用的軟硬體平台,而是對於特定的需求定製的系統,一般要求便攜化,資源少,利用比較少的資源配置來實現特定的功能。如何在較小尺寸,較少的資源情況下,快速響應外部多種特定的事件,成為嵌入式系統的主要需求。 這就要求嵌入式系統要有以下的模組:
1、中斷處理
在沒有嵌入式系統之前,對於一般的工控,都是用前後臺機制實現的,中斷是整個系統的推動力。在嵌入式系統相中,中斷處理也是響應外部事件的主要途徑。
2、時間管理
對於實時作業系統來說,時間管理是系統的核心,整個系統就是由一定間隔的時鐘中斷驅動的。在一般的實時作業系統中,主要有兩種時間管理:os定時器和rtc定時器。
3、資源管理與資源共享
由於有限的資源,在嵌入式系統中,資源的管理也非常的重要,cpu,io,記憶體等是系統基本的資源,如何有效的應用和管理是乙個很大的話題。同時如何共享,如何提供任務間資源的互斥,也是一穩定系統必不可缺的條件。
4、多工
在嵌入式系統中,任務也可以叫程序,對於多工系統,一般有多個任務同時存在於系統中,任務在嵌入式系統中有各種各樣的狀態,比如:執行態,idle態等。
5、任務的實時排程與切換
對於多工的管理及其實時排程,決定了此系統的主要特徵。任務的排程與如何切換,也是嵌入式多工系統的乙個基本問題。
6、程序間(任務間)通訊
對於不同任務間的通訊,在不同的系統中有不同的實現,大體與posix的ipc 相似。但在硬實時嵌入式系統中,事件和訊息用得較多。 對於linux系統,還有虛擬記憶體管理和檔案系統管理,在硬實時嵌入式系統中,由於關注點不同,這方面的應用不多。
筆記(1) 嵌入式作業系統概述
嵌入式作業系統 eos 用於嵌入式系統的作業系統 標準 可移植 例 x86,arm,dsp,powerpc 可以執行在不同cpu體系結構上的機器 錯誤 認為嵌入式作業系統開源 嵌入式微控制器 mcu 的典型代表是微控制器 嵌入式作業系統 主流 1.vxworks 美國宇航局 航空 軍事 工業 實時性...
嵌入式作業系統簡介
嵌入式作業系統簡介 商用型系統 vxworks 半開源 wince 半開源 免費型 linux ucosii 只適用於控制,不適合遠端,不自帶網路協議棧 linux模仿unix unix是在於1969年在at t的貝爾實驗室開發 備註 丹尼斯.里奇 unix之父 c語言之父 gpl協議 gpl同其它...
嵌入式作業系統uCOSII
2.4 常用資料結構 2.4.1 程式控制塊 本質上是結構體 typedef struct tbctcb 2.4.2 控制塊的組織 鍊錶 typedef struct tcbtcb 位圖!3 ucossii中的任務 任務組成 任務程式 函式 任務堆疊和任務控制塊 具有私有空間的任務叫做程序,沒有私有...