FreeRTOS

FreeRTOS
开发者Real Time Engineers Ltd.
作業系統家族实时操作系统
運作狀態活躍
源码模式可取得原代碼
当前版本
  • 202212.01 (2023年3月4日;穩定版本)[1]
  • 202210.01-LTS (2022年11月18日;長期支援)[2]
編輯維基數據鏈接
市場取向嵌入式設備
支援平台ARM (ARM7, ARM9, Cortex-M3, ARM Cortex-M4, Cortex-A), Atmel AVR, AVR32英语AVR32, HCS12英语HCS12, MicroBlaze英语MicroBlaze, Cortus英语Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire英语Freescale ColdFire, V850英语V850, 78K0R, Fujitsu MB91460 series, Fujitsu MB96340 series, Nios II, Cortex-R4, TMS570, RM4x
内核类别微內核
许可证MIT许可证
官方網站www.freertos.org
仓库
  • 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中沒有一些像LinuxMicrosoft 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
  • NXPNXP LPC英语NXP LPC
    • LPC1000
    • LPC2000
    • LPC4300
  • Renesas
    • 78K0R
    • RL78
    • H8/S
    • RX600
    • RX200
    • SuperH
    • V850英语V850
  • STMicroelectronics
  • 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]

参见

  • 自由软件主题

参考资料

  1. ^ FreeRTOSv202212.01 Latest. 2023年3月4日 [2023年8月8日]. 
  2. ^ 202210.01-LTS (November 2022). 2022年11月18日 [2023年8月19日]. 
  3. ^ 2011 Embedded Market Study. EE Times. [2016-08-12]. (原始内容存档于2012-04-02). 
  4. ^ 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. 
  5. ^ 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. … 
  6. ^ Official Website. [2016-08-12]. (原始内容存档于2016-08-15). 
  7. ^ FreeRTOS. [8 Aug 2012]. (原始内容存档于2016-08-15). 
  8. ^ SmartBotPaper (PDF). [8 Aug 2012]. (原始内容 (PDF)存档于2012-07-04). 
  9. ^ Relationship between FreeRTOS and SAFERTOS. [2016-08-12]. (原始内容存档于2016-08-19). 
  10. ^ EETimesSafetyCritical. [8 Aug 2012]. (原始内容存档于2011-04-30). 
  11. ^ Embedded Systems Design Europe. [2012-08-10]. (原始内容存档于2012-10-23). 
  12. ^ Texas Instruments (PDF). [2012-09-10]. (原始内容 (PDF)存档于2013-07-04). 
  13. ^ TI Stellaris Product range. [2016-12-30]. (原始内容存档于2013-01-04). 
  14. ^ OpenRTOS. [2016-08-12]. (原始内容存档于2014-10-28). 

外部链接

维基共享资源上的相关多媒体资源: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
历史上的
  • DNIX英语DNIX
  • DSOS英语DSOS
  • EROS英语EROS (microkernel)
  • CoyotOS英语CoyotOS
  • FlexOS英语FlexOS
  • MERT/UNIX-RT英语Multi-Environment Real-Time
  • pSOS英语pSOS (real-time operating system)
  • RMX
  • RSX-11
  • RT-11英语RT-11
  • Sintran III英语Sintran III
  • Symbian
  • THEOS英语THEOS
  • UNOS英语UNOS (operating system)
  • 分类:实时操作系统