摘要:引言早在20世紀(jì)60年代,就已經(jīng)有人開始研究和開發(fā)嵌入式操作系統(tǒng)。但直到最近,它才在國內(nèi)被越來越多的提及,在通信、電子、自動化等需要實時處理的領(lǐng)域所曰益顯現(xiàn)的重要性吸引了人們越來越多的注意力。但是,人們所談?wù)摰耐且恍┲纳虡I(yè)內(nèi)核,諸如VxWorks、PSOS等。這些商業(yè)內(nèi)核性能優(yōu)越,但價格昂貴,主要用于16位和32位處理
引言
早在20世紀(jì)60年代,就已經(jīng)有人開始研究和開發(fā)嵌入式操作系統(tǒng)。但直到最近,它才在國內(nèi)被越來越多的提及,在通信、電子、自動化等需要實時處理的領(lǐng)域所曰益顯現(xiàn)的重要性吸引了人們越來越多的注意力。但是,人們所談?wù)摰耐且恍┲纳虡I(yè)內(nèi)核,諸如VxWorks、PSOS等。這些商業(yè)內(nèi)核性能優(yōu)越,但價格昂貴,主要用于16位和32位處理器中,針對國內(nèi)大部分用戶使用的51系列8位單片機,可以選擇免費的uCOS II。
uCOS II的特點
1.uCOS II是由Labrosse先生編寫的一個開放式內(nèi)核,最主要的特點就是源碼公開。這一點對于用戶來說可謂利弊各半,好處在于,一方面它是免費的,另一方面用戶可以根據(jù)自己的需要對它進行修改。缺點在于它缺乏必要的支持,沒有功能強大的軟件包,用戶通常需要自己編寫驅(qū)動程序,特別是如果用戶使用的是不太常用的單片機,還必須自己編寫移植程序。
2.uCOS II是一個占先式的內(nèi)核,即已經(jīng)準(zhǔn)備就緒的高優(yōu)先級任務(wù)可以剝奪正在運行的低優(yōu)先級任務(wù)的CPU使用權(quán)。這個特點使得它的實時性比非占先式的內(nèi)核要好。通常我們都是在中斷服務(wù)程序中使高優(yōu)先級任務(wù)進入就緒態(tài)(例如發(fā)信號),這樣退出中斷服務(wù)程序后,將進行任務(wù)切換,高優(yōu)先級任務(wù)將被執(zhí)行。拿51單片機為例,比較一下就可以發(fā)現(xiàn)這樣做的好處。假如需要用中斷方式采集一批數(shù)據(jù)并進行處理,在傳統(tǒng)的編程方法中不能在中斷服務(wù)程序中進行復(fù)雜的數(shù)據(jù)處理,因為這會使得關(guān)中斷時間過長。所以經(jīng)常采用的方法是置一標(biāo)志位,然后退出中斷。由于主程序是循環(huán)執(zhí)行的,所以它總有機會檢測到這一標(biāo)志并轉(zhuǎn)到數(shù)據(jù)處理程序中去。但是因為無法確定發(fā)生中斷時程序到底執(zhí)行到了什么地方,也就無法判斷要經(jīng)過多長時間數(shù)據(jù)處理程序才會執(zhí)行,中斷響應(yīng)時間無法確定,系統(tǒng)的實時性不強。如果使用μC/OS-II的話,只要把數(shù)據(jù)處理程序的優(yōu)先級設(shè)定得高一些,并在中斷服務(wù)程序中使它進入就緒態(tài),中斷結(jié)束后數(shù)據(jù)處理程序就會被立即執(zhí)行。這樣可以把中斷響應(yīng)時間限制在一定的范圍內(nèi)。對于一些對中斷響應(yīng)時間有嚴(yán)格要求的系統(tǒng),這是必不可少的。但應(yīng)該指出的是如果數(shù)據(jù)處理程序簡單,這樣做就未必合適。因為uCOS II要求在中斷服務(wù)程序末尾使用OSINTEXIT函數(shù)以判斷是否進行任務(wù)切換,這需要花費一定的時間。
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取