FreeRTOS [21] is a real time kernel for embedded products. It is primary designed to build standalone applications for micro-controller that typically have limited amount of memory resources. It can for instance run on PIC micro-controller that other open-source RTOS such as eCos [1], uCLinux [22] or RTEMS [23] do not target.

FreeRTOS.org does not supply the compiler/debugger for the different architecture officially supported. Instead, it relies on the development environment already available in the industry ( commercial tools or not ). Some projects use CodeWarrior [24] for PPC or ColdFire processors, KEIL [25] or IAR [26] are often use for ARM based projects, WinAVR for Atmel AVR. The GNU compiler from CodeSourcery [27] or Yagarto [28] are also an alternative for many projects.

FreeRTOS comes along with some additional services. It includes multiple small footprint IP stacks (lwIP, uIP or FreeTCPIP) and some support for FAT filesystem seems to be available. The HAL is limited to the processors variant library, no standard IO layer is available. The kernel features some tracing functionalities, it also includes a kernel Co-Routine API intented for tiny devices allowing multiple Co-Routine to share the same stack. The complete FreeRTOS documentation is located here.

The FreeRTOS kernel is released under GPL with exception, allowing user applications to stay closed source. The BSP part is a mixed of GPL with exception license and code provided by the different harwdare manufacturers. Jumping into FreeRTOS code is fairly easy, each port is supplied with some demo application ready for use. A commercial version of the RTOS is also available from Real Time Engineers Ltd.

Bugs can be registered from the sourceforge project area and the source code is version controlled with subversion.

[21] FreeRTOS

[22] uClinux

[23] RTEMS

[24] CodeWarrior

[25] KEIL

[26] IAR

[27] CodeSourcery

[28] Yagarto