1. 嵌入式操作系統(tǒng)對(duì)比

嵌入式操作系統(tǒng)這么多,該如何選擇?各有啥特點(diǎn)馋艺。本博客主要來(lái)介紹一下這些操作系統(tǒng)。

1. FreeRTOS

??FreeRTOS是專(zhuān)為小型嵌入式系統(tǒng)設(shè)計(jì)的可擴(kuò)展的實(shí)時(shí)內(nèi)核迈套。

亮點(diǎn)包括:

——微小的封裝形式捐祠。

——免費(fèi)的RTOS調(diào)度程序

——免費(fèi)嵌入式軟件源代碼。

——免版稅桑李。

——搶占式踱蛀,協(xié)作式和混合配置選項(xiàng)窿给,可選時(shí)間分片。

——SafeRTOS衍生產(chǎn)品對(duì)代碼完整性提供了高度的信心率拒。

——包括一個(gè)為低功耗應(yīng)用設(shè)計(jì)的tickless模式崩泡。

——可以使用動(dòng)態(tài)或靜態(tài)分配的RAM來(lái)創(chuàng)建RTOS對(duì)象(任務(wù),隊(duì)列猬膨,信號(hào)量角撞,軟件定時(shí)器,互斥體和事件組)勃痴。

——官方支持>30個(gè)嵌入式系統(tǒng)架構(gòu)(以ARM7和ARM Cortex-M3為一體架構(gòu))谒所。

——FreeRTOS-MPU支持ARM Cortex-M3內(nèi)存保護(hù)單元(MPU)。

——設(shè)計(jì)小巧沛申,簡(jiǎn)單易用劣领。通常,RTOS內(nèi)核二進(jìn)制映像將在4K到9K字節(jié)的區(qū)域內(nèi)铁材。

——可移植性非常好的源代碼結(jié)構(gòu)尖淘,主要用C.

——支持實(shí)時(shí)任務(wù)和協(xié)同程序

——直接到任務(wù)通知衫贬,隊(duì)列德澈,二進(jìn)制信號(hào)量,計(jì)數(shù)信號(hào)量固惯,遞歸信號(hào)量和互斥體梆造,用于任務(wù)之間的通信和同步,或?qū)崟r(shí)任務(wù)和中斷之間葬毫。

——?jiǎng)?chuàng)新事件組(或事件標(biāo)志)實(shí)施镇辉。

——具有優(yōu)先級(jí)繼承的互斥體。

——高效的軟件定時(shí)器贴捡。

——強(qiáng)大的執(zhí)行跟蹤功能忽肛。

——堆棧溢出檢測(cè)選項(xiàng)

——免費(fèi)監(jiān)控的論壇支持或可選的商業(yè)支持和許可烂斋。

——對(duì)可創(chuàng)建的實(shí)時(shí)任務(wù)數(shù)量沒(méi)有軟件限制屹逛。

——對(duì)可以使用的任務(wù)優(yōu)先級(jí)的數(shù)量沒(méi)有軟件限制。

——對(duì)任務(wù)優(yōu)先級(jí)分配沒(méi)有限制 - 可以為多個(gè)實(shí)時(shí)任務(wù)分配相同的優(yōu)先級(jí)汛骂。

——許多支持的架構(gòu)的免費(fèi)開(kāi)發(fā)工具罕模。

——從標(biāo)準(zhǔn)的Windows主機(jī)開(kāi)發(fā)。

2. uCOS家族(I/II/III)

??μC/ OS-II和μC/ OS-III是搶占式帘瞭,高度便攜式和可擴(kuò)展的實(shí)時(shí)內(nèi)核淑掌。這些內(nèi)核旨在便于在大量CPU架構(gòu)上使用,這些內(nèi)核是μC/ OS實(shí)時(shí)操作系統(tǒng)的關(guān)鍵組件蝶念。

關(guān)鍵價(jià)值(Key Values):

——可移植性抛腕。 提供前所未有的易用性芋绸,μC/OS內(nèi)核提供完整的源代碼和深入的文檔。 μC/ OS內(nèi)核運(yùn)行在大量處理器架構(gòu)上担敌,端口可供下載摔敛。

