當前位置:編程學習大全網 - 編程語言 - 為什麽選擇RTEMS

為什麽選擇RTEMS

這些問題略微的有壹些復雜,我就專門寫篇文章來作答。以前,我做商業項目都是使用FreeRTOS和uC/OS-II的, FreeRTOS和uC/OS-II都差不多,核心代碼不過幾千行。突出的特點是,好掌握,易上手,在較短的時間內就能上手開發。但是同時帶來壹個問題,由於驅動的缺乏,不僅僅是缺乏驅動,更缺的是,驅動的統壹框架。所以設計驅動的時候,不僅僅是讓相關的設備能工作,更多的是要設計壹個驅動結構。對於商業項目來講,交付完成後都是需要維護的。自己設計的驅動結構,風險和成本都比較高。需要很長的時間才能穩定下來。尤其是在需要實時性的場合。uC/OS-II的API不豐富也是個棘手的大問題,我們的項目中,uC/OS-II,我們用C++封裝了大量的系統函數,便於系統的使用。因為項目的軟件架構是UML用面向對象的思想寫得。利用 C語言可以實現面向對象的思想架構設計,但是要運用大量的技巧,需要用函數指針實現多態和繼承。這個對編程人員來說,無端端需要了更高的技術水平。為了降低對開發人員的技術要求,使用C++做開發,與C相比,除運行效率略有些損失外,帶來更多的好處。C++有嚴格的語法保證繼承和多態,這個是C裏面沒有的。架構設計可直接轉化為C++的框架代碼,可節省不少的人力物力。然而,uC/OS-II是C函數編寫的,做C++擴展,封裝設計也需要不少的工作。這些都是uC/OS-II不具備的。我們的系統頗為復雜,需要使用到TCP/IP,uC/OS-II有系統自帶的uTCP/IP;選用了這個協議棧噩夢才剛剛開始。本以為這個協議棧很穩定,在使用期間,才發現協議棧有很多非常深層次的問題。1.首先有些層次支持IP分包,又有些層次不支持分包;2.TCP連接在使用壹段時間後,隨機出現沒有FIN信號和SYN信號,導致和PC系統斷鏈接;3.多臺計算機(超過十臺)同時ping協議棧,協議棧會掛掉,無法恢復;4.使用大包ping協議棧,也會出現奇奇怪怪的問題。5.也許是我們定制水平不夠,系統連續跑到7天以上後,會造成硬件的MAC層會隨機掛掉,我們用同樣的linux代碼測試,是沒有這樣的問題。驅動也是極力模仿linux,但是問題解決不掉,還是會出現這樣的情況。最後頭疼的問題,是uC/OS-II的授權問題,人家是開源的,商業用是要收費的。說實話,用起來沒有問題,付錢我倒沒啥意見,關鍵是問題壹堆,也沒啥付錢的動力和想法。失望之余,我開始尋找新的替代操作系統,壹句話,就是要成熟穩定可靠。VxWorks倒是不錯的選擇,但是授權費用太貴了,會把我們的利潤榨幹;沒辦法幹這種事情,企業要生存的。於是找到了RTEMS,這個操作系統本身的性能超過了VxWorks,不過是2005年以前測得,現在還沒有大牛比較過。我第壹接觸到RTEMS之後,感覺到的是“強大”! 緊接著就是“麻煩”!說強大,發展時間長,代碼質量高,系統相當之穩定。我們移植到uC/OS-II相同的硬件平臺上,RTEMS自帶的BSD協議棧表現的相當出色,隨便Ping,隨便telnet,運行了十幾天,相當之穩定。絲毫沒有頹勢;API函數相當的豐富,也有壹套成熟的驅動結構。(和Linux比起來還是有些簡陋,但是足夠用了)完善的C++封裝。同時 RTEMS是開源免費,使用的發布協議是使用了RTEMS,妳高興公開妳的代碼妳就公開,不高興公開就不公開(嚴格的來說不是這樣,但最終的效果是壹樣的)。欣喜之余,問題來了,麻煩!由於使用GNU的工具鏈,對於使用windows下集成開發環境的團隊來說,那是相當的麻煩。不僅僅因為需要裝虛擬機在linux下開發,rtems的調試跟蹤,代碼撰寫等等,都需要用單獨的工具完成,對人員的素質要求很高。細節也非常的多,壹不小心,埋下伏筆,呵呵,那就是給自己找麻煩了。再者,就是RTEMS的學習資料少得可憐,中國實際上潛在的研究人員非常多,但他們不願意也沒時間把自己的研究公布出來;國外的話只有官方的文檔有些介紹。且介紹中的疏漏相當的多,需要潛心的研究。 畢竟全世界專職維護RTEMS的人就那麽幾個,需要用google summer code推動壹些周邊項目,並不像VxWorks那樣面面俱到的商業項目,什麽都是完美的。也正因為這些瑕疵,更顯得RTEMS的可貴。對於我來說,選擇RTEMS,只是想應用於我的項目,我的產品。然而,從學習的角度來說,比那些集成化的工具來說,能學習到更多的東西,從深層次了解嵌入式系統的開發。IAR EWARM、RVDS這樣的工具用熟了,不代表就可以把GNU玩轉了,但把GNU玩轉了,集成環境壹定是沒有問題的。所以,對廣大的學生朋友來說,RTEMS是壹個不錯的,提升自己全方面能力的東西。不過,學習難度稍微有些大了,介紹資料又少,的確是有問題。前陣子,看到壹個笑話是,上世紀80年代只有資本主義才能救中國,上世紀90年代只有中國才能就亞洲,現在只有中國才能救世界。中國由中國制造變為中國創造,需要更多的軟實力;中國如火如荼的物聯網技術,通訊模塊、操作系統、芯片都是國外的,中國搞的是物聯網協議規範,試問,妳都沒有自己的東西,憑什麽人家要尊重妳的遊戲規則?所謂的物聯網,只不過是中國人的壹廂情願。說不好聽的,掩耳盜鈴而已。

  • 上一篇:公務員考試
  • 下一篇:如何設定回流焊溫度曲線
  • copyright 2024編程學習大全網