《國產(chǎn)嵌入式微系統msOS成型記》之二 中低端嵌入式軟件平臺的困局
嵌入式領(lǐng)域有不少操作系統,大致可以三類(lèi):第一類(lèi)以Wince、Linux、Android為代表的,屬于大型操作系統,擁有內核任務(wù)調度、菜單界面、多媒體、網(wǎng)絡(luò )、文件存儲、外設驅動(dòng)等一系列完善的功能,但這類(lèi)操作系統屬于非實(shí)時(shí)操作系統,往往用于辦公、娛樂(lè )、人機接口等對時(shí)間要求不高的場(chǎng)合。此外因為功能太完善,對硬件的要求很高,最低配置CPU需要ARM9 200MHz,內存需要32MByte,支持MMU內存管理單元,標配彩屏。
本文引用地址:http://dyxdggzs.com/article/201612/327757.htm第二類(lèi)以VxWorks為例,屬于功能豐富的嵌入式實(shí)時(shí)操作系統,功能豐富。往往用于高實(shí)時(shí)、高可靠的軍工、航空航天、工業(yè)自動(dòng)化領(lǐng)域,對硬件要求也比較高。
第三類(lèi)以uC/OS-II,FreeRTOS為例,只有一個(gè)搶占式多任務(wù)實(shí)時(shí)操作系統的任務(wù)內核,此外還提供一些內核管理的函數接口及必要的擴展功能,其它的功能庫如菜單界面、網(wǎng)絡(luò )等都需要自己擴展,這類(lèi)操作系統主要應用于中低端小型的項目中,成本要求高,需求多樣,但一般不是很復雜,實(shí)時(shí)性有要求,但不苛刻,往往都是消費類(lèi)或者一般的工業(yè)自動(dòng)化設備,比如白色家電的控制系統、小型監控、傳感器的測試平臺、儀器儀表、小型工業(yè)自動(dòng)化領(lǐng)域取代PLC,降低成本等等。
中低端小型項目,一般都是基于MCU51、ARM7或者現在的CortexM3、M0開(kāi)發(fā)。簡(jiǎn)單的項目,軟件最常用的是前后臺系統,也叫裸奔,緊急響應用中斷,低速處理在main大循環(huán)中執行。稍微復雜一點(diǎn)的在前后臺系統的基礎上引入了系統節拍,執行一些例行的事件,這個(gè)也叫時(shí)間片編程方式。再進(jìn)一步是引入消息機制,實(shí)現消息機制編程方式。再復雜一些就引入uC/OS-II等RTOS,實(shí)現多任務(wù)編程,簡(jiǎn)化編程難度,但同時(shí)因為引入了RTOS,需要充分了解RTOS的特性,所以對編程人員的水平要求比較高。

苛刻的成本、需求的多樣性,導致目前沒(méi)有一套比較完善的操作系統統一這一方面的開(kāi)發(fā)編程,哪怕是uC/OS-II等RTOS內核,也需要根據實(shí)際項目需求來(lái)配置、裁剪,增減不必要的軟件功能。
此外,中低端小型項目,技術(shù)難度相對較低,所以嵌入式人員的入門(mén)門(mén)檻較低,這個(gè)本身是好事,然而也就是因為入門(mén)門(mén)檻太低,又沒(méi)有一套統一的編程規范,導致編程的隨意性很大,一個(gè)公司十個(gè)編程人員,有十套不同的編程方式,相互之間檢查、維護非常困難,而小型企業(yè)的人才流動(dòng)相對較大,軟件負責人離開(kāi)后,繼任者因為編程的思維方式不同,往往看不懂前人的程序而廢棄再重新設計,這樣導致代碼質(zhì)量一直在低質(zhì)量的重復循環(huán),也極大的提高了公司的軟件成本。
項目繼承性這種情況在高校、研究所中尤為突出。比如一所研究所的主業(yè)是做傳感器,但為了測試這款傳感器必須要搭建一套嵌入式測試平臺,若用WINCE、Linux等開(kāi)發(fā)平臺,需要一個(gè)嵌入式團隊來(lái)開(kāi)發(fā),投入很高,維護很難,副業(yè)變成主業(yè)了,若是自己搭建一套完善的通用測試系統,既沒(méi)有這個(gè)能力,也沒(méi)有這個(gè)精力,所以一般都是針對性的設計這款傳感器的測試系統。因為高校、研究所的學(xué)生經(jīng)常更換,后來(lái)者看不懂前人的代碼,又不得不重新設計。
中低端小型項目,需求雖然多樣,雖然無(wú)法用一套操作系統去統一開(kāi)發(fā),但是我們可以把這些分為幾類(lèi),比如彩屏的消費類(lèi)、黑白屏的工控類(lèi)、數碼管顯示的微控制類(lèi)等等。這幾年國內有一款比較出名的開(kāi)源嵌入式操作系統叫RT-Thread,編程風(fēng)格類(lèi)似Linux,在OS的基礎上集成了GUI、文件系統和網(wǎng)絡(luò )功能,不少用戶(hù)把它應用于消費類(lèi)行業(yè)。而最新發(fā)展起來(lái)的一款開(kāi)源嵌入式微系統叫msOS,采用微軟的C#風(fēng)格,側重于平臺架構,可以靈活組合,簡(jiǎn)單易用,目前整合了uC/OS-II,集成了128*64黑白屏的GUI、參數日志存儲、PID算法庫和步進(jìn)驅動(dòng)庫,定位于儀器、儀表、小型工業(yè)自動(dòng)化領(lǐng)域,msOS的中文名就叫嵌入式微系統。
評論