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

評論