1. 程式人生 > >什麼是嵌入式實時作業系統ucos-ii?有了解的嗎?

什麼是嵌入式實時作業系統ucos-ii?有了解的嗎?

對於嵌入式實時作業系統嵌入式實時作業系統ucos-ii你知道有那哪些嗎?凌陽教育的老師為你解答,

關於嵌入式實時作業系統ucos-ii:

uCOS II

  是由Labrosse先生編寫的一個開放式核心,最主要的特點就是原始碼公開。這一點對於使用者來說可謂利弊各半,好處在於,一方面它是免費的,另一方面使用者可以根據自己的需要對它進行修改。缺點在於它缺乏必要的支援,沒有功能強大的軟體包,使用者通常需要自己編寫驅動程式,特別是如果使用者使用的是不太常用的微控制器,還必須自己編寫移植程式。

uCOS II

  是一個佔先式的核心,即已經準備就緒的高優先順序任務可以剝奪正在執行的低優先順序任務的CPU使用權。這個特點使得它的實時性比非佔先式的核心要好。通常我們都是在中斷服務 程式中使高優先順序任務進入就緒態

(例如發訊號),這樣退出中斷服務程式後,將進行任務切換,高優先順序任務將被執行。拿51微控制器為例,比較一下就可以發現這樣做的好處。假如需要用中斷方式 採集一批資料並進行處理,在傳統的程式設計方法中不能在中斷服務程式中進行復雜的資料處理,

  因為這會使得關中斷時間過長。所以經常採用的方法是置一標誌位,然後退出中斷。由於主程式是迴圈執行的,所以它總有機會檢測到這一標誌並轉到資料處理程式中去。 但是因為無法確定發生中斷時程式到底執行到了什麼地方,也就無法判斷要經過多長時間資料處理程式才會執行, 中斷響應時間無法確定, 系統的實時性不強。

  如果使用μC/OS-II 的話,只要把資料處理程式的優先順序設定得高一些,並在中斷服務程式中使它進入就緒態,中斷結束後資料處理程式就會被立即執行,這樣可以把中斷響應時間限制在一定的範圍內。對於一些對中斷響應時間有嚴格要求的系統,這是必不可少的。但應該指出的如果資料處理程式簡單,這樣做就未必合適。因為 

uCOS II,要求在中斷服務程式末尾使用OSINTEXIT 函式以判斷是否進行任務切換,這需要花費一定的時間。

uCOS II

  和大家所熟知的 Linux等分時作業系統不同,它 不支援時間片輪轉法。

uCOS II是一個基於優先順序的實時作業系統,每個任務的優先順序必須不同,分析它的原始碼會發現,uCOS II把任務的優先順序當做任務的標識來使用,如果優先順序相同,任務將無法區分。進入就緒態的優先順序最高的任務首先得到CPU的使用權,只有等它交出CPU的使用權後,其他任務才可以被執行。所以它只能說是多工,不能說是多程序,至少不是我們所熟悉的那種多程序。顯而易見,如果只考慮實時性,它當然比分時系統好,它可以保證重要任務總是優先佔有

CPU。但是在系統中,重要任務畢竟是有限的,這就使得劃分其他任務的優先權變成了一個讓人費神的問題。另外,有些任務交替執行反而對使用者更有

相關推薦

no