FreeRTOS

FreeRTOS
Developer Real Time Engineers Ltd.
OS family Real-time operating systems
Working state Current
Source model Source available
Latest release 9.0.0 / August 16th, 2016
Marketing target Embedded devices
Platforms ARM (ARM7, ARM9, Cortex-M3, 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
Kernel type Microkernel
License Modified GPL
Official website www.freertos.org

FreeRTOS is a popular[1] real-time operating system kernel[2][3] for embedded devices, that has been ported to 35 microcontrollers. It is distributed under the GPL with an additional restriction and optional exception. The restriction forbids benchmarking while the exception permits users' proprietary code to remain closed source while maintaining the kernel itself as open source, thereby facilitating the use of FreeRTOS in proprietary applications.[4]

FreeRTOS has been used in space.

Implementation

FreeRTOS is designed to be small and simple. The kernel itself consists of only three C files. To make the code readable, easy to port, and maintainable, it is written mostly in C, but there are a few assembly functions included where needed (mostly in architecture-specific scheduler routines).

FreeRTOS provides methods for multiple threads or tasks, mutexes, semaphores and software timers. A tick-less mode is provided for low power applications. Thread priorities are supported. In addition there are four schemes of memory allocation provided:

There are none of the more advanced features typically found in operating systems like Linux or Microsoft Windows, such as device drivers, advanced memory management, user accounts, and networking. 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 I/O abstraction add-ons 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/1000 of a second to 1/100 of a second, via an interrupt from a hardware timer, but this interval is often changed to suit a particular application.

The download contains prepared configurations and demonstrations for every port and compiler, allowing rapid application design. The FreeRTOS.org site also contains a lot of documentation and RTOS tutorials (additional manuals and tutorials are available for a fee), as well as details of the RTOS design.

Key features

Supported architectures

SafeRTOS

SafeRTOS was constructed as a complementary offering to FreeRTOS, with common functionality but with a uniquely designed safety-critical implementation. When the FreeRTOS functional model was subjected to a full HAZOP, weakness with respect to user misuse and hardware failure within the functional model and API were identified and resolved. The resulting requirements set was put through a full IEC 61508 SIL 3 development life cycle, the highest possible for a software-only component.

SafeRTOS was developed by WITTENSTEIN high integrity systems, in partnership with Real Time Engineers Ltd, primary developer[1] of the FreeRTOS project.[5] Both SafeRTOS and FreeRTOS share the same scheduling algorithm, have similar APIs, and are otherwise very similar,[6] but they were developed with differing objectives.[7] SafeRTOS was developed solely in the C language to meet requirements for certification to IEC61508.[8]

SafeRTOS is known for its ability, unique among Operating Systems, to reside solely in the on-chip read only memory of a microcontroller, thus enabling the pre-certification of complete Hardware and Software systems to IEC61508 or other safety or reliability operating standards.[9] When implemented in hardware memory, SafeRTOS code can only be utilized in its original configuration, so certification testing of systems using this OS need not re-test this portion of their designs during the functional safety certification process.[10]

SafeRTOS is included in the ROM of some Stellaris Microcontrollers[11] from Texas Instruments. This allows SafeRTOS to be used in commercial applications without having to purchase its source code. In this usage scenario, a simple C header file is used to map SafeRTOS API functions to their location in read-only memory. The use of read-only memory is ideal because the code it contains cannot be changed - eliminating the possibility of user error, and ensuring the code that was originally tested remains absolutely identical throughout the project lifetime. It will not need re-testing as the application code grows and evolves around it. The burden of complex kernel testing is removed as the already certified and approved certification evidence, including the test plan, code and results, can be purchased "off the shelf".

OpenRTOS

Another project related to FreeRTOS, one with identical code but different licensing & pricing, is OpenRTOS from the commercial firm WITTENSTEIN Aerospace and Simulation Ltd. The commercial licensing terms for OpenRTOS remove all references to the GNU General Public License (GPL). For example: one of the conditions of using FreeRTOS in a commercial product is that the user is made aware of the use of FreeRTOS and the source code of FreeRTOS, but not the commercial product's application code, must be provided upon request. OpenRTOS is a commercial product only available via purchase and doesn't have this licensing requirement. OpenRTOS license purchasers also have access to full technical support.[12]

See also

References

  1. 1 2 "2011 Embedded Market Study". EE Times. Archived from the original on 2012-04-02.
  2. Kolesnki, 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.
  3. "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 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. …
  4. FreeRTOS GPL exceptions.
  5. "FreeRTOS". Retrieved 8 Aug 2012.
  6. "SmartBotPaper" (PDF). Retrieved 8 Aug 2012.
  7. Relationship between FreeRTOS and SAFERTOS
  8. "EETimesSafetyCritical". Retrieved 8 Aug 2012.
  9. "Embedded Systems Design Europe". Retrieved 10 Aug 2012.
  10. "Texas Instruments" (PDF). Retrieved 10 Sep 2012.
  11. TI Stellaris Product range
  12. OpenRTOS
Wikimedia Commons has media related to FreeRTOS.
This article is issued from Wikipedia - version of the 11/13/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.