FreeRTOS是一個熱門的[3]嵌入式裝置用即時作業系統核心[4][5],它於2003年由Richard Barry設計,並已被經成功移植到35種不同的微控制器上[6]。FreeRTOS採用MIT特許條款特許。
此條目過於依賴第一手來源。 (2016年12月30日) |
開發者 | Real Time Engineers Ltd. |
---|---|
作業系統家族 | 即時作業系統 |
運作狀態 | 活躍 |
原始碼模式 | 可取得原代碼 |
目前版本 | |
市場取向 | 嵌入式裝置 |
支援平台 | ARM (ARM7, ARM9, Cortex-M3, ARM Cortex-M4, Cortex-A), Atmel AVR, AVR32, HCS12, MicroBlaze, Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu MB91460 series, Fujitsu MB96340 series, Nios II, Cortex-R4, TMS570, RM4x |
內核類別 | 微內核 |
特許條款 | MIT特許條款 |
官方網站 | www |
倉庫 |
實作
FreeRTOS的設計小巧且簡易,整個核心程式碼只有3到4個C檔案,為了讓程式碼容易閱讀、移植和維護,大部分的程式碼都是以C語言編寫,只有一些函數(多數是架構特定排班副程式)採用匯編語言編寫。
FreeRTOS提供許多方法以實現多線程(threads)、多作業(task)、互斥鎖(mutex)、訊號量(semaphore)和軟件計時器(software timer),有個為低耗電應用程式提供的無嘀嗒(tick-less)模式,線程的優先權管理也有支援,此外,FreeRTOS提供了四種記憶體組態的模式:
- 僅組態(allocate only)
- 以非常簡易但快速的演算法進行組態與釋放
- 搭配記憶體合併,以較複雜但快速的演算法進行組態與釋放
- 搭配互斥保護,以 C 函式庫組態進行組態與釋放
FreeRTOS中沒有一些像Linux、Microsoft Windows等典型作業系統具有的先進特徵,例如裝置驅動程式、先進記憶體管理機制、用戶管理和網絡管理,FreeRTOS着重在執行的簡潔與速度,FreeRTOS有時會被視為是一個『線程函式庫』而非『作業系統』,儘管可以找到命令列介面和類似POSIX I/O 介面的外掛程式。
FreeRTOS實作了多線程,主程式會在規律的短時間區間內呼叫一個線程時計方法,這個方法會以循環制依照任務的優先順序進行任務切換,一般來說,這個短時間區間介於 1/1000 秒與 1/100 秒之間,透過一個硬件時計中斷來計時,但這個區間經常隨着特定的應用而改變。
從FreeRTOS官網(FreeRTOS.org(頁面存檔備份,存於互聯網檔案館))所下載到的程式碼包含準備用來移植或編譯的設定檔和演示程式碼,讓用戶可以快速地進行應用程式設計。
主要特色
支援平台
- Altera Nios II
- ARM architecture
- Atmel
- Atmel AVR
- AVR32
- SAM3
- SAM4
- SAM7
- SAM9
- SAM D20
- SAM L21
- Cortus
- APS1
- APS3
- APS3R
- APS5
- FPS6
- FPS8
- Cypress
- Energy micro
- EFM32
- Fujitsu
- FM3 series
- MB91460 series
- MB96340
- Freescale
- Coldfire V1
- Coldfire V2
- HCS12
- Kinetis
- IBM
- PPC405,PPC404
- Infineon
- TriCore
- Infineon XMC4000
- Intel
- PIC微控制器
- PIC18
- PIC24
- dsPIC
- PIC32
- Microsemi
- SmartFusion
- Multiclet
- Multiclet P1
- NXP(NXP LPC)
- LPC1000
- LPC2000
- LPC4300
- Renesas
- STMicroelectronics
- STM32
- STR7
- Texas Instruments
- MSP430
- Stellaris
- Hercules(TMS570LS04 & RM42)
- Xilinx
- MicroBlaze
- Zynq-7000
相關系統
SafeRTOS的功能和FreeRTOS類似,但是是為實現安全關鍵系統所設計。FreeRTOS的機能模型經過完全的HAZOP,其機能模型及API因為用戶誤用或是硬件失效造成的弱點都已經識別且修正。最後的需求經過完整IEC 61508 SIL 3開發生命週期來實現,也是只有軟件的元件可以達到的最高等級。
SafeRTOS是由WITTENSTEIN high integrity systems開發,原開發者 Real Time Engineers Ltd 為其合作夥伴[7]。SafeRTOS和FreeRTOS有相同的排程演算法,相似的API,其他方面也相當類似[8],不過是因為不同的目標而設計的[9]。SafeRTOS只用C語言進行開發,以符合IEC61508的認證需求[10]。
在作業系統中,SafeRTOS有其獨特的地方,是只需要放在微處理器中的唯讀記憶體(ROM)即可,因此可以進行IEC61508或是其他安全或是可靠度相關的完整軟件及硬件預認證[11]。若是放在唯讀記憶體中,SafeRTOS代碼只能依照原始的組態來執行,因此用這套作業系統的裝置的認證測試,不需在安全認證中重新測試其開發的程式[12]。
德州儀器會針對其TI Stellaris系列的部份MCU的ROM裏加上SafeRTOS[13],因此客戶可以將SafeRTOS用在商業應用中,而不用採購其原代碼。在這種使用方式下,會提供一個簡單的C語言標頭檔將SafeRTOS的API函數對映於其在ROM中對應位置內。這種將SafeRTOS放在唯讀記憶體的作法相當理想,因為其中的程式不會被修改,去除了用戶的錯誤,也確保在專案開發過程中,SafeRTOS部份的程式都和認證時的相同。
OpenRTOS也是和FreeRTOS有關的專案,其代碼和FreeRTOS完全相同,但是其特許及收費方式不同。OpenRTOS是由WITTENSTEIN Aerospace and Simulation Ltd提供的軟件,其特許要求移除了所有參考GNU通用公眾特許條款的內容。OpenRTOS是商業軟件,需購買後才能使用,也沒有上述的特許要求,購買OpenRTOS的客戶也可以獲得完整的技術支援[14]。
參見
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.