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

下載本文檔

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

文檔簡介

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

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

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

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

(2)實時性

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

(3)多任務(wù)

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

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

(4)不同的典型外設(shè)驅(qū)動支持

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

(5)高可靠性

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

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

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

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

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

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

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

3.RTOS是一個平臺

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

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

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

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

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

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

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

5.RTOS的基本特征

(1)任務(wù)

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

(2)任務(wù)切換

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

(3)消息和郵箱

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

(4)旗語

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

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

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

(6)中斷和資源管理

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

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

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

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

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

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

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

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

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

8.目前有什么樣的RTOS?

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

溫馨提示

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

評論

0/150

提交評論