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