新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實踐 > 學(xué)習(xí)RTOS 使用RTOS

學(xué)習(xí)RTOS 使用RTOS

作者:邵貝貝 清華大學(xué) 時間:2008-02-26 來源: 收藏

長期以來,計算機科學(xué)專家們的杰作--實時系統(tǒng)()與嵌入式應(yīng)用產(chǎn)品開發(fā)工程師的理念之間存在著一道明顯的溝壑。如陽春白雪和者甚寡。分析我國推動計算機嵌入式應(yīng)用發(fā)展的這支隊伍可以發(fā)現(xiàn),他們中絕大多數(shù)是各個應(yīng)用領(lǐng)域的專家,而沒有受過計算機專業(yè)方面的專門訓(xùn)練。很多人都是從自學(xué)8位微處理器Z-80開始的,缺乏對計算機科學(xué)方面系統(tǒng)的理論知識的深層次理解。在8位CPU的嵌入式應(yīng)用中這種矛盾并不突出,而當(dāng)嵌入式應(yīng)用走向32位,應(yīng)用程序越來越復(fù)雜時,就顯得力不從心。而科班出身的計算機專家又不可能對各個應(yīng)用領(lǐng)域都熟悉。多數(shù)應(yīng)用領(lǐng)域的開發(fā)人員習(xí)慣于畫一塊印刷線路板,畫個程序框圖,編一個軟件,試一試,于是產(chǎn)品開發(fā)就完成了。從計算機科學(xué)的角度來看,不但開發(fā)出的產(chǎn)品存在著諸多的不安全隱患,這種開發(fā)產(chǎn)品的方法本身就不夠科學(xué)。是計算機專家們多年潛心研究的成果,使用RTOS不僅增加了嵌入式應(yīng)用系統(tǒng)的可靠性,縮短了產(chǎn)品的開發(fā)時間,而且應(yīng)用程序的維護也會方便許多。

在嵌入式產(chǎn)品開發(fā)中使用RTOS有很多好處,歸納起來主要有以下幾方面,首先RTOS支持多任務(wù),應(yīng)用程序被分解成多個任務(wù),程序開發(fā)變得更加容易,便于維護,易讀易懂。提高了開發(fā)效率,縮短了開發(fā)周期。再者,計算機對關(guān)鍵事件的處理在延遲時間上有保證,即系統(tǒng)的實時性可以保證好于某一確定的值。還有系統(tǒng)的穩(wěn)定性、可靠性會得到提高。例如可以增加一些用于監(jiān)控各任務(wù)運行狀態(tài)的任務(wù)來提高系統(tǒng)的可靠性。

價格因素限制了RTOS在我國嵌入式應(yīng)用產(chǎn)品開發(fā)中的推廣與普及。也許這才是和者甚寡的最主要原因。多數(shù)RTOS的商業(yè)產(chǎn)品都相當(dāng)?shù)馁F,著名的RTOS價位在2萬到3萬美元之間,國內(nèi)只有少數(shù)實力雄厚的單位買得起。使用中,由于許多商業(yè)RTOS軟件都是所謂的黑盒子,即不提供源代碼,用戶知其然未必知其所以然。理解不透,用得不好,RTOS的優(yōu)勢也就不能全發(fā)揮出來。有些商業(yè)軟件還要對開發(fā)出來的產(chǎn)品按件收費,費率從幾美元到上百美元。給產(chǎn)品增加力額外的成本。

隨著操作系統(tǒng)走向開放,越來越多的帶源代碼的無版稅軟件、自由軟件得到了廣泛的認可與應(yīng)用。自由軟件Linux和可用于嵌入式應(yīng)用的μCLinux的出現(xiàn)使RTOS不再神秘。一些商業(yè)RTOS軟件開始公開源碼。RTOS的一些自由軟件頻頻在網(wǎng)上出現(xiàn),自由軟件μC /OS和廉價的μC/OS-Ⅱ就是很好的例子。RTOS的春天來了,廣大嵌入式應(yīng)用產(chǎn)品開發(fā)工程師與計算機專家間的溝壑在逐漸填平。

μC/OS出自于美國的一位嵌入式系統(tǒng)專家Jean J.Labrosse。他后來成為嵌入式系統(tǒng)會議的顧問委員會委員,并在每年的嵌入式系統(tǒng)會議上講演。最早的文章連載在美國1992年<<嵌入式系統(tǒng)編程>>雜志的5月和6月刊上。源碼發(fā)布在該雜志的BBS上。1993年,美國的R&D出版社出了一本叫做μC/OS the Real Time Kernel的書,后來的幾年中書的銷量超過了15,000冊。世界上數(shù)以千計的工程技術(shù)人員將μC/OS應(yīng)用到了各個領(lǐng)域,如照像機業(yè)、醫(yī)療儀器、音響設(shè)備、發(fā)動機控制、網(wǎng)絡(luò)接入設(shè)備、高速公路電話系統(tǒng)、ATM機、工業(yè)機器人等。近10年的應(yīng)用史證明,這個RTOS是穩(wěn)定可靠的,且不斷有新版本推出。

μC/OS已經(jīng)將移植到了幾乎所有知名的CUP上。移植的范例可以從網(wǎng)上下載。μC/OS the Real Time Kernel一書中附一張軟盤,是μC/OS的版本1.08。關(guān)于版權(quán),書中寫到: 在您的應(yīng)用中使用書中的代碼不需要許可證。但是您得指出您的產(chǎn)品中使用了μC/OS。如果是賣源碼得話,就有版權(quán)的問題了。

