FreeRTOS
- 202212.01 (2023年3月4日;穩定版本)[1]
- 202210.01-LTS (2022年11月18日;長期支援)[2]
- github
.com /FreeRTOS /FreeRTOS
FreeRTOS是一個熱門的[3]嵌入式裝置用即時作業系統核心[4][5],它于2003年由Richard Barry设计,并已被經成功移植到35種不同的微控制器上[6]。FreeRTOS採用MIT许可证授權。
實作
FreeRTOS的設計小巧且簡易,整個核心程式碼只有3到4個C檔案,為了讓程式碼容易閱讀、移植和維護,大部分的程式碼都是以C語言編寫,只有一些函式(多數是架構特定排班副程式)採用組合語言編寫。
FreeRTOS提供許多方法以實現多线程(threads)、多作業(task)、互斥鎖(mutex)、號誌(semaphore)和軟體計時器(software timer),有個為低耗電應用程式提供的无嘀嗒(tick-less)模式,執行緒的優先權管理也有支援,此外,FreeRTOS提供了四種記憶體配置的模式:
- 僅配置(allocate only)
- 以非常簡易但快速的演算法進行配置與釋放
- 搭配記憶體合併(英语:Coalescing (computer science)),以較複雜但快速的演算法進行配置與釋放
- 搭配互斥保護,以 C 函式庫配置進行配置與釋放
FreeRTOS中沒有一些像Linux、Microsoft Windows等典型作業系統具有的先進特徵,例如裝置驅動程式(英语:device drivers)、先進記憶體管理機制、使用者管理和網路管理,FreeRTOS著重在執行的簡潔與速度,FreeRTOS有時會被視為是一個『執行緒函式庫』而非『作業系統』,儘管可以找到命令列介面和類似POSIX I/O 介面的插件。
FreeRTOS實作了多執行緒,主程式會在規律的短時間區間內呼叫一個執行緒時計方法,這個方法會以循環制依照任務的優先順序進行任務切換,一般來說,這個短時間區間介於 1/1000 秒與 1/100 秒之間,透過一個硬體時計中斷來計時,但這個區間經常隨著特定的應用而改變。
從FreeRTOS官網(FreeRTOS.org(页面存档备份,存于互联网档案馆))所下載到的程式碼包含準備用來移植或編譯的設定檔和演示程式碼,讓使用者可以快速地進行應用程式設計。
主要特色
- 記憶體足跡非常小,低負擔(英语:Overhead (computing))(overhead)且執行非常快速
- 提供低電耗應用程式無計時選項
- 對作業系統新手而言,很適合作為入門教材,對於專業開發者來說則適合用於商業產品開發
- 排程器可以設定成可搶先(preemptive)或共同運作(英语:Cooperative multitasking)(cooperative operation)
- 提供共用副程式(coroutine),在FreeRTOS中,共用副程式是一個記憶體堆疊用量非常有限但非常簡易輕巧的任務
- 支援使用(generic trace macros(页面存档备份,存于互联网档案馆). )
支援平台
- Altera Nios II
- ARM architecture
- Atmel
- Atmel AVR
- AVR32(英语:AVR32)
- SAM3
- SAM4
- SAM7
- SAM9
- SAM D20
- SAM L21
- Cortus(英语:Cortus)
- APS1
- APS3
- APS3R
- APS5
- FPS6
- FPS8
- Cypress(英语:Cypress Semiconductor)
- Energy micro(英语:Energy Micro)
- EFM32(英语:EFM32)
- Fujitsu
- FM3 series
- MB91460 series
- MB96340
- Freescale
- Coldfire(英语:Freescale ColdFire) V1
- Coldfire V2
- HCS12(英语:Freescale 68HC12)
- Kinetis
- IBM
- PPC405(英语:PowerPC 400),PPC404
- Infineon
- TriCore(英语:Infineon TriCore)
- Infineon XMC4000(英语:Infineon XMC)
- Intel
- PIC微控制器
- PIC18
- PIC24
- dsPIC
- PIC32
- Microsemi(英语:Microsemi)
- SmartFusion(英语:Actel SmartFusion)
- Multiclet(英语:Multiclet)
- Multiclet P1
- NXP(NXP LPC(英语:NXP LPC))
- LPC1000
- LPC2000
- LPC4300
- Renesas
- STMicroelectronics
- STM32
- STR7
- Texas Instruments
- MSP430
- Stellaris
- Hercules(英语:Hercules (processors))(TMS570LS04 & RM42)
- Xilinx
- MicroBlaze(英语:MicroBlaze)
- Zynq-7000
相關系統
SafeRTOS
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
OpenRTOS也是和FreeRTOS有關的專案,其代碼和FreeRTOS完全相同,但是其授權及收費方式不同。OpenRTOS是由WITTENSTEIN Aerospace and Simulation Ltd提供的軟體,其授權要求移除了所有參考GNU通用公共许可证的內容。OpenRTOS是商業軟體,需購買後才能使用,也沒有上述的授權要求,購買OpenRTOS的客戶也可以獲得完整的技術支援[14]。
参见
参考资料
- ^ FreeRTOSv202212.01 Latest. 2023年3月4日 [2023年8月8日].
- ^ 202210.01-LTS (November 2022). 2022年11月18日 [2023年8月19日].
- ^ 2011 Embedded Market Study. EE Times. [2016-08-12]. (原始内容存档于2012-04-02).
- ^ Kolesnki, Sergey. Comparing microcontroller real-time operating systems. 2013-12-08 [2016-08-12]. (原始内容存档于2016-08-20).
A kernel is not an RTOS, but this can be a confusing issue because of the inappropriate naming chosen for some popular kernels, ‘freeRTOS’ for example.
- ^ Why RTOS and What Is RTOS?. [29 August 2014]. (原始内容存档于2016-08-07).
What is FreeRTOS? … The size constraints, and dedicated end application nature, rarely warrant the use of a full RTOS implementation - or indeed make the use of a full RTOS implementation possible. FreeRTOS therefore provides the core real time scheduling functionality, inter-task communication, timing and synchronisation primitives only. This means it is more accurately described as a real time kernel, or real time executive. …
- ^ Official Website. [2016-08-12]. (原始内容存档于2016-08-15).
- ^ FreeRTOS. [8 Aug 2012]. (原始内容存档于2016-08-15).
- ^ SmartBotPaper (PDF). [8 Aug 2012]. (原始内容 (PDF)存档于2012-07-04).
- ^ Relationship between FreeRTOS and SAFERTOS. [2016-08-12]. (原始内容存档于2016-08-19).
- ^ EETimesSafetyCritical. [8 Aug 2012]. (原始内容存档于2011-04-30).
- ^ Embedded Systems Design Europe. [2012-08-10]. (原始内容存档于2012-10-23).
- ^ Texas Instruments (PDF). [2012-09-10]. (原始内容 (PDF)存档于2013-07-04).
- ^ TI Stellaris Product range. [2016-12-30]. (原始内容存档于2013-01-04).
- ^ OpenRTOS. [2016-08-12]. (原始内容存档于2014-10-28).
外部链接
- Official website(页面存档备份,存于互联网档案馆)
- OPENRTOS
- SAFERTOS(页面存档备份,存于互联网档案馆)
- FreeRTOS+Trace(页面存档备份,存于互联网档案馆)
- FreeRTOS ecosystem products(页面存档备份,存于互联网档案馆)
- 成功大學 FreeRTOS(页面存档备份,存于互联网档案馆)
- 查
- 论
- 编
- Mynewt OS(英语:Apache Mynewt OS)
- BeRTOS(英语:BeRTOS)
- ChibiOS/RT
- Contiki
- Composite
- Djyos
- ECOS
- ERIKA Enterprise(英语:ERIKA Enterprise)
- FreeRTOS
- Fuchsia
- FunkOS(英语:FunkOS)
- Nano-RK(英语:Nano-RK)
- NuttX
- One os
- QP
- RIOT
- RTAI(英语:RTAI)
- RTEMS
- RTLinux
- RT-Thread
- seL4(英语:seL4)
- Talon DSP RTOS(英语:Talon DSP RTOS)
- TI-RTOS(英语:TI-RTOS)
- TinyOS
- TockOS
- TRON
- Wombat OS(英语:Wombat OS)
- Xenomai
- Zephyr
- 4690 OS(英语:4690 Operating System)
- DioneOS(英语:DioneOS)
- INTEGRITY
- Junos OS(英语:Junos OS)
- LynxOS
- µC/OS-II(英语:Micro-Controller Operating Systems)
- MQX(英语:MQX)
- Multiuser DOS(英语:Multiuser DOS)
- Nucleus RTOS
- OpenComRTOS(英语:OpenComRTOS)
- OSE(英语:Operating System Embedded)
- OS-9(英语:OS-9)
- OS2000(英语:OS2000)
- PikeOS(英语:PikeOS)
- QNX
- REX OS(英语:REX OS)
- ScreenOS(英语:ScreenOS)
- L4微内核系列
- ThreadX
- TPF(英语:Transaction Processing Facility)
- VRTX
- VxWorks
- Windows Embedded Compact
- SylixOS
- 分类:实时操作系统