選擇合適的操作系統(tǒng)對(duì)于項(xiàng)目的成功至關(guān)重要。了解如何在Raspberry Pi上使用RTOS,并看看你有哪些選擇吧!
從OS到RTOS
Raspberry Pi是由Raspberry Pi基金會(huì)推出的一系列單板計(jì)算機(jī)(SBC)。它們最初是作為教育工具開發(fā)的,但后來(lái)被廣泛用于各種項(xiàng)目,包括機(jī)器人技術(shù)、家庭自動(dòng)化、物聯(lián)網(wǎng)、個(gè)人和商業(yè)用途。這些信用卡大小的計(jì)算機(jī)能夠執(zhí)行普通電腦的任務(wù),如文字處理、編程和網(wǎng)絡(luò)瀏覽。
在個(gè)人臺(tái)式計(jì)算機(jī)上,你可能使用的是像Windows、MacOS或Linux這樣的全功能操作系統(tǒng)。(有些Raspberry Pi能夠運(yùn)行Windows,但它們的原生操作系統(tǒng)是基于Linux的。)但有時(shí),這些類型的操作系統(tǒng)對(duì)于你的任務(wù)來(lái)說(shuō)過(guò)于占用資源。對(duì)于某些項(xiàng)目,實(shí)時(shí)操作系統(tǒng)(RTOS)是更合適的選擇。
Pi上的RTOS
顧名思義,RTOS是為時(shí)間關(guān)鍵型用例設(shè)計(jì)的,換句話說(shuō),就是那些必須滿足時(shí)間要求的項(xiàng)目。這類項(xiàng)目的例子可以在航天器系統(tǒng)、心臟起搏器和空中交通管制中找到。與通用計(jì)算系統(tǒng)相比,這些現(xiàn)實(shí)世界的應(yīng)用需要精確的時(shí)間限制來(lái)管理和優(yōu)先處理任務(wù)。
必須指出的是,使用像Arduino這樣的微控制器板來(lái)處理實(shí)時(shí)任務(wù)是更常見的做法。也就是說(shuō),Raspberry Pi單板計(jì)算機(jī)價(jià)格低廉,擁有龐大的社區(qū),并提供充足的教育資源來(lái)幫助你入門。Raspberry Pi基金會(huì)還發(fā)布了他們的第一塊微控制器板——Raspberry Pi Pico。
局限性
如果你打算在Raspberry Pi單板計(jì)算機(jī)上運(yùn)行RTOS,那么需要注意一些局限性。RTOS系統(tǒng)的一個(gè)重要要求是足夠的隨機(jī)訪問(wèn)存儲(chǔ)器(RAM),而較舊的Raspberry Pi型號(hào)可能沒(méi)有這一點(diǎn)。根據(jù)你的具體用途,你還需要注意你的板子的最大時(shí)鐘速度(Raspberry Pi4可以達(dá)到1,500 MHz,但這并不適用于整個(gè)系列)。
此外,Raspberry Pi單板計(jì)算機(jī)沒(méi)有實(shí)時(shí)時(shí)鐘(RTC),而是通過(guò)互聯(lián)網(wǎng)連接來(lái)保持時(shí)間。這可能意味著對(duì)于時(shí)間關(guān)鍵型反饋應(yīng)用來(lái)說(shuō),可靠性和準(zhǔn)確性會(huì)降低。然而,這個(gè)問(wèn)題有解決辦法,比如添加一個(gè)實(shí)時(shí)時(shí)鐘模塊。事實(shí)上,Raspberry PiPico已經(jīng)配備了RTC硬件。
(請(qǐng)注意,RTC中的“實(shí)時(shí)”與RTOS中的“實(shí)時(shí)”含義不同。前者是指能夠在現(xiàn)實(shí)世界中顯示時(shí)間的設(shè)備,而后者是指電子設(shè)備中的不間斷計(jì)時(shí)。)
如果你有一個(gè)需要RTOS的項(xiàng)目,那么有很多選擇可供選擇。讓我們來(lái)看看Raspberry Pi上一些最好的RTOS選項(xiàng)!
從名字上你可能就能猜到,F(xiàn)reeRTOS是一個(gè)用于嵌入式系統(tǒng)的免費(fèi)開源RTOS。它是一個(gè)相對(duì)較小的應(yīng)用程序,由不到9,000行代碼組成,包括注釋!盡管體積小,但它能夠優(yōu)先處理、調(diào)度和運(yùn)行用戶定義的任務(wù)。其代碼的約40%處理任務(wù)之間的通信,因此它是具有競(jìng)爭(zhēng)優(yōu)先級(jí)項(xiàng)目的強(qiáng)大選擇。
FreeRTOS正在積極開發(fā)和支持,甚至可用于商業(yè)應(yīng)用。這意味著用戶可以使用FreeRTOS將其產(chǎn)品推向市場(chǎng),而無(wú)需獲得開發(fā)者的許可或支付費(fèi)用。
GitHub用戶jameswalmsley已經(jīng)為Raspberry Pi整合了一個(gè)FreeRTOS的基本端口,如果你想自己嘗試,這將是一個(gè)很好的起點(diǎn)。
- 開發(fā)者:Richard Barry(現(xiàn)在由亞馬遜網(wǎng)絡(luò)服務(wù)管理)
- 用途:時(shí)間關(guān)鍵型嵌入式系統(tǒng)應(yīng)用的單一、獨(dú)立解決方案;更小、更易使用的選項(xiàng)
ChibiOS
ChibiOS是一個(gè)緊湊且快速的實(shí)時(shí)操作系統(tǒng)。盡管體積?。ūM管不如FreeRTOS那么小),但在性能上毫不妥協(xié)。它可以從8位架構(gòu)向上擴(kuò)展,功能完整,具有完全靜態(tài)的架構(gòu)以及清晰優(yōu)雅的代碼庫(kù)。
如果你想使用它,ChibiOS在三種許可下可用:有免費(fèi)的開源和商業(yè)選項(xiàng),以及一個(gè)用于大規(guī)模部署的付費(fèi)完全商業(yè)許可。
GitHub用戶steve-bate分享了ChibiOS的Raspberry Pi端口,并提供了一個(gè)有用的入門指南,包括硬件解釋。
- 開發(fā)者:Giovanni Di Sirio
- 用途:緊湊、快速的RTOS
- 顯著特性和功能:對(duì)于大多數(shù)內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如就緒列表、計(jì)時(shí)器列表和線程隊(duì)列)使用高效的雙向循環(huán)鏈表
RTEMS
多處理器系統(tǒng)實(shí)時(shí)執(zhí)行體(RTEMS)是一個(gè)支持開放應(yīng)用程序接口(API)標(biāo)準(zhǔn)(如可移植操作系統(tǒng)接口POSIX)的開源選項(xiàng)。它已被用于太空飛行、醫(yī)療應(yīng)用、網(wǎng)絡(luò)以及許多其他嵌入式系統(tǒng)。
RTEMS定期更新穩(wěn)定版本,并有一個(gè)Discord服務(wù)器用于社區(qū)支持。
與這個(gè)列表上的其他一些選項(xiàng)不同,RTEMS直接支持Raspberry Pi硬件。如果你想試試它,可以從RTEMS網(wǎng)站下載軟件包,還有一個(gè)有用的設(shè)置指南。
開發(fā)者:OAR公司
用途:太空飛行、醫(yī)療行業(yè)、網(wǎng)絡(luò)等應(yīng)用
顯著特性和功能:為Raspberry Pi提供指定支持包
RT-Thread
RT-Thread是一個(gè)開源且可擴(kuò)展的實(shí)時(shí)操作系統(tǒng)。它與x86、ARM RISC-V和Xtensa硬件兼容,還有一個(gè)用于資源受限設(shè)備的Nano版本。最小內(nèi)核只需要1.2 KB的RAM和3 KB的閃存,這遠(yuǎn)遠(yuǎn)少于你的Raspberry Pi可能擁有的可用資源。
RT-Thread特別支持基于RP2040的開發(fā)板,如Raspberry PiPico,它還列出了對(duì)Raspberry Pi2、3和4型號(hào)的支持。還有一個(gè)圖形化集成開發(fā)環(huán)境(IDE)(RT-Thread Studio),這使得這個(gè)RTOS對(duì)于經(jīng)驗(yàn)較少的開發(fā)者來(lái)說(shuō)更加易用。
開發(fā)者:Bernard Xiong & RT-Thread團(tuán)隊(duì)
用途:嵌入式應(yīng)用和物聯(lián)網(wǎng)設(shè)備
顯著特性和功能:為多個(gè)Raspberry PiSBC型號(hào)和Pico提供指定支持;圖形化IDE
NuttX
NuttX是一個(gè)實(shí)時(shí)操作系統(tǒng)(RTOS),專注于標(biāo)準(zhǔn)合規(guī)性,特別是POSIX和美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)的標(biāo)準(zhǔn)。它的第二個(gè)重點(diǎn)是可伸縮性,并且與從8位到64位的微控制器環(huán)境兼容。
它已被移植到新的Raspberry PiPico和基于RP2040微控制器的其他主板上。它完全支持其兩個(gè)ARM Cortex-M0+核心上的對(duì)稱多處理(SMP)操作。
- 開發(fā)者:格雷戈里·納特(Gregory Nutt)
- 預(yù)期用途:符合國(guó)際標(biāo)準(zhǔn)的RTOS
- 顯著特點(diǎn)和功能:體積小、可伸縮性強(qiáng)
TrampolineRTOS
Trampoline是為小型嵌入式系統(tǒng)設(shè)計(jì)的靜態(tài)RTOS,這意味著用戶可以對(duì)內(nèi)存分配進(jìn)行更多控制。這種類型的RTOS操作起來(lái)更復(fù)雜,但對(duì)于重復(fù)任務(wù)來(lái)說(shuō),它可以是一個(gè)更穩(wěn)定且可預(yù)測(cè)的選擇。
Trampoline API與汽車標(biāo)準(zhǔn)保持一致,但這不僅僅是一個(gè)局限于單一行業(yè)的簡(jiǎn)單選擇。文檔中特別支持早期Raspberry Pi型號(hào)中使用的博通BCM2836處理器,因此,如果你手頭有舊款的Raspberry Pi,這將是一個(gè)安全且穩(wěn)定的選擇。
- 開發(fā)者:LS2N的實(shí)時(shí)系統(tǒng)小組
- 預(yù)期用途:汽車領(lǐng)域的嵌入式RTOS
- 顯著特點(diǎn)和功能:靜態(tài)RTOS;支持舊款Raspberry Pi型號(hào)
RODOS
實(shí)時(shí)機(jī)載可靠操作系統(tǒng)(RODOS)是另一個(gè)開源的嵌入式選項(xiàng),最初是為控制衛(wèi)星而開發(fā)的,所以你可以相信它的準(zhǔn)確性!畢竟,它是在德國(guó)航空航天中心開發(fā)的,至今仍用于該中心的微衛(wèi)星項(xiàng)目。
RODOS可以獨(dú)立運(yùn)行(“裸機(jī)”)或在另一個(gè)操作系統(tǒng)之上運(yùn)行,這使其能夠靈活應(yīng)用于各種項(xiàng)目類型。
- 開發(fā)者:維爾茨堡大學(xué)信息學(xué)研究所
- 預(yù)期用途:衛(wèi)星控制或任何需要高可靠性的應(yīng)用
- 顯著特點(diǎn)和功能:超快速啟動(dòng);線程安全的通信和同步
Mbed (Linux) OS
最后,Mbed OS是一個(gè)為物聯(lián)網(wǎng)(IoT)設(shè)備設(shè)計(jì)的開源嵌入式操作系統(tǒng)。它包括基于ARM Cortex-M微控制器開發(fā)IoT設(shè)備所需的所有功能。雖然Mbed OS目前還不支持Raspberry Pi主板,但在撰寫本文時(shí),一個(gè)針對(duì)Raspberry PiPico的移植版本正在開發(fā)中,并且過(guò)去已經(jīng)成功實(shí)現(xiàn)了一些用于Raspberry Pi的API。
然而,相關(guān)的操作系統(tǒng)Mbed Linux OS是專門為Raspberry Pi3等流行開發(fā)板所基于的ARM Cortex-A處理器設(shè)計(jì)的。雖然該存儲(chǔ)庫(kù)已不再維護(hù),但仍在GitHub上可訪問(wèn),只是要注意,它不再獲得持續(xù)支持。
- 開發(fā)者:Arm
- 預(yù)期用途:嵌入式應(yīng)用和IoT設(shè)備
- 顯著特點(diǎn)和功能:Raspberry PiPico移植版本正在開發(fā)中
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6978瀏覽量
124415 -
RTOS
+關(guān)注
關(guān)注
24文章
835瀏覽量
120292 -
Raspberry Pi
+關(guān)注
關(guān)注
2文章
613瀏覽量
22555
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
一文詳解實(shí)時(shí)操作系統(tǒng)(RTOS)
什么是實(shí)時(shí)操作系統(tǒng)(RTOS)
實(shí)時(shí)操作系統(tǒng)RTOS有什么要點(diǎn)?
實(shí)時(shí)操作系統(tǒng)(RTOS)是指什么
選擇實(shí)時(shí)操作系統(tǒng)(RTOS)的要點(diǎn)詳解

如何安裝實(shí)時(shí)操作系統(tǒng)RTOS

選擇實(shí)時(shí)操作系統(tǒng)(RTOS)的要點(diǎn)詳解
MCU跑操作系統(tǒng)時(shí)RTOS總是必要的嗎
Raspberry Pi(樹莓派)操作系統(tǒng)的安裝方法
如何選擇您的嵌入式系統(tǒng)操作系統(tǒng):選擇指南
選擇實(shí)時(shí)操作系統(tǒng)(RTOS)的要點(diǎn)詳解
帶你認(rèn)識(shí)實(shí)時(shí)操作系統(tǒng)(rtos)

評(píng)論