1998年,作者決定出μC/OS的第二本書μC/OS-Ⅱ the Real Time Kernel,并設(shè)立了正式的網(wǎng)站:WWW. uC/OS -Ⅱ.COM,給μC/OS增加了一些新的功能。并且增加了約200頁的解釋。當(dāng)μC/OS的商業(yè)價值得到認可時,μC/OS-Ⅱ的版權(quán)政策也發(fā)生了變化,把目標(biāo)代碼嵌入到商業(yè)產(chǎn)品中去也需要版稅了。最新版本的μC/OS-Ⅱ V2.51索價55.95美元。中國電力出版社購買了這本書的版權(quán),譯成了中文版,于2001年8月出版,中文書名是<<μC/OS-Ⅱ源碼開放的嵌入式實時操作系統(tǒng)>>。

這是一本出色的教材,清華大學(xué)已在嵌入式系統(tǒng)與單片機教學(xué)中使用了這本書。書中不但給出了一個實時內(nèi)核的全部源代碼,而且對這些代碼做了詳盡的解釋。對實時操作系統(tǒng)中的一些基本概念做了詳細的描述。源程序的寫作風(fēng)格、注釋都相當(dāng)規(guī)范、漂亮。讀了這本書就會弄明白,一段段的程序是怎么協(xié)調(diào)工作的。如果只是將數(shù)千行的程序代碼、數(shù)十個文件羅列在那里,讀起來會相當(dāng)費勁。商業(yè)軟件不僅僅是貴,而即使有些軟件帶源代碼一起出售,也沒有哪一個解釋得如此詳盡。

μC/OS和μC/OS-Ⅱ是專門為計算機的嵌入式應(yīng)用設(shè)計的,絕大部分代碼是用C語言寫的。CPU硬件相關(guān)部分是用匯編語言寫的,總量約200行。匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU上。用戶只要有標(biāo)準的ANSI 的C交叉編譯器,有匯編、連接等軟件工具,就可以將μC/OS-Ⅱ嵌入到開發(fā)的產(chǎn)品中。

μC/OS和μC/OS-Ⅱ是占先式(Preemptive)多任務(wù)實時內(nèi)核,是基于優(yōu)先級的,即總是讓進入就緒態(tài)的諸任務(wù)中優(yōu)先級最高的那個任務(wù)先運行。任務(wù)調(diào)度是用查表法完成的,速度快。每個任務(wù)都有互不相同的優(yōu)先級。有64個優(yōu)先級,最多支持64個任務(wù)。

μC/OS和μC/OS-Ⅱ的另一特點是可裁剪,即只嵌入用戶程序用得著的那些函數(shù),即產(chǎn)品中既可以只用幾個函數(shù),也可以嵌入全部函數(shù),這樣內(nèi)核占用的ROM/RAM資源,就可以依據(jù)產(chǎn)品調(diào)整。裁剪是通過條件編譯實現(xiàn)的。作者盡了極大的努力,使內(nèi)核占用的資源盡量少。

μC/OS-Ⅱ這本書中提供的內(nèi)核源代碼以及幾個應(yīng)用的例子是80x86 CPU為對象的。讀者可以在任何一臺PC機上用PC機上的標(biāo)準的C編譯器對這些代碼編譯,然后在Windows中的DOS窗口下運行RTOS,邊讀書,分析書中所附的源代碼,邊實踐,運行μC/OS-Ⅱ,找到RTOS的感覺以后,再把μC/OS-Ⅱ移植到自己熟悉的一種CPU上去。可以從網(wǎng)上下載移植的范例。由于使用的編譯器不同,網(wǎng)上的范例未必能直接使用,故一定要讀一讀源代碼,用這種方式學(xué)習(xí)和掌握一個實時內(nèi)核,直到有勇氣對它做一些改動和優(yōu)化。因為μC/O-II是為了嵌入式應(yīng)用編寫的通用軟件,它不得不強調(diào)諸CPU有共性的那些方面,并將匯編代碼、CPU硬件相關(guān)部分代碼壓縮到最小,不可能照顧到不同CPU的各自特點。而我國的用戶一般對自己用過的一、兩種CPU非常熟悉。讀懂這些源碼以后,根據(jù)不同CPU的特長,對μC/OS-II中相當(dāng)多的函數(shù)可進一步優(yōu)化,改善RTOS的實時性。

雖然μC/OS-II僅僅是一個實時內(nèi)核,但有了這個內(nèi)核就有了良好的開始。在此基礎(chǔ)上許多功能都可以加上去,如內(nèi)存管理、TCP/IP支持、遠程調(diào)用甚至文件系統(tǒng)。網(wǎng)上出現(xiàn)了基于μC/OS-Ⅱ的商業(yè)產(chǎn)品廣告。以μC/OS-Ⅱ為基礎(chǔ),自己做一些功能軟件也不難,也有一些開放的資源可以參考。以TCP/IP為例,英國人Jeremy Bentham的TCPIP Lean: Web Server for Embedded System 一書就教您如何將TC/PIP嵌入8位單片機。

讀書、學(xué)習(xí)、實踐,不但對于大專院校的學(xué)生,特別是對有經(jīng)驗的工程師,再學(xué)習(xí),再實踐,學(xué)習(xí)RTOS,使用RTOS,我們?nèi)褡宓奈⒂嬎銠C嵌入式應(yīng)用技術(shù)水平將會邁上一個新的臺階。


關(guān)鍵詞: RTOS

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