《單片機原理及系統(tǒng)設計實用教程》課件實時多任務操作系統(tǒng)(RTOS)進入單片機開發(fā)領域_第1頁
《單片機原理及系統(tǒng)設計實用教程》課件實時多任務操作系統(tǒng)(RTOS)進入單片機開發(fā)領域_第2頁
《單片機原理及系統(tǒng)設計實用教程》課件實時多任務操作系統(tǒng)(RTOS)進入單片機開發(fā)領域_第3頁
《單片機原理及系統(tǒng)設計實用教程》課件實時多任務操作系統(tǒng)(RTOS)進入單片機開發(fā)領域_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

實時多任務操作系統(tǒng)(RTOS)進入單片機開發(fā)領域內(nèi)

容1.實時多任務操作系統(tǒng)(RTOS)

(1)更加面向硬件系統(tǒng),而不是操作者

嵌入式系統(tǒng)處理器一般都是獨立工作的,沒有人的直接參與;即使參與,也沒有大量的文字信息輸出,這是和桌面計算機有所不同的。因此RTOS著重面向的是硬件,而不是具有完整的人機界面。

(2)實時性

單片機系統(tǒng)的監(jiān)測、控制、通信等工作都要求實時性,一旦出現(xiàn)有關情況,CPU能夠及時響應,刻不容緩。為此,一個實用的RTOS都應具有完善的中斷響應機制,保證中斷響應潛伏時間足夠短。

(3)多任務

半導體技術的發(fā)展和應用復雜性的增長促使CPU的處理能力越來越高,當今的一片16位或32位單片機,在運算速度、尋址能力等方面可以相當于8位單片機的幾十片之和。在這樣強大的處理器上運行應用程序,必然不是整塊,而是根據(jù)所要實現(xiàn)的若干方面功能,劃分為數(shù)個任務,這樣有利于軟件的開發(fā)和維護。

因此單片機系統(tǒng)中采用的RTOS必然是支持多任務的,并能夠根據(jù)各個任務的輕重緩急,合理地在它們之間分配CPU和各種資源的占用時間。

(4)不同的典型外設驅動支持

單片機的典型片內(nèi)外設為定時器、A/D、PWM、D/A、串行口、LCD/LED接口,CAN-bus、IC-bus等。根據(jù)處理器類型的不同,RTOS在出廠時一般附帶若干上面硬件接口的驅動程度,而網(wǎng)卡等片外設備的驅動程序,以及其它一些高級驅動函數(shù),如兼容DOS的文件系統(tǒng)、TCP/IP協(xié)議等,則需要另行選購。以RTOS為基礎和接口標準,可以設計出大量的庫函數(shù)驅動模塊,并根據(jù)實際需要選擇或裁剪。

(5)高可靠性

一般計算機的操作系統(tǒng)出現(xiàn)問題,例如死機,除數(shù)據(jù)丟失等外,不會有太大的問題;而單片機系統(tǒng)一般都是和工業(yè)控制、交通工具、醫(yī)用器械等機電系統(tǒng)密切相關,不適當?shù)妮敵錾踔敛患皶r的輸出都可能會帶來財產(chǎn)損失和安全問題。因此嵌入式系統(tǒng)中的RTOS要求高可靠性,發(fā)行之前必須經(jīng)過嚴格的測試。這是一個耗費時間和精力的過程,也是RTOS價格普遍高于一般操作系統(tǒng)的原因之一。

2.RTOS是一個內(nèi)核

典型的單片機程序在程序指針復位后,首先進行堆棧、中斷、中斷向量、定時器、串行口等接口設置、初始化數(shù)據(jù)存儲區(qū)和顯示內(nèi)容,然后就來到了一個監(jiān)測、等待或空循環(huán),在這個循環(huán)中,CPU可以監(jiān)視外設、響應中斷或用戶輸入。

這段主程序可以看作是一個內(nèi)核,內(nèi)核負責系統(tǒng)的初始化和開放、調(diào)度其它任務,相當于C語言中的主函數(shù)。

RTOS就是這樣的一個標準內(nèi)核,包括了各種片上外設初始化和數(shù)據(jù)結構的格式化,不必、也不推薦用戶再對硬件設備和資源進行直接操作,所有的硬件設置和資源訪問都要通過RTOS核心。硬件這樣屏蔽起來以后,用戶不必清楚硬件系統(tǒng)的每一個細節(jié)就可以進行開發(fā),這樣就減少了開發(fā)前的學習量。

