FreeRTOS

From Wikipedia, the free encyclopedia
Jump to: navigation, search
FreeRTOS
Company / developer Richard Barry & FreeRTOS Team
OS family Real-time operating systems
Working state Current
Source model Free Software/Open Source
Latest stable release 7.0.1 / May, 2011
Marketing target Embedded devices
Supported platforms ARM (ARM7, ARM9, Cortex-M3), Atmel AVR, AVR32, HCS12, MicroBlaze, MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu MB91460 series, Fujitsu MB96340 series, Nios II
Kernel type Microkernel
License Modified GPL
Official website http://www.freertos.org/

FreeRTOS is a real-time operating system for embedded devices, being ported to several microcontrollers. It is distributed under the GPL with an optional exception. 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.[1] Although these are called exceptions which makes one think they extend the rights given by GPL, they are actually restrictions on how the source code can be used (no comparison with competitors, no development of similar products) and hence makes the license GPL incompatible.

Contents

[edit] Implementation

FreeRTOS is designed to be small and simple. The kernel itself consists of only three or four 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, and semaphores. Thread priorities are supported. In addition there are three schemes of memory allocation provided, allocate only, allocate and free with a very simple, fast, algorithm, and a more complex allocate and free algorithm. There are none of the advanced features in a more typical operating system such as 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'.

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/1000th 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 RTOS tutorials, details of the RTOS design and performance comparison results for various microcontrollers.

[edit] Key features

  • Very small memory footprint, low overhead, and very fast execution.
  • Very good for hobbyists who are new to OSes.
  • Scheduler can be configured for both preemptive or cooperative operation.
  • Coroutine support (Coroutine in FreeRTOS is a very simple and lightweight task that has very limited use of stack)
  • Trace support through generic trace macros. Tools such as Tracealyzer can thereby record and display the runtime behavior of FreeRTOS-based systems. This includes both scheduling events and kernel calls for semaphore and queue operations.

[edit] Supported architectures

[edit] Related projects

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.

Another related project is OpenRTOS, which has an identical code base to FreeRTOS but with different licensing. The OpenRTOS license removes all reference to the GPL and its implications. 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 must be provided upon request. As it is a commercial product available for purchase, OpenRTOS doesn't have this licensing requirement.

[edit] See also

[edit] References

  1. ^ FreeRTOS GPL exceptions.

[edit] External links


Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages