新聞中心

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

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

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

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

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

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

μC/OS出自于美國(guó)的一位嵌入式系統(tǒng)專家Jean J.Labrosse。他后來成為嵌入式系統(tǒng)會(huì)議的顧問委員會(huì)委員,并在每年的嵌入式系統(tǒng)會(huì)議上講演。最早的文章連載在美國(guó)1992年<<嵌入式系統(tǒng)編程>>雜志的5月和6月刊上。源碼發(fā)布在該雜志的BBS上。1993年,美國(guó)的R&D出版社出了一本叫做μC/OS the Real Time Kernel的書,后來的幾年中書的銷量超過了15,000冊(cè)。世界上數(shù)以千計(jì)的工程技術(shù)人員將μC/OS應(yīng)用到了各個(gè)領(lǐng)域,如照像機(jī)業(yè)、醫(yī)療儀器、音響設(shè)備、發(fā)動(dòng)機(jī)控制、網(wǎng)絡(luò)接入設(shè)備、高速公路電話系統(tǒng)、ATM機(jī)、工業(yè)機(jī)器人等。近10年的應(yīng)用史證明,這個(gè)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頁(yè)的解釋。當(dāng)μC/OS的商業(yè)價(jià)值得到認(rèn)可時(shí),μC/OS-Ⅱ的版權(quán)政策也發(fā)生了變化,把目標(biāo)代碼嵌入到商業(yè)產(chǎn)品中去也需要版稅了。最新版本的μC/OS-Ⅱ V2.51索價(jià)55.95美元。中國(guó)電力出版社購(gòu)買了這本書的版權(quán),譯成了中文版,于2001年8月出版,中文書名是<<μC/OS-Ⅱ源碼開放的嵌入式實(shí)時(shí)操作系統(tǒng)>>。

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

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

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

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

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

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

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


關(guān)鍵詞: RTOS

評(píng)論


相關(guān)推薦

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

關(guān)閉