一般來說,對硬件的直接訪問越少,系統(tǒng)的可靠性越高。RTOS是一個經(jīng)過測試的內(nèi)核,與一般用戶自行編寫的主程序內(nèi)核相比,更規(guī)范,效率和可靠性更高。對于一個精通單片機硬件系統(tǒng)和編程的“老手”而言,通過RTOS對系統(tǒng)進行管理可能不如直接訪問更直觀、自由度大,但是通過RTOS管理能夠排除人為疏忽因素,提高軟件可靠性。

另外,高效率地進行多任務支持是RTOS設計從始至終的一條主線,采用RTOS管理系統(tǒng)可以統(tǒng)一協(xié)調(diào)各個任務,優(yōu)化CPU時間和系統(tǒng)資源的分配,使之不空閑、不擁塞。針對某種具體應用,精細推敲的應用程序不采用RTOS可能比采用RTOS能達到更高的效率;但是對于大多數(shù)一般用戶和新手而言,采用RTOS是可以提高資源利用率的,尤其是在片上資源不斷增長、產(chǎn)品可靠性和進入市場時間更重要的今天。

3.RTOS是一個平臺

RTOS建立在單片機硬件系統(tǒng)之上,用戶的一切開發(fā)工作都進行于其上,因此它可以稱作是一個平臺。采用RTOS的用戶不必花大量時間學習硬件,和直接開發(fā)相比起點更高。

RTOS還是一個標準化的平臺,它定義了每個應用任務和內(nèi)核的接口,也促進了應用程序的標準化。應用程序標準化后便于軟件的存檔、交流、修改和擴展,為嵌入式軟件開發(fā)的工程化創(chuàng)造了條件、減少開發(fā)管理工作量。嵌入式軟件標準化推廣到社會后,可以促進軟件開發(fā)的分工,減少重復勞動,近來出現(xiàn)的建立于RTOS上的文件和通信協(xié)議庫函數(shù)產(chǎn)品等就是實例。

RTOS對于開發(fā)單位和開發(fā)者個人來說也是一種提高。引入RTOS的開發(fā)單位,相當于引入了一套行業(yè)中廣泛采用的嵌入式系統(tǒng)應用程序開發(fā)標準,使開發(fā)管理更簡易、有效?;赗TOS和C語言的開發(fā),具有良好的可繼承性,在應用程序、處理器升級以及更換處理器類型時,現(xiàn)存的軟件大部分可以不經(jīng)修改地移植過來。

對于開發(fā)人員來說,則相當于在程序設計中采用一種標準化的思維方式,提高知識創(chuàng)造的效率;同時因為具有類似的思路,可以更快地理解同行其它人員的創(chuàng)造成果。

4.RTOS產(chǎn)生并得到迅速發(fā)展的原因

單片機處理器能力的提高和應用程序功能的復雜化、精確化,迫使應用程序劃分為多個重要性不同的任務,在各任務間優(yōu)化地分配CPU時間和系統(tǒng)資源,同時還要保證實時性??坑脩糇约壕帉懸粋€實現(xiàn)上述功能的內(nèi)核一般是不現(xiàn)實的,而這種需求又是普遍的。在這種形勢之下,由專業(yè)人員編寫的、滿足大多數(shù)用戶需要的高性能RTOS內(nèi)核就是一種必然結果了。

對程序實時性和可靠性要求的提高也是RTOS發(fā)展的一個原因。此外,單片機系統(tǒng)軟件開發(fā)日趨工程化,產(chǎn)品進入市場時間不斷縮短,也迫使管理人員尋找一種有利于程序繼承性、標準化、多人并行開發(fā)的管理方式。從長遠的意義上來講,RTOS的推廣能夠帶來嵌入式軟件工業(yè)更有效、更專業(yè)化的分工,減少社會重復勞動、提高勞動生產(chǎn)率。

5.RTOS的基本特征

(1)任務

任務(Task)是RTOS中最重要的操作對象,每個任務在RTOS的調(diào)用下由CPU分時執(zhí)行。激活的或當前任務是CPU正在執(zhí)行的任務,休眠的任務是在存儲器中保留其執(zhí)行的上下文背景、一旦切換為當前任務即可從上次執(zhí)行的末尾繼續(xù)執(zhí)行的任務。任務的調(diào)度目前主要有時間分片式(TimeSlicing)、輪流查詢式(Round-Robin)和優(yōu)先搶占式(Preemptive)三種,不同的RTOS可能支持其中的一種或幾種,其中優(yōu)先搶占式對實時性的支持最好。

(2)任務切換

