![單片機中,嵌入操作系統(tǒng)的利弊-基礎電子_第1頁](http://file4.renrendoc.com/view/5890898a9e2fadfd144d0856a4e5a80a/5890898a9e2fadfd144d0856a4e5a80a1.gif)
![單片機中,嵌入操作系統(tǒng)的利弊-基礎電子_第2頁](http://file4.renrendoc.com/view/5890898a9e2fadfd144d0856a4e5a80a/5890898a9e2fadfd144d0856a4e5a80a2.gif)
![單片機中,嵌入操作系統(tǒng)的利弊-基礎電子_第3頁](http://file4.renrendoc.com/view/5890898a9e2fadfd144d0856a4e5a80a/5890898a9e2fadfd144d0856a4e5a80a3.gif)
![單片機中,嵌入操作系統(tǒng)的利弊-基礎電子_第4頁](http://file4.renrendoc.com/view/5890898a9e2fadfd144d0856a4e5a80a/5890898a9e2fadfd144d0856a4e5a80a4.gif)
![單片機中,嵌入操作系統(tǒng)的利弊-基礎電子_第5頁](http://file4.renrendoc.com/view/5890898a9e2fadfd144d0856a4e5a80a/5890898a9e2fadfd144d0856a4e5a80a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
精品文檔-下載后可編輯單片機中,嵌入操作系統(tǒng)的利弊-基礎電子近年來,在單片機系統(tǒng)中嵌入操作系統(tǒng)已經(jīng)成為人們越來越關(guān)心的一個話題。本文通過對一種源碼公開的單片機嵌入式實時操作系統(tǒng)μC/OS-II為例,闡述了在單片機中使用該嵌入式操作系統(tǒng)的優(yōu)缺點,以及在應用中應當注意的一些問題。早在20世紀60年代,就已經(jīng)有人開始研究和開發(fā)嵌入式操作系統(tǒng)。但直到近,它才在國內(nèi)被越來越多的提及,在通信、電子、自動化等需要實時處理的領(lǐng)域所日益顯現(xiàn)的重要性吸引了人們越來越多的注意力。但是,人們所談論的往往是一些的商業(yè)內(nèi)核,諸如VxWorks、PSOS等。這些商業(yè)內(nèi)核性能優(yōu)越,但價格昂貴,主要用于16位和32位處理器中,針對國內(nèi)大部分用戶使用的51系列8位單片機,可以選擇的μC/OS-II。μC/OS-II的特點1、μC/OS-II是由Labrosse先生編寫的一個開放式內(nèi)核,主要的特點就是源碼公開。這一點對于用戶來說可謂利弊各半,好處在于,一方面它是的,另一方面用戶可以根據(jù)自己的需要對它進行修改。缺點在于它缺乏必要的支持,沒有功能強大的軟件包,用戶通常需要自己編寫驅(qū)動程序,特別是如果用戶使用的是不太常用的單片機,還必須自己編寫移植程序。2、μC/OS-II是一個占先式的內(nèi)核,即已經(jīng)準備就緒的高優(yōu)先級任務可以剝奪正在運行的低優(yōu)先級任務的CPU使用權(quán)。這個特點使得它的實時性比非占先式的內(nèi)核要好。通常我們都是在中斷服務程序中使高優(yōu)先級任務進入就緒態(tài)(例如發(fā)信號),這樣退出中斷服務程序后,將進行任務切換,高優(yōu)先級任務將被執(zhí)行。拿51單片機為例,比較一下就可以發(fā)現(xiàn)這樣做的好處。假如需要用中斷方式采集一批數(shù)據(jù)并進行處理,在傳統(tǒng)的編程方法中不能在中斷服務程序中進行復雜的數(shù)據(jù)處理,因為這會使得關(guān)中斷時間過長。所以經(jīng)常采用的方法是置一標志位,然后退出中斷。由于主程序是循環(huán)執(zhí)行的,所以它總有機會檢測到這一標志并轉(zhuǎn)到數(shù)據(jù)處理程序中去。但是因為無法確定發(fā)生中斷時程序到底執(zhí)行到了什么地方,也就無法判斷要經(jīng)過多長時間數(shù)據(jù)處理程序才會執(zhí)行,中斷響應時間無法確定,系統(tǒng)的實時性不強。如果使用μC/OS-II的話,只要把數(shù)據(jù)處理程序的優(yōu)先級設定得高一些,并在中斷服務程序中使它進入就緒態(tài),中斷結(jié)束后數(shù)據(jù)處理程序就會被立即執(zhí)行。這樣可以把中斷響應時間限制在一定的范圍內(nèi)。對于一些對中斷響應時間有嚴格要求的系統(tǒng),這是必不可少的。但應該指出的是如果數(shù)據(jù)處理程序簡單,這樣做就未必合適。因為μC/OS-II要求在中斷服務程序末尾使用OSINTEXIT函數(shù)以判斷是否進行任務切換,這需要花費一定的時間。3、μC/OS-II和大家所熟知的Linux等分時操作系統(tǒng)不同,它不支持時間片輪轉(zhuǎn)法。μC/OS-II是一個基于優(yōu)先級的實時操作系統(tǒng),每個任務的優(yōu)先級必須不同,分析它的源碼會發(fā)現(xiàn),μC/OS-II把任務的優(yōu)先級當做任務的標識來使用,如果優(yōu)先級相同,任務將無法區(qū)分。進入就緒態(tài)的優(yōu)先級的任務首先得到CPU的使用權(quán),只有等它交出CPU的使用權(quán)后,其他任務才可以被執(zhí)行。所以它只能說是多任務,不能說是多進程,至少不是我們所熟悉的那種多進程。顯而易見,如果只考慮實時性,它當然比分時系統(tǒng)好,它可以保證重要任務總是優(yōu)先占有CPU。但是在系統(tǒng)中,重要任務畢竟是有限的,這就使得劃分其他任務的優(yōu)先權(quán)變成了一個讓人費神的問題。另外,有些任務交替執(zhí)行反而對用戶更有利。例如,用單片機控制兩小塊顯示屏時,無論是編程者還是使用者肯定希望它們同時工作,而不是顯示完一塊顯示屏的信息以后再顯示另一塊顯示屏的信息。這時候,要是μC/OS-II即支持優(yōu)先級法又支持時間片輪轉(zhuǎn)法就更合適了。4、μC/OS-II對共享資源提供了保護機制。正如上文所提到的,μC/OS-II是一個支持多任務的操作系統(tǒng)。一個完整的程序可以劃分成幾個任務,不同的任務執(zhí)行不同的功能。這樣,一個任務就相當于模塊化設計中的一個子模塊。在任務中添加代碼時,只要不是共享資源就不必擔心互相之間有影響。而對于共享資源(比如串口),μC/OS-II也提供了很好的解決辦法。一般情況下使用的是信號量的方法。簡單地說,先創(chuàng)建一個信號量并對它進行初始化。當一個任務需要使用一個共享資源時,它必須先申請得到這個信號量,而一旦得到了此信號量,那就只有等使用完了該資源,信號量才會被釋放。在這個過程中即使有優(yōu)先權(quán)更高的任務進入了就緒態(tài),因為無法得到此信號量,也不能使用該資源。這個特點的好處顯而易見,例如當顯示屏正在顯示信息的時候,外部產(chǎn)生了一個中斷,而在中斷服務程序中需要顯示屏顯示其他信息。這樣,退出中斷服務程序后,原有的信息就可能被破壞了。而在μC/OS-II中采用信號量的方法時,只有顯示屏把原有信息顯示完畢后才可以顯示新信息,從而可以避免這個現(xiàn)象。不過,采用這種方法是以犧牲系統(tǒng)的實時性為代價的。如果顯示原有信息需要耗費大量時間,系統(tǒng)只好等待。從結(jié)果上看,等于延長了中斷響應時間,這對于未顯示信息是報警信息的情況,無疑是致命的。發(fā)生這種情況,在μC/OS-II中稱為優(yōu)先級反轉(zhuǎn),就是高優(yōu)先級任務必須等待低優(yōu)先級任務的完成。在上述情況下,在兩個任務之間發(fā)生優(yōu)先級反轉(zhuǎn)是無法避免的。所以在使用μC/OS-II時,必須對所開發(fā)的系統(tǒng)了解清楚,才能決定對于某種共享資源是否使用信號量。μC/OS-II在單片機使用中的一些特點:(1)在單片機系統(tǒng)中嵌入μC/OS-II將增強系統(tǒng)的可靠性,并使得調(diào)試程序變得簡單。以往傳統(tǒng)的單片機開發(fā)工作中經(jīng)常遇到程序跑飛或是陷入死循環(huán)??梢杂每撮T狗解決程序跑飛問題,而對于后一種情況,尤其是其中牽扯到復雜數(shù)學計算的話,只有設置斷點,耗費大量時間來慢慢分析。如果在系統(tǒng)中嵌入μC/OS-II的話,事情就簡單多了??梢园颜麄€程序分成許多任務,每個任務相對獨立,然后在每個任務中設置超時函數(shù),時間用完以后,任務必須交出CPU的使用權(quán)。即使一個任務發(fā)生問題,也不會影響其他任務的運行。這樣既提高了系統(tǒng)的可靠性,同時也使得調(diào)試程序變得容易。(2)在單片機系統(tǒng)中嵌入μC/OS-II將增加系統(tǒng)的開銷。現(xiàn)在所使用的51單片機,一般是指87C51或者89C51,其片內(nèi)都帶有一定的RAM和ROM。對于一些簡單的程序,如果采用傳統(tǒng)的編程方法,已經(jīng)不需要外擴存儲器了。如果在其中嵌入μC/OS-II的話,在只需要使用任務調(diào)度、任務切換、信號量處理、延時或超時服務的情況下,也不需要外擴ROM了,但是外擴RAM是必須的。由于μC/OS-II是可裁減的操作系統(tǒng),其所需要的RAM大小就取決于操作系統(tǒng)功能的多少。舉例來說,μC/OS-II允許用戶定義任務數(shù)。由于每建立一個任務,都要產(chǎn)生一個與之相對應的數(shù)據(jù)結(jié)構(gòu)TCB,該數(shù)據(jù)結(jié)構(gòu)要占用很大一部分內(nèi)存空間。所以在定義任務數(shù)時,一定要考慮實際情況的需要。如果定得過大,勢必會造成不必要的浪費。嵌入μC/OS-II以后,總的RAM需求可以由如下表達式得出:RAM總需求=應用程序的RAM需求+內(nèi)核數(shù)據(jù)區(qū)的RAM需求+(任務棧需求+中斷嵌套棧需求)·任務數(shù)所幸的是,μC/OS-II可以對每個任務分別定義堆??臻g的大小,開發(fā)人員可根據(jù)任務的實際需求來進行??臻g的分配。但在RAM容量有限的情況下,還是應該注意一下對大型數(shù)組、數(shù)據(jù)結(jié)構(gòu)和函數(shù)的使用,別忘了,函數(shù)的形參也是要推入堆棧的。(3)μC/OS-II的移植也是一件需要值得注意的工作。如果沒有現(xiàn)成的移植實例的話,就必須自己來編寫移植代碼。雖然只需要改動兩個文件,但仍需要對相應的微處理器比較熟悉才行,參照已有的移植實例。另外,即使有移植實例,在編程前也要閱讀一下,因為里面牽扯到堆棧操作。在編寫中斷服務程序時,把寄存器推入堆棧的順序必須與移植代碼中的順序相對應。(4)和其他一些的嵌入式操作系統(tǒng)不同,μC/OS-II在單片機系統(tǒng)中的啟動過程比較簡單,不像有些操作系統(tǒng)那樣,需要把內(nèi)核編譯成一個映像文件寫入ROM中,上電復位后,再從ROM中把文件加載到RAM中去,然后再運行應用程序。μC/OS-II的內(nèi)核是和應用程序放在一起編譯成一個文件的,使用者只需要把這個文件轉(zhuǎn)換成HEX格式,寫入ROM中就可以了,上電后,會像普通的單片機程序一樣運行。結(jié)語由以上介紹可以看出,μC/O
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商平臺的品牌建設與消費者忠誠度提升策略
- 2025年度漿砌擋土墻施工質(zhì)量追溯與責任追究合同
- 商務星球版八年級地理上冊2.3《河流和湖泊》聽課評課記錄
- 2025年度化妝品跨境電商進口代理合同
- 2025年度數(shù)據(jù)中心機房網(wǎng)絡安全合同
- 2025年度個人住房按揭貸款合同公證服務細則
- 電子產(chǎn)品的綠色材料選擇與應用
- 電商平臺上的創(chuàng)意產(chǎn)品營銷策略
- 【培優(yōu)卷】同步分層練習:五年級下冊語文第18課《威尼斯的小艇》(含答案)
- 電商平臺客戶支持中的知識管理應用
- 走好群眾路線-做好群眾工作(黃相懷)課件
- NY∕T 4001-2021 高效氯氟氰菊酯微囊懸浮劑
- 《社會主義市場經(jīng)濟理論(第三版)》第七章社會主義市場經(jīng)濟規(guī)則論
- 《腰椎間盤突出》課件
- 漢聲數(shù)學圖畫電子版4冊含媽媽手冊文本不加密可版本-29.統(tǒng)計2500g早教
- simotion輪切解決方案與應用手冊
- 柴油發(fā)電機運行檢查記錄表格
- 典范英語-2備課材料2a課件
- DSC曲線反映PET得結(jié)晶度
- 科學素養(yǎng)全稿ppt課件(完整版)
- 建筑智能化培訓課件
評論
0/150
提交評論