——可擴(kuò)展性。 μC/ OS內(nèi)核允許無(wú)限制的任務(wù)和內(nèi)核對(duì)象柄错。內(nèi)核的內(nèi)存占用可以縮小舷夺,僅包含應(yīng)用程序所需的功能,通常為6-24 KB的代碼空間和1KB的數(shù)據(jù)空間售貌。

——可靠。 μC/ OS內(nèi)核包括減少開(kāi)發(fā)時(shí)間的調(diào)試功能疫萤。內(nèi)核提供廣泛的范圍檢查颂跨,包括檢查API調(diào)用中傳遞的指針,來(lái)自ISR的任務(wù)級(jí)服務(wù)扯饶,允許范圍內(nèi)的參數(shù)以及有效的指定選項(xiàng)恒削。

——高效。 Micrium的內(nèi)核還包括有價(jià)值的運(yùn)行時(shí)統(tǒng)計(jì)信息尾序,使您的應(yīng)用程序的內(nèi)部可視化钓丰。 識(shí)別性能瓶頸,并在開(kāi)發(fā)周期的早期優(yōu)化電源使用每币。

——μC/ OS內(nèi)核的特性包括以下亮點(diǎn)(Highlights):

——搶占式多任務(wù)實(shí)時(shí)內(nèi)核携丁,可選擇循環(huán)調(diào)度

——提供完整,干凈兰怠,一致的源代碼梦鉴,具有深入的文檔。

——高可擴(kuò)展性:無(wú)限數(shù)量的任務(wù)揭保,優(yōu)先級(jí)和內(nèi)核對(duì)象

——同時(shí)等待多個(gè)內(nèi)核對(duì)象

——直接向任務(wù)發(fā)送信號(hào)/消息

——資源高效:6K至24K字節(jié)代碼空間肥橙,1K +字節(jié)數(shù)據(jù)空間)

——非常低的中斷禁用時(shí)間

——廣泛的性能測(cè)量指標(biāo)(可配置)

——可用于關(guān)注安全型應(yīng)用

——下表顯示了μC/OS 多年來(lái)的演變, 比較了每個(gè)版本中可用的功能。

3. RT-Thread

??RT-Thread是一款來(lái)自中國(guó)的開(kāi)源嵌入式實(shí)時(shí)操作系統(tǒng)秸侣,由國(guó)內(nèi)一些專(zhuān)業(yè)開(kāi)發(fā)人員從2006年開(kāi)始開(kāi)發(fā)存筏、維護(hù),除了類(lèi)似FreeRTOS和UCOS的實(shí)時(shí)操作系統(tǒng)內(nèi)核外味榛,也包括一系列應(yīng)用組件和驅(qū)動(dòng)框架椭坚,如TCP/IP協(xié)議棧,虛擬文件系統(tǒng)励负,POSIX接口藕溅,圖形用戶(hù)界面,F(xiàn)reeModbus主從協(xié)議棧继榆,CAN框架巾表,動(dòng)態(tài)模塊等汁掠,因?yàn)橄到y(tǒng)穩(wěn)定,功能豐富的特性被廣泛用于新能源集币,電網(wǎng)考阱,風(fēng)機(jī)等高可靠性行業(yè)和設(shè)備上,已經(jīng)被驗(yàn)證是一款高可靠的實(shí)時(shí)操作系統(tǒng)鞠苟。

??RT-Thread實(shí)時(shí)操作系統(tǒng)遵循GPLv2+許可證乞榨,實(shí)時(shí)操作系統(tǒng)內(nèi)核及所有開(kāi)源組件可以免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用源碼当娱,沒(méi)有任何潛在商業(yè)風(fēng)險(xiǎn)吃既。

??RT-Thread實(shí)時(shí)操作系統(tǒng)核心是一個(gè)高效的硬實(shí)時(shí)核心,它具備非常優(yōu)異的實(shí)時(shí)性跨细、穩(wěn)定性鹦倚、可剪裁性,當(dāng)進(jìn)行最小配置時(shí)冀惭,內(nèi)核體積可以到 3k ROM 占用震叙、1k RAM 占用。

任務(wù)/線(xiàn)程調(diào)度

