FreeRTOS
FreeRTOS是一个热门的[4]嵌入式设备用即时操作系统内核[5][6],它于2003年由Richard Barry设计,并已被经成功移植到35种不同的单片机上[7]。FreeRTOS采用MIT许可证授权。
![]() | |
开发者 | 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
SafeRTOS的功能和FreeRTOS类似,但是是为实现安全关键系统所设计。FreeRTOS的机能模型经过完全的HAZOP,其机能模型及API因为用户误用或是硬件失效造成的弱点都已经识别且修正。最后的需求经过完整IEC 61508 SIL 3开发生命周期来实现,也是只有软件的组件可以达到的最高等级。
SafeRTOS是由WITTENSTEIN high integrity systems开发,原开发者 Real Time Engineers Ltd 为其合作伙伴[8]。SafeRTOS和FreeRTOS有相同的调度算法,相似的API,其他方面也相当类似[9],不过是因为不同的目标而设计的[10]。SafeRTOS只用C语言进行开发,以符合IEC61508的认证需求[11]。
在操作系统中,SafeRTOS有其独特的地方,是只需要放在微处理器中的唯读内存(ROM)即可,因此可以进行IEC61508或是其他安全或是可靠度相关的完整软件及硬件预认证[12]。若是放在唯读内存中,SafeRTOS代码只能依照原始的组态来运行,因此用这套操作系统的设备的认证测试,不需在安全认证中重新测试其开发的程序[13]。
德州仪器会针对其TI Stellaris系列的部份MCU的ROM里加上SafeRTOS[14],因此客户可以将SafeRTOS用在商业应用中,而不用采购其原代码。在这种使用方式下,会提供一个简单的C语言标头档将SafeRTOS的API函数映射于其在ROM中对应位置内。这种将SafeRTOS放在唯读内存的作法相当理想,因为其中的程序不会被修改,去除了用户的错误,也确保在项目开发过程中,SafeRTOS部份的程序都和认证时的相同。
OpenRTOS
OpenRTOS也是和FreeRTOS有关的项目,其代码和FreeRTOS完全相同,但是其授权及收费方式不同。OpenRTOS是由WITTENSTEIN Aerospace and Simulation Ltd提供的软件,其授权要求移除了所有参考GNU通用公共许可证的内容。OpenRTOS是商业软件,需购买后才能使用,也没有上述的授权要求,购买OpenRTOS的客户也可以获得完整的技术支持[15]。
参见
参考资料
- . 2020年9月17日 [2020年10月10日].
- . 2023年3月4日 [2023年8月8日].
- . 2022年11月18日 [2023年8月19日].
- . EE Times. [2016-08-12]. (原始内容存档于2012-04-02).
- Kolesnki, Sergey. . 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.
- . [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. …
- . [2016-08-12]. (原始内容存档于2016-08-15).
- . [8 Aug 2012]. (原始内容存档于2016-08-15).
- (PDF). [8 Aug 2012]. (原始内容 (PDF)存档于2012-07-04).
- . [2016-08-12]. (原始内容存档于2016-08-19).
- . [8 Aug 2012]. (原始内容存档于2011-04-30).
- . [2012-08-10]. (原始内容存档于2012-10-23).
- (PDF). [2012-09-10]. (原始内容 (PDF)存档于2013-07-04).
- . [2016-12-30]. (原始内容存档于2013-01-04).
- . [2016-08-12]. (原始内容存档于2014-10-28).
外部链接
![]() |
维基共享资源上的相关多媒体资源:FreeRTOS |
- Official website(页面存档备份,存于)
- OPENRTOS
- SAFERTOS(页面存档备份,存于)
- FreeRTOS+Trace(页面存档备份,存于)
- FreeRTOS ecosystem products(页面存档备份,存于)
- 成功大学 FreeRTOS(页面存档备份,存于)