Jump to content

FreeRTOS

From Wikipedia, the free encyclopedia
FreeRTOS
DeveloperAmazon Web Services
Written inC
OS familyReal-time operating systems
Working stateCurrent
Source modelOpen source
Initial release2003;21 years ago(2003)
Latest release10.6.1[1]/ July 13, 2023;12 months ago(2023-07-13)
Repository
Marketing targetEmbedded systems
Available inEnglish
PlatformsARM(ARM7, ARM9,Cortex-M3,-M4,-M7,-A,-R4),Atmel AVR,AVR32,HCS12,MicroBlaze,Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8),MSP430,PIC,RenesasH8/S,SuperH,RX,x86,8052,Coldfire,V850,78K0R, Fujitsu series MB91460, MB96340,Nios II,TMS570, RM4x,Espressif ESP32,RISC-V(e.g.SHAKTI)
KerneltypeReal-TimeMicrokernel
LicenseMIT[2]
Official websitewww.freertos.org

FreeRTOSis areal-time operating systemkernel[3][4][5]forembedded devicesthat has been ported to 35microcontrollerplatforms. It is distributed under theMIT 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 toAmazon Web Services(AWS). Barry continues to work on FreeRTOS as part of an AWS team.[6]

Implementation[edit]

FreeRTOS is designed to be small and simple. It is mostly written in theC programming languageto make it easy to port and maintain. It also comprises a fewassembly languagefunctions where needed, mostly in architecture-specific scheduler routines.

Process management[edit]

FreeRTOS provides methods for multiplethreadsortasks,mutexes,semaphoresandsoftware timers.Aticklessmode 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 ofmemory management(allocation):

  • allocate only;
  • allocate and free with a very simple, fast, algorithm;
  • a more complex but fast allocate and free algorithm withmemory 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 inoperating systemslikeLinuxandMicrosoft Windows,such asdevice 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-likeinput/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 around-robin schedulingscheme. The usual interval is 1 to 10 milliseconds (11000to1100of 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.
  • Coroutinesupport (coroutines in FreeRTOS are simple and lightweighttaskswith limited use of thecall stack)
  • Trace support through generic trace macros. Tools such as Tracealyzer, a commercial tool by FreeRTOS partner Percepio, can thereby record and visualize theruntimebehavior of FreeRTOS-based systems for debugging and verification. This includes task scheduling and kernel calls for semaphore and queue operations.

Supported architectures[edit]

Derivations[edit]

Amazon FreeRTOS[edit]

Amazonprovides a now deprecated extension of FreeRTOS, this is FreeRTOS with libraries forInternet of things(IoT) support, specifically forAmazon Web Services.Since version 10.0.0 in 2017, Amazon has taken stewardship of the FreeRTOS code, including any updates to the original kernel.[8][9][10]

SAFERTOS[edit]

SAFERTOS was developed as a complementary version of FreeRTOS, with common functions, but designed for safety-critical implementation. FreeRTOS was subject tohazard and operability study(HAZOP), and weaknesses were identified and resolved. The result was put through a fullIEC 61508SIL 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.[11]Both SAFERTOS and FreeRTOS share the same scheduling algorithm, have similar application programming interfaces (APIs), and are otherwise very similar,[12]but they were developed with differing objectives.[13]SAFERTOS was developed solely in theC languageto meet requirements for certification to IEC61508.[14]

SAFERTOS can reside solely in the on-chipread-only memory(ROM) of a microcontroller for standards compliance.[15]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.[16]SAFERTOS is included in the ROM of some Stellaris Microcontrollers[17]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.[18][19]

See also[edit]

References[edit]

  1. ^"FreeFTOS Github Releases".GitHub.2023-08-17.
  2. ^"FreeRTOS open source licensing".2017-12-22.
  3. ^ab"2011 Embedded Market Study".EE Times. Archived fromthe originalon 2012-04-02.
  4. ^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.
  5. ^"Why RTOS and What Is RTOS?".Retrieved29 August2014.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 corereal-timescheduling 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. ^"RTOS - Free professionally developed and robust real time operating system for small embedded systems development".
  7. ^"Using FreeRTOS on RISC-V Microcontrollers".FreeRTOS.Retrieved11 September2019.
  8. ^"Amazon FreeRTOS".Amazon.Retrieved28 November2018.
  9. ^"FAQ: Amazon FreeRTOS".FreeRTOS.Retrieved28 November2018.
  10. ^"Amazon FreeRTOS is a new OS for IoT".TechCrunch. 29 November 2017.Retrieved4 December2018.
  11. ^"FreeRTOS".Retrieved8 Aug2012.
  12. ^"SmartBotPaper"(PDF).Archived fromthe original(PDF)on 2012-07-04.Retrieved8 Aug2012.
  13. ^Relationship between FreeRTOS and SAFERTOS
  14. ^"EETimesSafetyCritical".Retrieved8 Aug2012.
  15. ^"Embedded Systems Design Europe".Archived fromthe originalon 23 October 2012.Retrieved10 Aug2012.
  16. ^"Texas Instruments"(PDF).Archived fromthe original(PDF)on 4 July 2013.Retrieved10 Sep2012.
  17. ^TI Stellaris Product range
  18. ^"OPENRTOS".High Integrity Systems.Retrieved28 November2018.
  19. ^"FreeRTOS open source licensing".FreeRTOS.Retrieved28 November2018.

External links[edit]