FreeRTOS
Contact Microchip
Development Tool Selector
Microchip Advanced Parts Selector (MAPS)
CiSAR (Service Request)
FreeRTOS

FreeRTOS is a small footprint, portable, preemptive, open source, real time kernel that has been designed specifically for use on microcontrollers. With more than 77,500 downloads during 2009 - FreeRTOS has become one of the most popular real time kernels available. This leadership position is backed by the results of the 2010 Embedded.com survey of professional engineers, where FreeRTOS came top for the question “which kernel are you considering using this year”.

Licensing
FreeRTOS is truly free, even for use in commercial applications, and does not pose any risk to your proprietary software or intellectual property. It is professionally developed and does not contain any unknown or contributed code. The
license terms do not ‘infect’ anything outside of the kernel and there is no requirement to share anything except modifications to the kernel itself. Source code is freely obtainable without having to provide any personal information such as your name or email address and there are no limitations or restrictions on performance or features.

Low cost commercial licenses are available under the OpenRTOS™ brand for applications that require professional software licensing to ensure the integrity and support of commercial products. Commercial licenses are provided by WITTENSTEIN high integrity systems, part of the WITTENSTEIN group – a global engineering company with a distinguished 60 year history. Additionally a mature suite of USB, File System and TCP/IP products are available fully integrated with OpenRTOS at competitive prices.

WITTENSTEIN high integrity systems have a long history as a safety company developing safety critical and high integrity applications. They have used their experience in the aerospace, medical and industrial fields to produce SafeRTOS, a real time kernel originally based on FreeRTOS that has been independently certified by TUV SUD for use in IEC 61508 applications to Safety Integrity Level (SIL) 3, and FDA 510K applications that have been classified as critical.

Technical Support
Free support
is provided for FreeRTOS by an active user community. Strong and professional technical support is provided for all commercial versions of the software and many of the world’s leading technology companies now use WITTENSTEIN products and support.

Education and Training
The FreeRTOS web site provides a wealth of useful information, including instructions on how to use the ‘out of the box’ example MPLAB projects that are included in the main FreeRTOS download. Microchip provides an excellent
application note describing how to integrate Microchip provided middleware into a FreeRTOS application. For those requiring greater detail a PIC32 specific FreeRTOS book provides a hands-on, step by step introduction to multitasking systems and how to use FreeRTOS on a PIC32. The book comes with 16 simple MPLAB examples. Classroom training sessions can also be arranged.

Microchip Devices Supported
FreeRTOS primarily supports PIC32, PIC24 and dsPIC microcontrollers. It will also run on PIC18 microcontrollers, but PIC18 applications and the PIC18 architecture do not comfortably lend themselves to preemptive multitasking applications.

Real Time Kernel Features

Pre-emptive or co-operative operation

Very flexible task priority assignment with no limit on the number of priorities or how many tasks can share a priority.

Queues

Binary semaphores

Counting semaphores

Recursive semaphores

Mutexes

Tick hook functions

Idle hook functions

Stack overflow checking

Trace hook macros

Optional commercial licensing and support

The PIC32 port also provides specific macros to manage interrupt nesting and allows interrupts above a user-definable priority level to remain unaffected by the activity of the kernel. Using FreeRTOS will not introduce any additional timing jitter or latency for these interrupts.

The PIC32 port also manages an interrupt stack (sometimes called a system stack), which is used only by interrupt service routines. This greatly reduces total RAM utilization as it removes the need for each task stack to be large enough to hold an entire nested interrupt stack frame.

Debugging Support
MPLAB ships with a FreeRTOS ‘StateViewer’. This allows the state of each task, queue and semaphore to be inspected each time the debugger is halted.

© Real Time Engineers Ltd, 2010

Downloads