在嵌入式系統的前期設計過程中,你必須決定所采用的嵌入式操作系統的類型。這是一個很重要的決定,因為這會影響到工程后期的發布以及軟件的維護。本文中我將概括四種通用體系和一些值得考慮的觀點。
沒有標準的操作系統很多
嵌入式操作系統
都是非標準的操作系統。對于針對比較狹窄領域,尤其是使用帶有非常有限資源的微控制器來說,這是一個很正常的現象。操作系統中最基本的操作是建立一個帶有能夠處理關鍵實時事件的中斷服務程序(ISR)的簡單后臺循環代碼,過程非常簡單,但卻是相當出色。
然而,當項目增大,很多問題就隨之產生。后臺循環所需要的響應時間取決于循環次數最多所用的時間。當循環次數增多,所需要的時間就會增多,可預測的方面就減少。此時有用的方法就是將這些后臺循環分成很多小部分,但這可能導致產生更復雜的系統而難于調試和維護。如果系統中有多個開發人員,這一情況會變成更加惡化。
沒有優先級別的操作系統
一個簡單的、沒有優先級別的操作系統可以在一個大型后臺循環中增添一些規則。這一方法對于中等大小的工程最為合適。
一個沒有優先級別的操作系統可以將程序中的后臺工作轉化為可以預先處理的工作,而不需要將原來的程序分割成多個塊。一個不存在優先級別的系統一般相對比較很容易的執行、調試,并且,在設計過程中不存在很多如資源共享的復雜操作。
這一系統的主要不足之處是開發人員必須時刻保護決定將CPU轉交給其他任務的時間。如果轉交時間延遲,即使只有一次,也會對整個操作系統的響應導致崩潰。 ]
具備優先級別的操作系統
一個完整的具備優先級別的操作系統可以處理包含多個相互競爭的任務和多個軟件開發者。具備優先級別的操作系統在外部事件(比如中斷,時間等)和操作系統調用之間轉換。
任務根據它們之間相對的優先級別和分配的時間周期進行安排,這就可以讓你從決定轉換任務的時間之中解放出來,同時,也減少了任務之間的相互沖突。
這一特性帶來了很多外在的復雜性。在優先級別的系統中的任務轉換會使調試帶來更多的困難,而且需要任務之間的相互通訊的外部機制。
然而,這一外部機制帶來了新的問題,比如任務之間的死鎖冒險。程序員必須學會使用新的技術和規則來處理這些問題,否則將會導致很多臭蟲和不可靠的代碼。
更改的桌面型操作系統
更改的桌面型操作系統,比如Windows,Linux,或者DOS,都是一些流行的嵌入式裝置,特別是基于用戶界面的系統。這些操作系統非常能吸收人,因為它們功能特別完整,并且提供了開發人員一個熟悉的開發環境。
然而,這些系統卻通常會出現資源危機,運行的控制器的性能也非常受限制,從而不能滿足執行特定環境下的實時性能限制。
嵌入式操作系統的特定與標準的桌面型環境有很多不相同的地方,所以開發一個嵌入式產品并不是簡單地遵循開發一個標準的桌面程序的方法那么的直接。
-
微控制器
+關注
關注
48文章
7489瀏覽量
151047 -
操作系統
+關注
關注
37文章
6738瀏覽量
123190 -
代碼
+關注
關注
30文章
4748瀏覽量
68351 -
ISR
+關注
關注
0文章
38瀏覽量
14405
發布評論請先 登錄
相關推薦
評論