《國(guó)產(chǎn)嵌入式微系統(tǒng)msOS成型記》之二 中低端嵌入式軟件平臺(tái)的困局
掃描二維碼
隨時(shí)隨地手機(jī)看文章
嵌入式領(lǐng)域有不少操作系統(tǒng),大致可以三類:第一類以Wince、Linux、Android為代表的,屬于大型操作系統(tǒng),擁有內(nèi)核任務(wù)調(diào)度、菜單界面、多媒體、網(wǎng)絡(luò)、文件存儲(chǔ)、外設(shè)驅(qū)動(dòng)等一系列完善的功能,但這類操作系統(tǒng)屬于非實(shí)時(shí)操作系統(tǒng),往往用于辦公、娛樂(lè)、人機(jī)接口等對(duì)時(shí)間要求不高的場(chǎng)合。此外因?yàn)楣δ芴晟疲瑢?duì)硬件的要求很高,最低配置CPU需要ARM9 200MHz,內(nèi)存需要32MByte,支持MMU內(nèi)存管理單元,標(biāo)配彩屏。
第二類以VxWorks為例,屬于功能豐富的嵌入式實(shí)時(shí)操作系統(tǒng),功能豐富。往往用于高實(shí)時(shí)、高可靠的軍工、航空航天、工業(yè)自動(dòng)化領(lǐng)域,對(duì)硬件要求也比較高。
第三類以u(píng)C/OS-II,F(xiàn)reeRTOS為例,只有一個(gè)搶占式多任務(wù)實(shí)時(shí)操作系統(tǒng)的任務(wù)內(nèi)核,此外還提供一些內(nèi)核管理的函數(shù)接口及必要的擴(kuò)展功能,其它的功能庫(kù)如菜單界面、網(wǎng)絡(luò)等都需要自己擴(kuò)展,這類操作系統(tǒng)主要應(yīng)用于中低端小型的項(xiàng)目中,成本要求高,需求多樣,但一般不是很復(fù)雜,實(shí)時(shí)性有要求,但不苛刻,往往都是消費(fèi)類或者一般的工業(yè)自動(dòng)化設(shè)備,比如白色家電的控制系統(tǒng)、小型監(jiān)控、傳感器的測(cè)試平臺(tái)、儀器儀表、小型工業(yè)自動(dòng)化領(lǐng)域取代PLC,降低成本等等。
中低端小型項(xiàng)目,一般都是基于MCU51、ARM7或者現(xiàn)在的CortexM3、M0開(kāi)發(fā)。簡(jiǎn)單的項(xiàng)目,軟件最常用的是前后臺(tái)系統(tǒng),也叫裸奔,緊急響應(yīng)用中斷,低速處理在main大循環(huán)中執(zhí)行。稍微復(fù)雜一點(diǎn)的在前后臺(tái)系統(tǒng)的基礎(chǔ)上引入了系統(tǒng)節(jié)拍,執(zhí)行一些例行的事件,這個(gè)也叫時(shí)間片編程方式。再進(jìn)一步是引入消息機(jī)制,實(shí)現(xiàn)消息機(jī)制編程方式。再?gòu)?fù)雜一些就引入uC/OS-II等RTOS,實(shí)現(xiàn)多任務(wù)編程,簡(jiǎn)化編程難度,但同時(shí)因?yàn)橐肓薘TOS,需要充分了解RTOS的特性,所以對(duì)編程人員的水平要求比較高。
苛刻的成本、需求的多樣性,導(dǎo)致目前沒(méi)有一套比較完善的操作系統(tǒng)統(tǒng)一這一方面的開(kāi)發(fā)編程,哪怕是uC/OS-II等RTOS內(nèi)核,也需要根據(jù)實(shí)際項(xiàng)目需求來(lái)配置、裁剪,增減不必要的軟件功能。
此外,中低端小型項(xiàng)目,技術(shù)難度相對(duì)較低,所以嵌入式人員的入門門檻較低,這個(gè)本身是好事,然而也就是因?yàn)槿腴T門檻太低,又沒(méi)有一套統(tǒng)一的編程規(guī)范,導(dǎo)致編程的隨意性很大,一個(gè)公司十個(gè)編程人員,有十套不同的編程方式,相互之間檢查、維護(hù)非常困難,而小型企業(yè)的人才流動(dòng)相對(duì)較大,軟件負(fù)責(zé)人離開(kāi)后,繼任者因?yàn)榫幊痰乃季S方式不同,往往看不懂前人的程序而廢棄再重新設(shè)計(jì),這樣導(dǎo)致代碼質(zhì)量一直在低質(zhì)量的重復(fù)循環(huán),也極大的提高了公司的軟件成本。
項(xiàng)目繼承性這種情況在高校、研究所中尤為突出。比如一所研究所的主業(yè)是做傳感器,但為了測(cè)試這款傳感器必須要搭建一套嵌入式測(cè)試平臺(tái),若用WINCE、Linux等開(kāi)發(fā)平臺(tái),需要一個(gè)嵌入式團(tuán)隊(duì)來(lái)開(kāi)發(fā),投入很高,維護(hù)很難,副業(yè)變成主業(yè)了,若是自己搭建一套完善的通用測(cè)試系統(tǒng),既沒(méi)有這個(gè)能力,也沒(méi)有這個(gè)精力,所以一般都是針對(duì)性的設(shè)計(jì)這款傳感器的測(cè)試系統(tǒng)。因?yàn)楦咝?、研究所的學(xué)生經(jīng)常更換,后來(lái)者看不懂前人的代碼,又不得不重新設(shè)計(jì)。
中低端小型項(xiàng)目,需求雖然多樣,雖然無(wú)法用一套操作系統(tǒng)去統(tǒng)一開(kāi)發(fā),但是我們可以把這些分為幾類,比如彩屏的消費(fèi)類、黑白屏的工控類、數(shù)碼管顯示的微控制類等等。這幾年國(guó)內(nèi)有一款比較出名的開(kāi)源嵌入式操作系統(tǒng)叫RT-Thread,編程風(fēng)格類似Linux,在OS的基礎(chǔ)上集成了GUI、文件系統(tǒng)和網(wǎng)絡(luò)功能,不少用戶把它應(yīng)用于消費(fèi)類行業(yè)。而最新發(fā)展起來(lái)的一款開(kāi)源嵌入式微系統(tǒng)叫msOS,采用微軟的C#風(fēng)格,側(cè)重于平臺(tái)架構(gòu),可以靈活組合,簡(jiǎn)單易用,目前整合了uC/OS-II,集成了128*64黑白屏的GUI、參數(shù)日志存儲(chǔ)、PID算法庫(kù)和步進(jìn)驅(qū)動(dòng)庫(kù),定位于儀器、儀表、小型工業(yè)自動(dòng)化領(lǐng)域,msOS的中文名就叫嵌入式微系統(tǒng)。