[RTOS]--uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点
本篇博客就來細(xì)數(shù)這幾個(gè)RTOS的特點(diǎn)。?
?
以下內(nèi)容均來自官方網(wǎng)站或者官方手冊(cè)Feature的Google翻譯的加了我的一些調(diào)整,沒有任何主觀成分。
1. FreeRTOS
??FreeRTOS是專為小型嵌入式系統(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來創(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ì)小巧,簡單易用。通常,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ù)和中斷之間。
- 創(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ù)量沒有軟件限制。
- 對(duì)可以使用的任務(wù)優(yōu)先級(jí)的數(shù)量沒有軟件限制。
- 對(duì)任務(wù)優(yōu)先級(jí)分配沒有限制 - 可以為多個(gè)實(shí)時(shí)任務(wù)分配相同的優(yōu)先級(jí)。
- 許多支持的架構(gòu)的免費(fèi)開發(fā)工具。
- 從標(biāo)準(zhǔn)的Windows主機(jī)開發(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ù)和內(nèi)核對(duì)象。內(nèi)核的內(nèi)存占用可以縮小,僅包含應(yīng)用程序所需的功能,通常為6-24 KB的代碼空間和1KB的數(shù)據(jù)空間。
- 可靠。 μC/ OS內(nèi)核包括減少開發(fā)時(shí)間的調(diào)試功能。內(nèi)核提供廣泛的范圍檢查,包括檢查API調(diào)用中傳遞的指針,來自ISR的任務(wù)級(jí)服務(wù),允許范圍內(nèi)的參數(shù)以及有效的指定選項(xiàng)。
- 高效。 Micrium的內(nèi)核還包括有價(jià)值的運(yùn)行時(shí)統(tǒng)計(jì)信息,使您的應(yīng)用程序的內(nèi)部可視化。 識(shí)別性能瓶頸,并在開發(fā)周期的早期優(yōu)化電源使用。
μC/ OS內(nèi)核的特性包括以下亮點(diǎn)(Highlights):
- 搶占式多任務(wù)實(shí)時(shí)內(nèi)核,可選擇循環(huán)調(diào)度
- 提供完整,干凈,一致的源代碼,具有深入的文檔。
- 高可擴(kuò)展性:無限數(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 多年來的演變, 比較了每個(gè)版本中可用的功能。
| 發(fā)布年份 | 1992 | 1998 | 2009 |
| 提供源代碼 | √ | √ | √ |
| 書(Book) | √ | √ | √ |
| 搶占式多任務(wù) | √ | √ | √ |
| 最大任務(wù)量 | 64 | 255 | 無限 |
| 每個(gè)優(yōu)先級(jí)別的任務(wù)數(shù) | 1 | 1 | 無限 |
| 時(shí)間片輪轉(zhuǎn)調(diào)度 | × | × | √ |
| 信號(hào)量 | √ | √ | √ |
| 互斥信號(hào)量 | × | √ | √(可嵌套) |
| 事件標(biāo)志組 | × | √ | √ |
| 消息郵箱 | √ | √ | ×(不需要) |
| 消息隊(duì)列 | √ | √ | √ |
| 固定大小的內(nèi)存管理 | × | √ | √ |
| 直接向任務(wù)發(fā)送信號(hào)量 | × | × | √ |
| 無需調(diào)度的信號(hào)發(fā)送選項(xiàng) | × | × | √ |
| 直接向任務(wù)發(fā)送消息 | × | × | √ |
| 軟件定時(shí)器 | × | √ | √ |
| 任務(wù)掛起/恢復(fù) | × | √ | √(可嵌套) |
| 防止死鎖 | √ | √ | √ |
| 可裁剪 | √ | √ | √ |
| 代碼量 | 3K-8K | 6K-26K | 6K-24K |
| 數(shù)據(jù)量 | 1K+ | 1K+ | 1K+ |
| 代碼可固化 | √ | √ | √ |
| 運(yùn)行時(shí)可配置 | × | × | √ |
| 編譯時(shí)可配置 | √ | √ | √ |
| 支持內(nèi)核對(duì)象的 ASCII 命名 | × | √ | √ |
| 同時(shí)等待多個(gè)內(nèi)核對(duì)象 | × | √ | √ |
| 任務(wù)寄存器 | × | √ | √ |
| 內(nèi)置性能測(cè)試 | × | 基本 | 增強(qiáng) |
| 內(nèi)置追蹤點(diǎn) | × | × | √ |
| 用戶可定義的鉤子函數(shù) | × | √ | √ |
| POST 操作可加時(shí)間戳 | × | × | √ |
| 內(nèi)核察覺式調(diào)試 | × | √ | √ |
| 用匯編語言優(yōu)化的調(diào)度器 | × | × | √ |
| 捕獲退出的任務(wù) | × | × | √ |
| 任務(wù)級(jí)時(shí)鐘節(jié)拍處理 | × | √ | √ |
| 系統(tǒng)服務(wù)函數(shù)的數(shù)目 | ~20 | ~90 | ~75 |
3. RT-Thread
Tips:在markdown中實(shí)現(xiàn)段落縮進(jìn)?
-?半方大的空白 或 ?
-?全方大的空白 或 ?
-?不斷行的空白格 或 
??RT-Thread是一款來自中國的開源嵌入式實(shí)時(shí)操作系統(tǒng),由國內(nèi)一些專業(yè)開發(fā)人員從2006年開始開發(fā)、維護(hù),除了類似FreeRTOS和UCOS的實(shí)時(shí)操作系統(tǒng)內(nèi)核外,也包括一系列應(yīng)用組件和驅(qū)動(dòng)框架,如TCP/IP協(xié)議棧,虛擬文件系統(tǒng),POSIX接口,圖形用戶界面,FreeModbus主從協(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)核及所有開源組件可以免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用源碼,沒有任何潛在商業(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ù)/線程調(diào)度
??在RT-Thread中線程是最小的調(diào)度單位,線程調(diào)度算法是基于優(yōu)先級(jí)的全搶占式多線程調(diào)度算法,支持256個(gè)線程優(yōu)先級(jí)(也能通過配置文件更改為最大支持32個(gè)或8個(gè)線程優(yōu)先級(jí)),0優(yōu)先級(jí)代表最高優(yōu)先級(jí),255優(yōu)先級(jí)留給空閑線程使用;支持創(chuàng)建相同優(yōu)先級(jí)線程,相同優(yōu)先級(jí)的線程采用可設(shè)置時(shí)間片的輪轉(zhuǎn)調(diào)度算法;調(diào)度器尋找下一個(gè)最高優(yōu)先級(jí)就緒線程的時(shí)間是恒定的(時(shí)間復(fù)雜度是1,即O(1))。系統(tǒng)不限制線程數(shù)量的多少,只和硬件平臺(tái)的具體內(nèi)存相關(guān)。
- 任務(wù)同步機(jī)制
??系統(tǒng)支持semaphore(信號(hào)量)、mutex(互斥鎖)作為線程間同步機(jī)制。mutex采用優(yōu)先級(jí)繼存方式以解決優(yōu)先級(jí)翻轉(zhuǎn)問題。semaphore的釋放動(dòng)作可安全用于中斷服務(wù)例程中。同步機(jī)制支持線程按優(yōu)先級(jí)等待或按先進(jìn)先出方式獲取信號(hào)量或互斥鎖。
- 任務(wù)間通信機(jī)制
??系統(tǒng)支持event(事件)、mbox(郵箱)和MessageQueue(消息隊(duì)列)等通信機(jī)制。event支持多事件”或觸發(fā)”及”與觸發(fā)”,適合于線程等待多個(gè)事件情況。mbox中一封郵件的長度固定為4字節(jié),效率較MessageQueue更為高效。通信設(shè)施中的發(fā)送動(dòng)作可安全用于中斷服務(wù)例程中。通信機(jī)制支持線程按優(yōu)先級(jí)等待或按先進(jìn)先出方式獲取。
- 時(shí)間管理
??系統(tǒng)使用時(shí)鐘節(jié)拍來完成同優(yōu)先級(jí)任務(wù)的時(shí)間片輪轉(zhuǎn)調(diào)度;線程對(duì)內(nèi)核對(duì)象的時(shí)間敏感性是通過系統(tǒng)定時(shí)器來實(shí)現(xiàn)的;定時(shí)器支持軟定時(shí)器及硬定時(shí)器(軟定時(shí)器的處理在系統(tǒng)線程的上下文中,硬定時(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)存塊的線程阻塞(或立刻返回,或等待一段時(shí)間后仍未獲得內(nèi)存塊返回。這取決于內(nèi)存塊申請(qǐng)時(shí)設(shè)置的等待時(shí)間),當(dāng)其他線程釋內(nèi)存塊到內(nèi)存池時(shí),將把相應(yīng)阻塞線程喚醒。動(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)了按名稱訪問的設(shè)備管理子系統(tǒng),可按照統(tǒng)一的API界面訪問硬件設(shè)備。在設(shè)備驅(qū)動(dòng)接口上,根據(jù)嵌入式系統(tǒng)的特點(diǎn),對(duì)不同的設(shè)備可以掛接相應(yīng)的事件,當(dāng)設(shè)備事件觸發(fā)時(shí),通知給上層的應(yīng)用程序。
RT-Thread這個(gè)系統(tǒng)還是有很多自己的想法在里面的,比如Finish,設(shè)備樹等都是參照Linux的思想來設(shè)計(jì)的。
4. RTX
??Keil RTX是為ARM和Cortex-M設(shè)備設(shè)計(jì)的免版稅,確定性的實(shí)時(shí)操作系統(tǒng)。它允許您創(chuàng)建同時(shí)執(zhí)行多個(gè)功能的程序,并幫助創(chuàng)建更好的結(jié)構(gòu)和更容易維護(hù)的應(yīng)用程序。
特征
- 具有源代碼的免版權(quán),確定性RTOS
- 靈活的調(diào)度:循環(huán),搶占和協(xié)作
- 具有低中斷延遲的高速實(shí)時(shí)操作
- 為資源有限的系統(tǒng)提供小封裝
- 無限數(shù)量的任務(wù)每個(gè)具有254個(gè)優(yōu)先級(jí)
- 無限數(shù)量的郵箱,信號(hào)量,互斥量和計(jì)時(shí)器
- 支持多線程和線程安全操作
- 內(nèi)核感知調(diào)試支持MDK-ARM
- 使用μVision配置向?qū)У幕趯?duì)話框的設(shè)置
優(yōu)點(diǎn)
??盡管無需實(shí)時(shí)操作系統(tǒng)(通過在超級(jí)循環(huán)中執(zhí)行一個(gè)或多個(gè)功能)就可以創(chuàng)建實(shí)時(shí)程序,但KeilRTX為您解決的RTOS有許多調(diào)度,維護(hù)和計(jì)時(shí)問題。
注意事項(xiàng)?
??所有MDK-ARM版本都包含RTX源代碼。
這個(gè)系統(tǒng)我只是用過一次,感覺最大的特點(diǎn)就是用起來簡單,不需要那么多的注意事項(xiàng),拿來就用的感覺,還有就是沒有關(guān)中斷的操作,所以你懂的~
總結(jié)
以上是生活随笔為你收集整理的[RTOS]--uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用lightbox插件实现图片预览功能
- 下一篇: commandname