??在RT-Thread中線(xiàn)程是最小的調(diào)度單位散休,線(xiàn)程調(diào)度算法是基于優(yōu)先級(jí)的全搶占式多線(xiàn)程調(diào)度算法媒楼,支持256個(gè)線(xiàn)程優(yōu)先級(jí)(也能通過(guò)配置文件更改為最大支持32個(gè)或8個(gè)線(xiàn)程優(yōu)先級(jí)),0優(yōu)先級(jí)代表最高優(yōu)先級(jí)戚丸,255優(yōu)先級(jí)留給空閑線(xiàn)程使用划址;支持創(chuàng)建相同優(yōu)先級(jí)線(xiàn)程,相同優(yōu)先級(jí)的線(xiàn)程采用可設(shè)置時(shí)間片的輪轉(zhuǎn)調(diào)度算法昏滴;調(diào)度器尋找下一個(gè)最高優(yōu)先級(jí)就緒線(xiàn)程的時(shí)間是恒定的(時(shí)間復(fù)雜度是1猴鲫,即O(1))。系統(tǒng)不限制線(xiàn)程數(shù)量的多少谣殊,只和硬件平臺(tái)的具體內(nèi)存相關(guān)拂共。

任務(wù)同步機(jī)制

??系統(tǒng)支持semaphore(信號(hào)量)、mutex(互斥鎖)作為線(xiàn)程間同步機(jī)制姻几。mutex采用優(yōu)先級(jí)繼存方式以解決優(yōu)先級(jí)翻轉(zhuǎn)問(wèn)題宜狐。semaphore的釋放動(dòng)作可安全用于中斷服務(wù)例程中。同步機(jī)制支持線(xiàn)程按優(yōu)先級(jí)等待或按先進(jìn)先出方式獲取信號(hào)量或互斥鎖蛇捌。

任務(wù)間通信機(jī)制

??系統(tǒng)支持event(事件)抚恒、mbox(郵箱)和MessageQueue(消息隊(duì)列)等通信機(jī)制。event支持多事件”或觸發(fā)”及”與觸發(fā)”络拌,適合于線(xiàn)程等待多個(gè)事件情況俭驮。mbox中一封郵件的長(zhǎng)度固定為4字節(jié),效率較MessageQueue更為高效。通信設(shè)施中的發(fā)送動(dòng)作可安全用于中斷服務(wù)例程中混萝。通信機(jī)制支持線(xiàn)程按優(yōu)先級(jí)等待或按先進(jìn)先出方式獲取遗遵。

時(shí)間管理

??系統(tǒng)使用時(shí)鐘節(jié)拍來(lái)完成同優(yōu)先級(jí)任務(wù)的時(shí)間片輪轉(zhuǎn)調(diào)度線(xiàn)程對(duì)內(nèi)核對(duì)象的時(shí)間敏感性是通過(guò)系統(tǒng)定時(shí)器來(lái)實(shí)現(xiàn)的逸嘀;定時(shí)器支持軟定時(shí)器及硬定時(shí)器(軟定時(shí)器的處理在系統(tǒng)線(xiàn)程的上下文中车要,硬定時(shí)器的處理在中斷的上下文中);定時(shí)器支持一次性超時(shí)及周期性超時(shí)崭倘。

內(nèi)存管理

??系統(tǒng)支持靜態(tài)內(nèi)存池管理及動(dòng)態(tài)內(nèi)存堆管理翼岁。從靜態(tài)內(nèi)存池中獲取內(nèi)存塊時(shí)間恒定,當(dāng)內(nèi)存池為空時(shí)司光,可把申請(qǐng)內(nèi)存塊的線(xiàn)程阻塞(或立刻返回琅坡,或等待一段時(shí)間后仍未獲得內(nèi)存塊返回。這取決于內(nèi)存塊申請(qǐng)時(shí)設(shè)置的等待時(shí)間)飘庄,當(dāng)其他線(xiàn)程釋內(nèi)存塊到內(nèi)存池時(shí)脑蠕,將把相應(yīng)阻塞線(xiàn)程喚醒。動(dòng)態(tài)堆內(nèi)存管理對(duì)于不同的系統(tǒng)資源情況跪削,提供了面向小內(nèi)存系統(tǒng)的小內(nèi)存管理算法及大內(nèi)存系統(tǒng)的SLAB內(nèi)存管理算法。

設(shè)備管理

