<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > μC/OS-II使用中的幾個熱點問題

          μC/OS-II使用中的幾個熱點問題

          ——
          作者: 時間:2007-02-28 來源:http://www.designnews.com.cn/BBS 收藏
          μC/OS-II使用中的幾個熱點問題 ?。 鼎藽/OS-II——源碼公開的實時》一書是Jean J. Labrosse 所著,“Micro μC/OS-II The Real-Time Kernel”一書的中譯本。該書于2001年7月出版以后,引起了國內(nèi)嵌入式實時系統(tǒng)應(yīng)用領(lǐng)域中科技人員的極大興趣。一些有名的大學(xué)已經(jīng)或者打算把它當(dāng)作教材用于教學(xué)。有的公司提出以之培訓(xùn)開發(fā)嵌入式應(yīng)用的員工。在實際應(yīng)用中,用戶提出較多的問題主要有:μ C/OS-II的應(yīng)用領(lǐng)域和適用環(huán)境如何,交叉編譯工具問題,如何移植到用戶目標(biāo)系統(tǒng)上,以及如何實現(xiàn)基于 μC/OS-II的著如IC/PIP網(wǎng)絡(luò)協(xié)議等問題。此外還有使用許可證問題等,本文擬對這些 μC/OS-II使用中的熱點問題做一簡要回答。


          μC/OS與μC/OS-II 


          μC/OS和μC/OS-II是專門為嵌入式應(yīng)用設(shè)計的實時操作系統(tǒng)內(nèi)核。注解得很詳細(xì)的源代碼有200頁,其中95%左右是用C語言寫的,與CPU類型相關(guān)的代碼用8088的匯編寫成,不超過200行。μC/OS最早的版本叫做 COS,關(guān)于 μCOS的論文,分兩期連載在美國的“嵌入式系統(tǒng)編程”(Embedded System Programming)雜志的1992年第5期和第6期上, COS的源碼放在該雜志網(wǎng)頁的留言版(BBS)上供用戶下載。1992年末,美國的R&D出版社出版了“Micro C/OS The Real-Time Kernel”一書,書中附有一張軟盤,是μC/OS的源代碼。該書后來成為一本暢銷書,發(fā)行量突破了15000。μC/OS是基于優(yōu)先級的可剝奪型(Preemptive)實時內(nèi)核,可裁剪、可固化。由于與硬件相關(guān)的代碼僅200行左右,并寫在兩個單獨的文件中,且注解很清楚,故很容易將 C/OS移植到其它類型的CPU上。

          在后來的幾年中,用戶紛紛將μC/OS移植到了各種CPU上,如Motorola的68HC11、68HC1216、68K、CPU32、CPU32+、PowerPC等。Intel的80X86、奔騰、奔騰-II、8051、8052、MCS-251、80196、8096等;日立的64180、H8/3XX系列、SH系列;西門子的80C166和TriCore、ARM的ARM6、ARM7、Analog的AD21xx、TI的TMS320飛利浦的XA、三菱的M16、M32等等。應(yīng)用領(lǐng)域涵蓋了如照相機業(yè),醫(yī)療器械、音響設(shè)施,發(fā)動機控制、網(wǎng)絡(luò)設(shè)備、高速公路電話系統(tǒng),自動柜員機、工業(yè)機器人等。

          到1998年,作者出了他的第二本書“μC/OS-II The Real-Time Kernel”,給μC/OS增加了一些新功能,對源碼進行了整理,說明得更詳盡,書的厚度也增加了200頁,Jean J. Labrosse先生開通了μC/OS-II的商業(yè)網(wǎng)站,并不斷推出新版本。


          使用許可證


          μC/OS是完全免費的,μC/OS的源碼可以免費使用,但用戶不得以賣源碼來謀利。μC/OS的目標(biāo)代碼可以免費地嵌入到用戶的產(chǎn)品中去,但用戶得標(biāo)明在產(chǎn)品中使用了μC/OS。“μC/OS The Real-Time Kernel”一書中所附的軟盤是版本1.08。由于μC/OS的商業(yè)價值得到了社會越來越多的認(rèn)可,高版本的μC/OS,即版本1.10以上不再是完全免費的。 μC/OS的2.0版本就是μC/OS-II,最新的2.51版本的μC/OS-II目前售價55.95美元。

          μC/OS-II的源碼和目標(biāo)碼可以在有資質(zhì)的大學(xué)中免費提供給學(xué)生用于教學(xué)目的。而以盈利為目的的將μC/OS-II的目標(biāo)代碼嵌入到產(chǎn)品中去則應(yīng)得到“目標(biāo)代碼銷售許可證”。

          就準(zhǔn)備從事嵌入式應(yīng)用開發(fā)工作的大學(xué)生、研究生而言,μC/OS-II無疑是一本極好的教材。對于從事嵌入式應(yīng)用開發(fā)工作的工程技術(shù)人員來說,μC/OS和μC/OS-II則是一件很實用的工具。


          單片機的C編譯器


          由于各公司出的CPU在硬件上有很大區(qū)別,要使用針對不同CPU的交叉編譯器,有的公司在推出CPU芯片時提供交叉C編譯器,而更多的情況是由第三方提供交叉C語言編譯器,編譯μC/OS或μC/OS-II必須有C語言的編譯器,對于C語言來說,一般是使用標(biāo)準(zhǔn)的ANSI的C,而功能強大的C編譯器不但提供C,還能提供視窗下的集成環(huán)境、CPU的純軟件仿真以及在線的源碼級調(diào)試工具。

          一般情況下,交叉編譯器是要向第三方購買的,選擇C編譯器廠商時,可參考μC/OS-II網(wǎng)絡(luò)上移植范例欄目,該欄目中說明了移植時所用的編譯器是什么公司的。

          免費的C編譯是Linux下的gcc。幾乎所有32位CPU都可以使用gcc交叉C編譯器。目前一些Windows環(huán)境下的軟件如Cygwin ASHWare等都允許在Windows環(huán)境下使用Linux的命令行方式,是不錯的開發(fā)工具,但由于Linux下的應(yīng)用程序都相當(dāng)復(fù)雜,非計算機方面的高級專業(yè)人才難以掌握。Linux是自由軟件,版本也很多,有些版本不很穩(wěn)定,與手冊難以對應(yīng)。特別是遇到問題時,非專業(yè)人士很難解決。


          適宜使用的CPU與系統(tǒng)開銷


          可以說凡是能夠使用C語言編程的CPU都可以使用μC/OS或μC/OS-II,在μC/OS-II.com網(wǎng)站上有移植范例,在移植μC/OS-II欄目下,總共有80余款,較μC/OS的移植范例多出幾倍。新出現(xiàn)的CPU不久后就能找到移植范例,以Motorola芯片為例,除前面提到的品種,68HC08、ColdFire、以及DSP568XX上都有運行μC/OS-II的范例。

          我們知道,在嵌入式應(yīng)用中使用實時操作系統(tǒng)是有系統(tǒng)資源開銷的,也就是額外的ROM/RAM開銷和CPU負(fù)荷。由于實時操作系統(tǒng)引起的CPU額外負(fù)荷一般在5%以下,故不成為使用中的問題,而對于單片機,且工作在單片方式下,則要考慮由于引入操作系統(tǒng)帶來的存儲器開銷。由于目前單片機中FLASH的容量已經(jīng)可以做到幾十K乃至幾百K,而μC/OS-II的ROM開銷一般在3K到10K之間,故ROM的開銷對于單片類應(yīng)用也不成為問題。在單片方式下運行μC/OS或μC/OS-II要考慮的是RAM的開銷,由于目前單片機片內(nèi)靜態(tài)隨機存儲器SRAM還不可能做得很大,一般只有幾百字節(jié)至十幾K,雖然我們也給出過在只有512字節(jié)的68HC08GP32上運行 μC/OS-II的例子,但筆者認(rèn)為這只是一個用于學(xué)習(xí)的例子,可運行的任務(wù)只有幾個,可使用的操作系統(tǒng)的功能也少得可憐。筆者認(rèn)為,至少有2K的RAM空間,使用μC/OS或μC/OS-II才有意義。當(dāng)然如果嵌入式系統(tǒng)中使用了外擴的RAM和ROM,使用實時操作系統(tǒng)則全然沒有問題。 


          基于μC/OS-II的應(yīng)用軟件


          μC/OS和μC/OS-II僅僅是一個實時操作系統(tǒng)內(nèi)核,和商業(yè)實時操作系統(tǒng)軟件包比較起來,它缺少Utilities這一部分,如文件系統(tǒng)、遠程函數(shù)調(diào)用庫、通信軟件庫。通信軟件包括:TCP/IP軟件庫、籃牙通信軟件庫、IrDA紅外通信軟件庫等。這一類軟件的解決途徑無非是兩個,一個是買現(xiàn)成的,另一個途徑是自己寫?,F(xiàn)成的第三方軟件廠商可以從μC/OS-II網(wǎng)頁上查到,如果用戶僅僅需要用單片機實現(xiàn)例如TCP/IP協(xié)議中的某些功能的話,自主開發(fā)并不很難。一個TCP/IP通信的庫,二進制代碼一般有70K到80K。單片機系統(tǒng)只需要將其中一部分嵌入到系統(tǒng)中去。英國作者Jeremy Bentham在他的“嵌入式系統(tǒng)用TCP/IP瘦服務(wù)器” (TCP/IP Lean Web Server)一書中,提供了用PIC單片機實現(xiàn)TCP/IP協(xié)議的例子。所用的單片機片內(nèi)RAM只有348個字節(jié),TCP/IP通信程序也只有不到7K字節(jié),故參考別人做過的程序范例,自行開發(fā)這一類的應(yīng)用也是學(xué)習(xí)的極好過程。

          c語言相關(guān)文章:c語言教程




          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();