FreeRTOS explained

FreeRTOS
Developer:Amazon Web Services
Family:Real-time operating systems
Working State:Current
Source Model:Open source
Latest Release Version:10.6.1[1]
Marketing Target:Embedded systems
Programmed In:C
Language:English
Supported 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]

FreeRTOS is a real-time operating system kernel[3] [4] [5] for embedded devices that has been ported to 35 microcontroller platforms. It is distributed under the MIT License.

History

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

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

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):

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 (to 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

Supported architectures

Derivations

Amazon FreeRTOS

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

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

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

Notes and References

  1. Web site: FreeFTOS Github Releases. . 2023-08-17.
  2. Web site: FreeRTOS open source licensing . 2017-12-22.
  3. Web site: 2011 Embedded Market Study. EE Times. https://web.archive.org/web/20120402223224/http://www.eetimes.com/electrical-engineers/education-training/webinars/4214387/2011-Embedded-Market-Study. 2012-04-02.
  4. Web site: Kolesnik. Sergey. Comparing microcontroller real-time operating systems. 2013-12-08. 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. Web site: Why RTOS and What Is RTOS?. 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. ….
  6. Web site: RTOS - Free professionally developed and robust real time operating system for small embedded systems development.
  7. Web site: Update to MIT licensed FreeRTOS V10.0.0.
  8. Web site: Using FreeRTOS on RISC-V Microcontrollers . FreeRTOS . 11 September 2019.
  9. Web site: Amazon FreeRTOS . Amazon . 28 November 2018.
  10. Web site: FAQ: Amazon FreeRTOS . FreeRTOS . 28 November 2018.
  11. Web site: Amazon FreeRTOS is a new OS for IoT . 29 November 2017 . TechCrunch . 4 December 2018.
  12. Web site: FreeRTOS. 8 Aug 2012.
  13. Web site: SmartBotPaper. 8 Aug 2012. dead. https://web.archive.org/web/20120704013911/http://www.ece.stevens-tech.edu/~ymeng/publications/IROS08_SMARbot_meng.pdf. 2012-07-04.
  14. http://www.freertos.org/FreeRTOS-Plus/Safety_Critical_Certified/SafeRTOS.shtml Relationship between FreeRTOS and SAFERTOS
  15. Web site: EETimesSafetyCritical. 8 Aug 2012.
  16. Web site: Embedded Systems Design Europe. 10 Aug 2012. 23 October 2012. https://web.archive.org/web/20121023125706/http://www.nxtbook.com/nxtbooks/cmp/esd-europe0607/index.php?startpage=32. dead.
  17. Web site: Texas Instruments. 10 Sep 2012. https://web.archive.org/web/20130704175730/http://www.ti.com/lit/wp/spry180/spry180.pdf. 4 July 2013. dead.
  18. http://www.ti.com/lsds/ti/microcontroller/arm_stellaris/overview.page TI Stellaris Product range
  19. Web site: OPENRTOS . High Integrity Systems . 28 November 2018.
  20. Web site: FreeRTOS open source licensing . FreeRTOS . 28 November 2018.