??系統(tǒng)實(shí)現(xiàn)了按名稱(chēng)訪(fǎng)問(wèn)的設(shè)備管理子系統(tǒng)迂求,可按照統(tǒng)一的API界面訪(fǎng)問(wèn)硬件設(shè)備碾盐。在設(shè)備驅(qū)動(dòng)接口上,根據(jù)嵌入式系統(tǒng)的特點(diǎn)揩局,對(duì)不同的設(shè)備可以?huà)旖酉鄳?yīng)的事件毫玖,當(dāng)設(shè)備事件觸發(fā)時(shí),通知給上層的應(yīng)用程序凌盯。

RT-Thread這個(gè)系統(tǒng)還是有很多自己的想法在里面的付枫,比如Finish,設(shè)備樹(shù)等都是參照Linux的思想來(lái)設(shè)計(jì)的。



freeRTOS比uCOS II優(yōu)勝的地方:

1驰怎。內(nèi)核ROM和耗費(fèi)RAM都比uCOS 小阐滩,特別是RAM。 這在單片機(jī)里面是稀缺資源县忌,uCOS至少要5K以上掂榔, 而freeOS用2~3K也可以跑的很好。

2症杏。freeRTOS 可以用協(xié)程(Co-routine)装获,減少RAM消耗(共用STACK)。uCOS只能用任務(wù)(TASK厉颤,每個(gè)任務(wù)有一個(gè)獨(dú)立的STACK)穴豫。

3。freeRTOS 可以有優(yōu)先度一樣的任務(wù)逼友,這些任務(wù)是按時(shí)間片來(lái)輪流處理精肃,uCOSII 每個(gè)任務(wù)都只有一個(gè)獨(dú)一無(wú)二的優(yōu)先級(jí)秤涩。因此,理論上講肋杖,freeRTOS 可以管理超過(guò)64個(gè)任務(wù)溉仑,而uCOS只能管理64個(gè)。(ucos iii已經(jīng)對(duì)此作了優(yōu)化和擴(kuò)展)

4状植。freeRTOS 是在商業(yè)上免費(fèi)應(yīng)用浊竟。uCOS在商業(yè)上的應(yīng)用是要付錢(qián)的

freeRTOS 不如uCOS的地方

1津畸。比uCOS簡(jiǎn)單振定,任務(wù)間通訊freeRTOS只支持Queque, Semaphores肉拓, Mutex后频。 uCOS除這些外,還支持Flag, MailBox.

2暖途。uCOS的支持比f(wàn)reeRTOS 多卑惜。除操作系統(tǒng)外,freeRTOS只支持TCPIP驻售, uCOS則有大量外延支持露久,比如FS, USB欺栗, GUI毫痕, CAN等的支持

3。uCOS可靠性更高迟几,而且耐優(yōu)化消请,freeRTOS 在我設(shè)置成中等優(yōu)化的時(shí)候,就會(huì)出問(wèn)題类腮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末臊泰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子存哲,更是在濱河造成了極大的恐慌因宇,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祟偷,死亡現(xiàn)場(chǎng)離奇詭異察滑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)修肠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)贺辰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事饲化∶а迹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吃靠,是天一觀的道長(zhǎng)硫眨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)巢块,這世上最難降的妖魔是什么礁阁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮族奢,結(jié)果婚禮上姥闭,老公的妹妹穿的比我還像新娘。我一直安慰自己越走,他們只是感情好棚品,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著廊敌,像睡著了一般铜跑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骡澈,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天疼进,我揣著相機(jī)與錄音,去河邊找鬼秧廉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拣帽,可吹牛的內(nèi)容都是我干的疼电。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼减拭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蔽豺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起拧粪,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤修陡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后可霎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體魄鸦,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年癣朗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拾因。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绢记,靈堂內(nèi)的尸體忽然破棺而出扁达,到底是詐尸還是另有隱情,我是刑警寧澤蠢熄,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布跪解,位于F島的核電站,受9級(jí)特大地震影響签孔,放射性物質(zhì)發(fā)生泄漏叉讥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一骏啰、第九天 我趴在偏房一處隱蔽的房頂上張望节吮。 院中可真熱鬧,春花似錦判耕、人聲如沸透绩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)帚豪。三九已至,卻和暖如春草丧,著一層夾襖步出監(jiān)牢的瞬間狸臣,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工昌执, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烛亦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓懂拾,卻偏偏與公主長(zhǎng)得像煤禽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岖赋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容