FreeRTOS: Difference between revisions
Alphabetized list of supported architectures; simplified some wording. |
add x86 os category |
||
(336 intermediate revisions by more than 100 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Real-time operating system}} |
|||
{{Infobox OS| |
|||
{{Infobox OS |
|||
| name = FreeRTOS |
| name = FreeRTOS |
||
| logo = Logo freeRTOS.png |
|||
| caption = A portable, open source, mini, Real Time Kernel |
|||
| screenshot = |
|||
| developer = Richard Barry & FreeRTOS Team |
|||
| caption = |
|||
| family = [[real-time operating system|RTOS]] |
|||
| |
| developer = [[Amazon Web Services]] |
||
| family = [[Real-time operating system]]s |
|||
| latest_release_version = 4.0.4 |
|||
| working state = Current |
|||
| latest_release_date = [[June 22]], [[2006]] |
|||
| source model = [[Open-source software|Open source]] |
|||
| kernel_type = [[Microkernel]] |
|||
| released = {{Start date and age|2003}} |
|||
| license = Modified [[GNU General Public License|GPL]] |
|||
| latest release version = 11.1.0<ref>{{cite web|title=FreeFTOS Github Releases|website=[[GitHub]] |url=https://github.com/FreeRTOS/FreeRTOS-Kernel/releases/tag/V11.1.0|date=2024-04-22}}</ref> |
|||
| working_state = Current |
|||
| latest release date = {{Start date and age|2024|04|22}} |
|||
| website = http://www.freertos.org/ |
|||
| marketing target = [[Embedded system]]s |
|||
| programmed in = [[C (programming language)|C]] |
|||
| language = English |
|||
| language count = |
|||
| update model = <!-- APT, Windows Update, etc. --> |
|||
| package manager = |
|||
| supported platforms = [[ARM architecture|ARM]] (ARM7, ARM9, [[ARM Cortex-M3|Cortex-M3]], [[ARM Cortex-M4|-M4]], [[ARM Cortex-M7|-M7]], [[ARM Cortex-A8|-A]], [[ARM Cortex-R|-R4]]), [[Atmel AVR]], [[AVR32]], [[HCS12]], [[MicroBlaze]], Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), [[MSP430]], [[PIC microcontroller|PIC]], [[Renesas Technology|Renesas]] [[H8 Family|H8/S]], [[SuperH]], RX, [[x86]], [[Intel 8051#Related processors|8052]], [[Freescale ColdFire|Coldfire]], [[V850]], 78K0R, Fujitsu series MB91460, MB96340, [[Nios II]], TMS570, RM4x, [[ESP32|Espressif ESP32]], [[RISC-V]] (e.g. [[SHAKTI (microprocessor)|SHAKTI]]) |
|||
| kernel type = [[Real-time operating system|Real-Time]] [[Microkernel]] |
|||
| ui = |
|||
| license = [[MIT License|MIT]]<ref>{{cite web |title=FreeRTOS open source licensing |url=https://www.freertos.org/a00114.html |date=2017-12-22}}</ref> |
|||
| website = {{URL|www.freertos.org}} |
|||
}} |
}} |
||
'''FreeRTOS''' is a [[real-time operating system]] [[Kernel (operating system)|kernel]]<ref name=EETimes2012>{{cite web|title=2011 Embedded Market Study|url=http://www.eetimes.com/electrical-engineers/education-training/webinars/4214387/2011-Embedded-Market-Study|publisher=EE Times|archive-url=https://web.archive.org/web/20120402223224/http://www.eetimes.com/electrical-engineers/education-training/webinars/4214387/2011-Embedded-Market-Study|archive-date=2012-04-02}}</ref><ref>{{cite web|last1=Kolesnik|first1=Sergey|title=Comparing microcontroller real-time operating systems|url=http://www.embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems|date=2013-12-08|quote=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.}}</ref><ref>{{cite web|title=Why RTOS and What Is RTOS?|url=http://www.freertos.org/about-RTOS.html|access-date=29 August 2014|quote=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 computing|real-time]] scheduling functions, inter-task communication, timing, and synchronisation primitives only. This means it is more accurately described as a real time kernel, or real time executive. …}}</ref> for [[embedded device]]s that has been ported to 40 [[microcontroller]] platforms. It is distributed under the [[MIT License]]. |
|||
'''FreeRTOS''' is a [[real-time operating system]] for [[embedded devices]], being ported to several [[microcontroller]]s. It is distributed under a modified version of the [[GNU General Public License|GPL]]. The modification permits the users proprietary code to remain closed source, while maintaining the kernel itself as open source - facilitating the use of FreeRTOS in commercial applications. |
|||
== History == |
|||
FreeRTOS can be downloaded for free, without having to fill out a form or provide any information. |
|||
The FreeRTOS kernel was originally developed by Richard Barry around 2003, and was later developed and maintained by Barry's company, Real Time Engineers Ltd. In 2017, the firm passed stewardship of the FreeRTOS project to [[Amazon Web Services]] (AWS). Barry continues to work on FreeRTOS as part of an AWS team.<ref>{{Cite web|url=http://www.openrtos.net/RTOS.html|title=RTOS - Free professionally developed and robust real time operating system for small embedded systems development}}</ref> With the transition to Amazon control, subsequent releases of the project also switched licensing from GPL version 2 (with special exceptions for static linking to proprietary code outside the FreeRTOS kernel itself) to MIT.<ref>{{Cite web|url=https://github.com/FreeRTOS/FreeRTOS/commit/cfc268814a94a4deb8ddc8322b63ccae270a8669#diff-5cc7ddfa7e630dfb9a53b0da00eaa0233c6ce2adc6a94ff5285ab8913882c81a|title=Update to MIT licensed FreeRTOS V10.0.0}}</ref> |
|||
==Implementation== |
|||
Supported architectures: |
|||
FreeRTOS is designed to be small and simple. It is mostly written in the [[C (programming language)|C programming language]] to make it easy to port and maintain. It also comprises a few [[assembly language]] functions where needed, mostly in architecture-specific scheduler routines. |
|||
*[[ARM architecture]] ARM7 |
|||
**ARM Cortex-M3 |
|||
*[[AVR]] |
|||
*[[HCS12]] |
|||
*[[MicroBlaze]] |
|||
*[[MSP430]] |
|||
*[[PIC microcontroller]] PIC18, PIC24, dsPIC |
|||
*[[Renesas]] H8/S |
|||
*[[x86]] |
|||
*[[8052]] |
|||
=== Process management === |
|||
The download contains pre-prepared configurations and demonstrations for every port, allowing rapid application design. |
|||
FreeRTOS provides methods for multiple [[Thread (computing)|threads]] or [[Task (computing)|tasks]], [[mutex]]es, [[Semaphore (programming)|semaphores]] and [[software timer]]s. A [[Tickless kernel|tickless]] mode is provided for low power applications. Thread priorities are supported. FreeRTOS applications can be statically allocated, but objects can also be dynamically allocated with five schemes of [[memory management]] (allocation): |
|||
* allocate only; |
|||
* allocate and free with a very simple, fast, algorithm; |
|||
* a more complex but fast allocate and free algorithm with [[Coalescence (computer science)|memory coalescence]]; |
|||
* an alternative to the more complex scheme that includes memory coalescence that allows a heap to be broken across multiple memory areas. |
|||
* and C library allocate and free with some mutual exclusion protection. |
|||
RTOSes typically do not have the more advanced features that are found in [[operating system]]s like [[Linux]] and [[Microsoft Windows]], such as [[device driver]]s, advanced memory management, and user accounts. The emphasis is on compactness and speed of execution. FreeRTOS can be thought of as a thread library rather than an operating system, although command line interface and POSIX-like [[input/output]] (I/O) abstraction are available. |
|||
FreeRTOS implements multiple threads by having the host program call a thread tick method at regular short intervals. The thread tick method switches tasks depending on priority and a [[round-robin scheduling]] scheme. The usual interval is 1 to 10 milliseconds ({{frac|1|1000}} to {{frac|1|100}} of a second) via an interrupt from a hardware timer, but this interval is often changed to suit a given application. |
|||
The FreeRTOS scheduler is designed to be small and simple. It can be configured for both preemptive or cooperative operation. |
|||
The software distribution contains prepared configurations and demonstrations for every port and compiler, allowing rapid application design. The project website provides documentation and RTOS tutorials, and details of the RTOS design. |
|||
To make the code readable, easy to port, and maintainable, it is written mostly in C, but there are a few assembler functions included where needed. |
|||
==Key features== |
|||
From Version 4, FreeRTOS allows an application to use [[coroutine]]s, as well as [[Task (computers)|tasks]]. In FreeRTOS, a [[Coroutine]] is a lightweight [[Task (computers)|task]] that uses very little memory. |
|||
* Book and reference manuals. |
|||
* Small memory size, low overhead, and fast execution. |
|||
* Tick-less option for low power applications. |
|||
* Intended for both hobbyists and professional developers working on commercial products. |
|||
* Scheduler can be configured for both preemptive or cooperative multitasking. |
|||
* [[Coroutine]] support (coroutines in FreeRTOS are simple and lightweight [[Task (computing)|task]]s with limited use of the [[call stack]]) |
|||
* Trace support through generic trace macros. Tools such as Tracealyzer, a commercial tool by FreeRTOS partner Percepio, can thereby record and visualize the [[Runtime (program lifecycle phase)|runtime]] behavior of FreeRTOS-based systems for debugging and verification. This includes task scheduling and kernel calls for semaphore and queue operations. |
|||
==Supported architectures== |
|||
FreeRTOS is small and simple. The kernel itself is comprised of only three or four C files, depending on whether [[coroutine]]s are used or not. |
|||
{{More citations needed section|date=December 2019}}{{Div col|colwidth=15em}} |
|||
* [[Altera]] [[Nios II]] |
|||
* [[ARM architecture]] |
|||
** [[ARM7]] |
|||
** [[ARM9]] |
|||
** [[ARM Cortex-M]] |
|||
** [[ARM Cortex-A]] |
|||
* [[Atmel]] |
|||
** [[Atmel AVR]] |
|||
** [[AVR32]] |
|||
** SAM3, SAM4 |
|||
** SAM7, SAM9 |
|||
** SAMD20, SAML21 |
|||
*[[Ceva (semiconductor company)|Ceva]] |
|||
**Ceva-BXx |
|||
**SensPro |
|||
**Ceva-XC16 |
|||
**Ceva-XM6 |
|||
**Ceva-Xx |
|||
**Ceva-XM4 |
|||
* Cortus |
|||
** APS1 |
|||
** APS3 |
|||
** APS3R |
|||
** APS5 |
|||
** FPS6 |
|||
** FPS8 |
|||
* [[Cypress Semiconductor|Cypress]] |
|||
** [[PSoC]] |
|||
* [[Energy Micro]] |
|||
** [[EFM32]] |
|||
* [[eSi-RISC]] |
|||
** eSi-16x0 |
|||
** eSi-32x0 |
|||
* [[DSP Group]] |
|||
** DBMD7 |
|||
* Espressif |
|||
** [[ESP8266]] |
|||
** [[ESP32]] |
|||
* [[Fujitsu]] |
|||
** FM3 |
|||
** MB91460 |
|||
** MB96340 |
|||
* [[Freescale]] |
|||
** [[Freescale ColdFire|Coldfire]] V1, V2 |
|||
** [[HCS12]] |
|||
** Kinetis |
|||
* [[IBM]] |
|||
** [[PowerPC 400|PPC404]], PPC405 |
|||
* [[Infineon]] |
|||
** [[TriCore]] |
|||
** [[Infineon XMC4000]] |
|||
* [[Intel]] |
|||
** [[x86]] |
|||
** [[Intel 8051#Related processors|8052]] |
|||
* [[Microchip Technology]] |
|||
** PIC18, PIC24, dsPIC |
|||
** PIC32 |
|||
* [[Microsemi]] |
|||
** [[SmartFusion]] |
|||
* [[Multiclet]] |
|||
** P1 |
|||
* [[NXP Semiconductors|NXP]] |
|||
** [[NXP LPC#LPC1000 series|LPC1000]] |
|||
** [[NXP LPC#LPC2000 series|LPC2000]] |
|||
** [[NXP LPC#LPC4300 series|LPC4300]] |
|||
* [[Renesas Technology|Renesas]] |
|||
** 78K0R |
|||
** RL78 |
|||
** [[H8 Family|H8/S]] |
|||
** RX600 |
|||
** RX200 |
|||
** [[SuperH]] |
|||
** [[V850]] |
|||
* [[RISC-V]]<ref>{{cite web |title=Using FreeRTOS on RISC-V Microcontrollers |url=https://www.freertos.org/Using-FreeRTOS-on-RISC-V.html |publisher=FreeRTOS |access-date=11 September 2019}}</ref> |
|||
** RV32I |
|||
** RV64I |
|||
** PULP RI5CY |
|||
* [[Silicon Labs]] |
|||
** Gecko (ARM Cortex) |
|||
* [[STMicroelectronics]] |
|||
** [[STM32]] |
|||
** STR7 |
|||
* [[Texas Instruments]] |
|||
** C2000 series (TMS320F28x) |
|||
** [[MSP430]] |
|||
** Stellaris |
|||
** [[Hercules (processors)|Hercules]] (TMS570LS04 & RM42) |
|||
* [[Xilinx]] |
|||
** [[MicroBlaze]] |
|||
** [[Xilinx#Zynq|Zynq-7000]] |
|||
{{div col end}} |
|||
== Derivations == |
|||
The FreeRTOS.org site also contains RTOS tutorials, details of the RTOS design and performance comparison results for various microcontrollers. |
|||
=== Amazon FreeRTOS === |
|||
[[Amazon (company)|Amazon]] provides a now deprecated extension of FreeRTOS, this is FreeRTOS with libraries for [[Internet of things]] (IoT) support, specifically for [[Amazon Web Services]]. Since version 10.0.0 in 2017, Amazon has taken stewardship of the FreeRTOS code, including any updates to the original kernel.<ref>{{cite web |title=Amazon FreeRTOS |url=https://aws.amazon.com/freertos/ |publisher=Amazon |access-date=28 November 2018}}</ref><ref>{{cite web |title=FAQ: Amazon FreeRTOS |url=https://www.freertos.org/FAQ_Amazon.html |publisher=FreeRTOS |access-date=28 November 2018}}</ref><ref>{{cite web |title=Amazon FreeRTOS is a new OS for IoT |date=29 November 2017 |url=https://techcrunch.com/2017/11/29/amazon-freertos-is-a-new-operating-system-for-microcontroller-based-iot-devices/ |publisher=TechCrunch |access-date=4 December 2018}}</ref> |
|||
=== SAFERTOS === |
|||
FreeRTOS was the first real time kernel to be available for real (production) CORTEX-M3 based microcontrollers. |
|||
SAFERTOS was developed as a complementary version of FreeRTOS, with common functions, but designed for safety-critical implementation. FreeRTOS was subject to [[hazard and operability study]] (HAZOP), and weaknesses were identified and resolved. The result was put through a full [[IEC 61508]] SIL 3 development lifecycle, the highest level for a software-only component. |
|||
SAFERTOS was developed by Wittenstein High Integrity Systems, in partnership with Real Time Engineers Ltd, primary developer<ref name=EETimes2012/> of the FreeRTOS project.<ref name=FreeRTOS>{{cite web|url=http://www.freertos.org/|title=FreeRTOS|access-date=8 Aug 2012}}</ref> Both SAFERTOS and FreeRTOS share the same scheduling algorithm, have similar application programming interfaces ([[API]]s), and are otherwise very similar,<ref name=SmartBotPaper>{{cite web|url=http://www.ece.stevens-tech.edu/~ymeng/publications/IROS08_SMARbot_meng.pdf|title=SmartBotPaper|access-date=8 Aug 2012|url-status=dead|archive-url=https://web.archive.org/web/20120704013911/http://www.ece.stevens-tech.edu/~ymeng/publications/IROS08_SMARbot_meng.pdf|archive-date=2012-07-04}}</ref> but they were developed with differing objectives.<ref name="freertos_a">[http://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.shtml Relationship between FreeRTOS and SAFE'''RTOS''']</ref> SAFERTOS was developed solely in the [[C language]] to meet requirements for certification to IEC61508.<ref name=EETimesSafetyCritical>{{cite web|url=http://www.eetimes.com/design/embedded/4007228/How-to-verify-your-compiler-for-use-in-IEC-61508-safety-critical-applications|title=EETimesSafetyCritical|access-date=8 Aug 2012}}</ref> |
|||
FreeRTOS has recently spawned a spin off project called SafeRTOS. SafeRTOS is based on the FreeRTOS code base but has been updated, documented, tested and audited to enable its use in IEC [[61508]] safety related applications. |
|||
SAFERTOS can reside solely in the on-chip [[read-only memory]] (ROM) of a microcontroller for standards compliance.<ref name=EmbeddedSystemsDesign>{{cite web|url=http://www.nxtbook.com/nxtbooks/cmp/esd-europe0607/index.php?startpage=32|title=Embedded Systems Design Europe|access-date=10 Aug 2012|archive-date=23 October 2012|archive-url=https://web.archive.org/web/20121023125706/http://www.nxtbook.com/nxtbooks/cmp/esd-europe0607/index.php?startpage=32|url-status=dead}}</ref> When implemented in hardware memory, SAFERTOS code can only be used in its original, certified configuration. This means certifying a system needs no retesting of the kernel portion of a design.<ref name="TexasInstruments">{{cite web|url=http://www.ti.com/lit/wp/spry180/spry180.pdf|title=Texas Instruments|access-date=10 Sep 2012|archive-url=https://web.archive.org/web/20130704175730/http://www.ti.com/lit/wp/spry180/spry180.pdf|archive-date=4 July 2013|url-status=dead}}</ref> SAFERTOS is included in the ROM of some Stellaris Microcontrollers<ref name="TI Stellaris Product range">[http://www.ti.com/lsds/ti/microcontroller/arm_stellaris/overview.page TI Stellaris Product range]</ref> from Texas Instruments. SAFERTOS source code does not need to be separately purchased. In this usage scenario, a C header file is used to map SAFERTOS API functions to their location in read-only memory. |
|||
=== OPENRTOS === |
|||
OPENRTOS is a commercially licensed version of Amazon FreeRTOS, sold by Wittenstein High Integrity Systems. This product provides support and allows companies to use the Amazon FreeRTOS kernel and libraries without the a:FreeRTOS MIT license.<ref>{{cite web |title=OPENRTOS |url=https://www.highintegritysystems.com/openrtos/ |publisher=High Integrity Systems |access-date=28 November 2018}}</ref><ref>{{cite web |title=FreeRTOS open source licensing |url=https://www.freertos.org/a00114.html#commercial |publisher=FreeRTOS |access-date=28 November 2018}}</ref> |
|||
== See also == |
== See also == |
||
{{Portal|Free and open-source software}} |
|||
*[[Embedded operating system]] |
|||
*[[ |
* [[Embedded operating system]] |
||
==References== |
|||
{{Reflist}} |
|||
== External links == |
== External links == |
||
{{Commons category}} |
|||
*[http://www.freertos.org FreeRTOS.org] |
|||
* {{Official website}} |
|||
*[http://www.safertos.com SafeRTOS] |
|||
{{Real-time operating systems}} |
|||
{{Microkernel}} |
|||
[[Category:Amazon Web Services]] |
|||
[[Category:ARM operating systems]] |
|||
[[Category:Embedded operating systems]] |
[[Category:Embedded operating systems]] |
||
[[Category:Free software operating systems]] |
[[Category:Free software operating systems]] |
||
[[Category:Microkernel-based operating systems]] |
|||
[[Category:Microkernels]] |
|||
[[fr:FreeRTOS]] |
|||
[[Category:Real-time operating systems]] |
|||
[[Category:X86 operating systems]] |
|||
{{operating-system-stub}} |
Latest revision as of 13:14, 20 October 2024
Developer | Amazon Web Services |
---|---|
Written in | C |
OS family | Real-time operating systems |
Working state | Current |
Source model | Open source |
Initial release | 2003 |
Latest release | 11.1.0[1] / April 22, 2024 |
Repository | |
Marketing target | Embedded systems |
Available in | English |
Platforms | ARM (ARM7, ARM9, Cortex-M3, -M4, -M7, -A, -R4), 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 series MB91460, MB96340, Nios II, TMS570, RM4x, Espressif ESP32, RISC-V (e.g. SHAKTI) |
Kernel type | Real-Time Microkernel |
License | MIT[2] |
Official website | www |
FreeRTOS is a real-time operating system kernel[3][4][5] for embedded devices that has been ported to 40 microcontroller platforms. It is distributed under the MIT License.
History
[edit]The FreeRTOS kernel was originally developed by Richard Barry around 2003, and was later developed and maintained by Barry's company, Real Time Engineers Ltd. In 2017, the firm passed stewardship of the FreeRTOS project to Amazon Web Services (AWS). Barry continues to work on FreeRTOS as part of an AWS team.[6] With the transition to Amazon control, subsequent releases of the project also switched licensing from GPL version 2 (with special exceptions for static linking to proprietary code outside the FreeRTOS kernel itself) to MIT.[7]
Implementation
[edit]FreeRTOS is designed to be small and simple. It is mostly written in the C programming language to make it easy to port and maintain. It also comprises a few assembly language functions where needed, mostly in architecture-specific scheduler routines.
Process management
[edit]FreeRTOS provides methods for multiple threads or tasks, mutexes, semaphores and software timers. A tickless mode is provided for low power applications. Thread priorities are supported. FreeRTOS applications can be statically allocated, but objects can also be dynamically allocated with five schemes of memory management (allocation):
- allocate only;
- allocate and free with a very simple, fast, algorithm;
- a more complex but fast allocate and free algorithm with memory coalescence;
- an alternative to the more complex scheme that includes memory coalescence that allows a heap to be broken across multiple memory areas.
- and C library allocate and free with some mutual exclusion protection.
RTOSes typically do not have the more advanced features that are found in operating systems like Linux and Microsoft Windows, such as device drivers, advanced memory management, and user accounts. The emphasis is on compactness and speed of execution. FreeRTOS can be thought of as a thread library rather than an operating system, although command line interface and POSIX-like input/output (I/O) abstraction are available.
FreeRTOS implements multiple threads by having the host program call a thread tick method at regular short intervals. The thread tick method switches tasks depending on priority and a round-robin scheduling scheme. The usual interval is 1 to 10 milliseconds (1⁄1000 to 1⁄100 of a second) via an interrupt from a hardware timer, but this interval is often changed to suit a given application.
The software distribution contains prepared configurations and demonstrations for every port and compiler, allowing rapid application design. The project website provides documentation and RTOS tutorials, and details of the RTOS design.
Key features
[edit]- Book and reference manuals.
- Small memory size, low overhead, and fast execution.
- Tick-less option for low power applications.
- Intended for both hobbyists and professional developers working on commercial products.
- Scheduler can be configured for both preemptive or cooperative multitasking.
- Coroutine support (coroutines in FreeRTOS are simple and lightweight tasks with limited use of the call stack)
- Trace support through generic trace macros. Tools such as Tracealyzer, a commercial tool by FreeRTOS partner Percepio, can thereby record and visualize the runtime behavior of FreeRTOS-based systems for debugging and verification. This includes task scheduling and kernel calls for semaphore and queue operations.
Supported architectures
[edit]This section needs additional citations for verification. (December 2019) |
- Altera Nios II
- ARM architecture
- Atmel
- Ceva
- Ceva-BXx
- SensPro
- Ceva-XC16
- Ceva-XM6
- Ceva-Xx
- Ceva-XM4
- Cortus
- APS1
- APS3
- APS3R
- APS5
- FPS6
- FPS8
- Cypress
- Energy Micro
- eSi-RISC
- eSi-16x0
- eSi-32x0
- DSP Group
- DBMD7
- Espressif
- Fujitsu
- FM3
- MB91460
- MB96340
- Freescale
- IBM
- PPC404, PPC405
- Infineon
- Intel
- Microchip Technology
- PIC18, PIC24, dsPIC
- PIC32
- Microsemi
- Multiclet
- P1
- NXP
- Renesas
- RISC-V[8]
- RV32I
- RV64I
- PULP RI5CY
- Silicon Labs
- Gecko (ARM Cortex)
- STMicroelectronics
- STM32
- STR7
- Texas Instruments
- Xilinx
Derivations
[edit]Amazon FreeRTOS
[edit]Amazon provides a now deprecated extension of FreeRTOS, this is FreeRTOS with libraries for Internet of things (IoT) support, specifically for Amazon Web Services. Since version 10.0.0 in 2017, Amazon has taken stewardship of the FreeRTOS code, including any updates to the original kernel.[9][10][11]
SAFERTOS
[edit]SAFERTOS was developed as a complementary version of FreeRTOS, with common functions, but designed for safety-critical implementation. FreeRTOS was subject to hazard and operability study (HAZOP), and weaknesses were identified and resolved. The result was put through a full IEC 61508 SIL 3 development lifecycle, the highest level for a software-only component.
SAFERTOS was developed by Wittenstein High Integrity Systems, in partnership with Real Time Engineers Ltd, primary developer[3] of the FreeRTOS project.[12] Both SAFERTOS and FreeRTOS share the same scheduling algorithm, have similar application programming interfaces (APIs), and are otherwise very similar,[13] but they were developed with differing objectives.[14] SAFERTOS was developed solely in the C language to meet requirements for certification to IEC61508.[15]
SAFERTOS can reside solely in the on-chip read-only memory (ROM) of a microcontroller for standards compliance.[16] When implemented in hardware memory, SAFERTOS code can only be used in its original, certified configuration. This means certifying a system needs no retesting of the kernel portion of a design.[17] SAFERTOS is included in the ROM of some Stellaris Microcontrollers[18] from Texas Instruments. SAFERTOS source code does not need to be separately purchased. In this usage scenario, a C header file is used to map SAFERTOS API functions to their location in read-only memory.
OPENRTOS
[edit]OPENRTOS is a commercially licensed version of Amazon FreeRTOS, sold by Wittenstein High Integrity Systems. This product provides support and allows companies to use the Amazon FreeRTOS kernel and libraries without the a:FreeRTOS MIT license.[19][20]
See also
[edit]References
[edit]- ^ "FreeFTOS Github Releases". GitHub. 2024-04-22.
- ^ "FreeRTOS open source licensing". 2017-12-22.
- ^ a b "2011 Embedded Market Study". EE Times. Archived from the original on 2012-04-02.
- ^ Kolesnik, Sergey (2013-12-08). "Comparing microcontroller real-time operating systems".
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?". Retrieved 29 August 2014.
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 functions, inter-task communication, timing, and synchronisation primitives only. This means it is more accurately described as a real time kernel, or real time executive. …
- ^ "RTOS - Free professionally developed and robust real time operating system for small embedded systems development".
- ^ "Update to MIT licensed FreeRTOS V10.0.0".
- ^ "Using FreeRTOS on RISC-V Microcontrollers". FreeRTOS. Retrieved 11 September 2019.
- ^ "Amazon FreeRTOS". Amazon. Retrieved 28 November 2018.
- ^ "FAQ: Amazon FreeRTOS". FreeRTOS. Retrieved 28 November 2018.
- ^ "Amazon FreeRTOS is a new OS for IoT". TechCrunch. 29 November 2017. Retrieved 4 December 2018.
- ^ "FreeRTOS". Retrieved 8 Aug 2012.
- ^ "SmartBotPaper" (PDF). Archived from the original (PDF) on 2012-07-04. Retrieved 8 Aug 2012.
- ^ Relationship between FreeRTOS and SAFERTOS
- ^ "EETimesSafetyCritical". Retrieved 8 Aug 2012.
- ^ "Embedded Systems Design Europe". Archived from the original on 23 October 2012. Retrieved 10 Aug 2012.
- ^ "Texas Instruments" (PDF). Archived from the original (PDF) on 4 July 2013. Retrieved 10 Sep 2012.
- ^ TI Stellaris Product range
- ^ "OPENRTOS". High Integrity Systems. Retrieved 28 November 2018.
- ^ "FreeRTOS open source licensing". FreeRTOS. Retrieved 28 November 2018.