RTOS管理下的系統(tǒng)CPU和系統(tǒng)資源的時間是同時分配給不同任務的,這樣看起來就象許多任務在同時執(zhí)行,但實際上每個時刻只有一個任務在執(zhí)行,也就是當前任務。任務的切換有兩種原因。當一個任務正常地結束操作時,它就把CPU控制權交給RTOS,RTOS則檢查任務隊列中的所有任務,判斷下面那個任務的優(yōu)先級最高,需要先執(zhí)行。另一種情況是在一個任務執(zhí)行時,一個優(yōu)先級更高的任務發(fā)生了中斷,這時RTOS就將當前任務的上下文保存起來,切換到中斷任務。RTOS經(jīng)常性地整理任務隊列,刪除結束的任務,增加新的要執(zhí)行任務,并將其按照優(yōu)先級從大到小的順序排列起來,這樣可以合理地在各個任務之間分配系統(tǒng)資源。

(3)消息和郵箱

消息(Message)和郵箱(Mailbox)是RTOS中任務之間數(shù)據(jù)傳遞的載體和渠道,一個任務可以有多個郵箱。通過郵箱,各個任務之間可以異步地傳遞信息,沒有占用CPU時間的查詢和等待。當RTOS包含片上總線接口驅動功能時,各個單片機之間的通信也通過郵箱的方式來進行,用戶并不需要了解更深的關于硬件的內(nèi)容。

(4)旗語

旗語(Semaphore)相當于一種標志(Flag),通過預置,一個事件的發(fā)生可以改變旗語。一個任務可以通過監(jiān)測旗語的變化來決定其行動,在監(jiān)測旗語變化的時候不消耗CPU時間,旗語對任務的觸發(fā)是由RTOS來完成的。通過使用旗語,一個任務在等待事件變化的時候就可以不必不斷查詢,而把CPU時間出讓給其它任務。

(5)存儲區(qū)分配

RTOS對系統(tǒng)存儲區(qū)進行統(tǒng)一分配,分配的方式可以是動態(tài)的或靜態(tài)的,每個任務在需要存儲區(qū)時都要向RTOS內(nèi)核申請。RTOS通過使用存儲分配類核心對象管理數(shù)據(jù)存儲器,在動態(tài)分配時能夠防止存儲區(qū)的零碎化。

(6)中斷和資源管理

RTOS提供了一種通用的設計用于中斷管理,有效率而靈活,這樣可以實現(xiàn)最小的中斷潛伏時間和最大的中斷響應度。RTOS內(nèi)核中的資源對象類則實現(xiàn)了對系統(tǒng)實體資源或虛擬資源的獨占式訪問,一個任務可以取得對資源的唯一訪問權,其它任務在資源釋放以前無法訪問,這樣可以避免資源沖突。設計完善的RTOS具有檢查可能導致系統(tǒng)死鎖的資源調(diào)用設計。

上面是RTOS的基本特征。根據(jù)產(chǎn)品的不同,它可能還包含許多其它功能。

6.你的處理器是不是需要一套實時多任務操作系統(tǒng)?

RTOS是目前嵌入式系統(tǒng)領域的熱點之一,是流行的開發(fā)平臺,但它畢竟對于許多用戶來說還是昂貴的,還會大量改變用戶習慣的開發(fā)方式,因此在引入RTOS以前對必要性進行考察還是明智的。你可以思考下面的幾個問題:

(1)你的處理器控制的時間和方式和你預想的一樣嗎?

(2)你是否發(fā)現(xiàn)自己花費很多時間盤算怎樣使一段代碼在該執(zhí)行的時候執(zhí)行?

(3)你是否花費太多時間在中斷子程序上,知道主程序不可能順序地處理中斷事件,便試圖編出所有代碼來處理中斷事件?

(4)你是否發(fā)現(xiàn)自己在不斷地測試標志或調(diào)用測試標志的子程序,來判斷是否應當執(zhí)行一段子程序?

如果你對上面問題的回答有一個以上是肯定的話,那么就是到了需要一套實時多任務操作系統(tǒng)將你從編程的瑣碎中解脫出來的時候了。

8.目前有什么樣的RTOS?

當你在電子雜志上尋找RTOS的時候,可能會發(fā)現(xiàn)世界上研制RTOS產(chǎn)品的公司多得令你無所適從;但是仔細閱讀后會發(fā)現(xiàn),它們的產(chǎn)品可能只覆蓋幾種處理器,而且是你所不熟悉的。目前產(chǎn)品比較全面的公司主要有美國的CMXCompany和EmbeddedSystemProducts(ESP),Inc.,它們對中國單片機工業(yè)流行的單片機,如8051,251,196/296

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論