FreeRTOS

FreeRTOS是一個熱門的嵌入式裝置用即時作業系統核心，它于2003年由Richard Barry设计，并已被經成功移植到35種不同的微控制器上。FreeRTOS採用MIT许可证授權。

 實作 
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）所下載到的程式碼包含準備用來移植或編譯的設定檔和演示程式碼，讓使用者可以快速地進行應用程式設計。

 主要特色 
 記憶體足跡非常小，低（overhead）且執行非常快速
 提供低電耗應用程式無計時選項
 對作業系統新手而言，很適合作為入門教材，對於專業開發者來說則適合用於商業產品開發
 排程器可以設定成可搶先（preemptive）或（cooperative operation）
 提供共用副程式（coroutine），在FreeRTOS中，共用副程式是一個記憶體堆疊用量非常有限但非常簡易輕巧的任務
 支援使用（generic trace macros. ）

 支援平台 

Altera Nios II
ARM architecture
ARM7
ARM9
ARM Cortex-M
 ARM Cortex-A
Atmel
Atmel AVR

SAM3
SAM4
SAM7
SAM9
SAM D20
SAM L21

APS1
APS3
APS3R
APS5
FPS6
FPS8

 PSoC


Fujitsu
FM3 series
MB91460 series
MB96340
Freescale
 V1
Coldfire V2

Kinetis
IBM
 ,PPC404
Infineon


Intel
x86
8052
PIC微控制器
PIC18
PIC24
dsPIC
PIC32



 Multiclet P1
NXP（）
 LPC1000
 LPC2000
 LPC4300
Renesas
78K0R
RL78
H8/S
RX600
RX200
SuperH

 STMicroelectronics
 STM32
 STR7
Texas Instruments
 MSP430
 Stellaris
 （TMS570LS04 & RM42）
Xilinx

Zynq-7000

相關系統
SafeRTOS
SafeRTOS的功能和FreeRTOS類似，但是是為實現安全關鍵系統所設計。FreeRTOS的機能模型經過完全的HAZOP，其機能模型及API因為使用者誤用或是硬體失效造成的弱點都已經識別且修正。最後的需求經過完整IEC 61508 SIL 3開發生命週期來實現，也是只有軟體的元件可以達到的最高等級。

SafeRTOS是由WITTENSTEIN high integrity systems開發，原開發者 Real Time Engineers Ltd
為其合作夥伴。SafeRTOS和FreeRTOS有相同的排程演算法，相似的API，其他方面也相當類似，不過是因為不同的目標而設計的。SafeRTOS只用C語言進行開發，以符合IEC61508的認證需求。

在作業系統中，SafeRTOS有其獨特的地方，是只需要放在微處理器中的唯讀記憶體（ROM）即可，因此可以進行IEC61508或是其他安全或是可靠度相關的完整軟體及硬體預認證。若是放在唯讀記憶體中，SafeRTOS代碼只能依照原始的組態來執行，因此用這套作業系統的設備的認證測試，不需在安全認證中重新測試其開發的程式。

德州儀器會針對其TI Stellaris系列的部份MCU的ROM裡加上SafeRTOS，因此客戶可以將SafeRTOS用在商業應用中，而不用採購其原代碼。在這種使用方式下，會提供一個簡單的C語言標頭檔將SafeRTOS的API函式對映於其在ROM中對應位置內。這種將SafeRTOS放在唯讀記憶體的作法相當理想，因為其中的程式不會被修改，去除了使用者的錯誤，也確保在專案開發過程中，SafeRTOS部份的程式都和認證時的相同。

 OpenRTOS 
OpenRTOS也是和FreeRTOS有關的專案，其代碼和FreeRTOS完全相同，但是其授權及收費方式不同。OpenRTOS是由WITTENSTEIN Aerospace and Simulation Ltd提供的軟體，其授權要求移除了所有參考GNU通用公共许可证的內容。OpenRTOS是商業軟體，需購買後才能使用，也沒有上述的授權要求，購買OpenRTOS的客戶也可以獲得完整的技術支援。

 参见 

 嵌入式操作系统

 参考资料 

 外部链接 

 Official website
OPENRTOS
SAFERTOS
FreeRTOS+Trace
FreeRTOS ecosystem products
 成功大學 FreeRTOS

Category:ARM操作系统
Category:嵌入式操作系统
Category:自由作業系統
Category:微內核
Category:实时操作系统
Category:Amazon Web Services