色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

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

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

          μC/OS出自于美國(guó)的一位嵌入式系統(tǒng)專(zhuān)家Jean J.Labrosse。他后來(lái)成為嵌入式系統(tǒng)會(huì)議的顧問(wèn)委員會(huì)委員,并在每年的嵌入式系統(tǒng)會(huì)議上講演。最早的文章連載在美國(guó)1992年<<嵌入式系統(tǒng)編程>>雜志的5月和6月刊上。源碼發(fā)布在該雜志的BBS上。1993年,美國(guó)的R&D出版社出了一本叫做μC/OS the Real Time Kernel的書(shū),后來(lái)的幾年中書(shū)的銷(xiāo)量超過(guò)了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è)備、高速公路電話(huà)系統(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一書(shū)中附一張軟盤(pán),是μC/OS的版本1.08。關(guān)于版權(quán),書(shū)中寫(xiě)到: 在您的應(yīng)用中使用書(shū)中的代碼不需要許可證。但是您得指出您的產(chǎn)品中使用了μC/OS。如果是賣(mài)源碼得話(huà),就有版權(quán)的問(wèn)題了。

          1998年,作者決定出μC/OS的第二本書(shū)μ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)買(mǎi)了這本書(shū)的版權(quán),譯成了中文版,于2001年8月出版,中文書(shū)名是<<μC/OS-Ⅱ源碼開(kāi)放的嵌入式實(shí)時(shí)操作系統(tǒng)>>。

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

          μC/OS和μC/OS-Ⅱ是專(zhuān)門(mén)為計(jì)算機(jī)的嵌入式應(yīng)用設(shè)計(jì)的,絕大部分代碼是用C語(yǔ)言寫(xiě)的。CPU硬件相關(guān)部分是用匯編語(yǔ)言寫(xiě)的,總量約200行。匯編語(yǔ)言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU上。用戶(hù)只要有標(biāo)準(zhǔn)的ANSI 的C交叉編譯器,有匯編、連接等軟件工具,就可以將μC/OS-Ⅱ嵌入到開(kāi)發(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)是可裁剪,即只嵌入用戶(hù)程序用得著的那些函數(shù),即產(chǎn)品中既可以只用幾個(gè)函數(shù),也可以嵌入全部函數(shù),這樣內(nèi)核占用的ROM/RAM資源,就可以依據(jù)產(chǎn)品調(diào)整。裁剪是通過(guò)條件編譯實(shí)現(xiàn)的。作者盡了極大的努力,使內(nèi)核占用的資源盡量少。

          μC/OS-Ⅱ這本書(shū)中提供的內(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ū),分析書(shū)中所附的源代碼,邊實(shí)踐,運(yùn)行μC/OS-Ⅱ,找到RTOS的感覺(jué)以后,再把μ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)用編寫(xiě)的通用軟件,它不得不強(qiáng)調(diào)諸CPU有共性的那些方面,并將匯編代碼、CPU硬件相關(guān)部分代碼壓縮到最小,不可能照顧到不同CPU的各自特點(diǎn)。而我國(guó)的用戶(hù)一般對(duì)自己用過(guò)的一、兩種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)核就有了良好的開(kā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ǔ),自己做一些功能軟件也不難,也有一些開(kāi)放的資源可以參考。以TCP/IP為例,英國(guó)人Jeremy Bentham的TCPIP Lean: Web Server for Embedded System 一書(shū)就教您如何將TC/PIP嵌入8位單片機(jī)。

          讀書(shū)、學(xué)習(xí)、實(shí)踐,不但對(duì)于大專(zhuān)院校的學(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ù)專(zhuān)區(qū)

          關(guān)閉