All about FreeRTOS(Real time Operating System)
Post by: zix

FreeRTOS - Popular Real Time Operating System for embedded devices. Basically its designed to be simple and small with its kernel consists of only 3 or 4 c files. Its mostly written in C to make the code readable, easy to port and maintainable but few assembly functions added here and there. Its distributed under GPL(exception) license for commercial use. The exception includes
1) The copyright holder of FreeRTOS gives you permission to link FreeRTOS with independent modules that communicate with FreeRTOS solely through the FreeRTOS API interface, regardless of the license terms of these independent modules, and to copy and distribute the resulting combined work under terms of your choice, provided that
i) Every copy of the combined work is accompanied by a written statement that details to the recipient the version of FreeRTOS used and an offer by yourself to provide the FreeRTOS source code (including any modifications you may have made) should the recipient request it.
ii) The combined work is not itself an RTOS, scheduler, kernel or related product.
iii) The independent modules add significant and primary functionality to FreeRTOS and do not merely extend the existing functionality already present in FreeRTOS.
2) FreeRTOS may not be used for any competitive or comparative purpose, including the publication of any form of run time or compile time metric, without the express permission of Real Time Engineers Ltd.
Important features are
a)Tick-less option for low power applications.
b) Very small memory footprint, low overhead, and very fast execution.
c) Scheduler can be configured for both preemptive or cooperative operation.
d) Equally good for hobbyists who are new to OSes, and professional developers working on commercial products.
e) Trace support through generic trace macros.
f) Coroutine support
Fyi, The FreeRTOS.org site also contains lots of documentation and RTOS tutorials (additional manuals and tutorials available for a fee starting from USD25), details of the RTOS design.
Version 8.1.0 of FreeRTOS was released a few days ago. Probably the most important feature is support for non contiguous heap space (heap_5.c), needed for allocation of memory (for creation of tasks, queues, semaphores, etc. and also user applications).