FreeRTOS
Developer | Richard Barry & FreeRTOS Team |
---|---|
OS family | RTOS |
Working state | Current |
Source model | Open source |
Latest release | 4.0.4 / June 22, 2006 |
Repository | |
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 a modified version of the GPL. The modification permits the users proprietary code to remain closed source, while maintaining the kernel itself as open source - facilitating the use of FreeRTOS in commercial applications.
FreeRTOS can be downloaded for free, without having to fill out a form or provide any information.
Supported architectures include:
- ARM Cortex-M3
- ARM architecture ARM7
- AVR
- x86
- PIC microcontroller PIC18, PIC24 and dsPIC
- Renesas H8/S
- MSP430
- HCS12
- 8052
- MicroBlaze
The download contains pre-prepared configurations and demonstrations for every port, allowing rapid application design.
The FreeRTOS scheduler is designed to be small and simple. It can be configured for both preemptive or cooperative operation.
To make the code readable, easy to port, and maintainable, it is mostly written in C. There are however, a few assembler functions included where necessary.
From Version 4, FreeRTOS allows an application to use coroutines, as well as tasks. In FreeRTOS, a Coroutine is a lightweight task that uses very little memory.
FreeRTOS is small and simple. The kernel itself is comprised of only three or four C files, depending on whether coroutines are used or not.
The FreeRTOS.org site also contains RTOS tutorials, details of the RTOS design and performance comparison results for various microcontrollers.
FreeRTOS was the first real time kernel to be available for real (production) CORTEX-M3 based microcontrollers.
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.
See also
External links