FunkOS
FunkOS is a real-time operating system (RTOS) developed by Funkenstein Software Consulting, targeting a variety of microcontroller architectures.  It is free to use in any project - commercial or otherwise - with few conditions.  If the kernel is ported to a new target, that code must also be made available for inclusion in future releases.  Also, if used in commercial projects, an attribution statement must be included in some form of product documentation.

Description
FunkOS is a fully preemptive multi-tasking environment, capable of running on a variety of modern microcontroller architectures.

The kernel supports an unlimited number of program "tasks" running from up to 255 different priority levels.

Tasks are independent programs, each with their own stack.  At each RTOS tick, the highest-priority task is chosen for execution, with round-robin scheduling used when multiple tasks from the same priority level are ready to run.

An idle task must be defined for every application, and can be used to invoke power-saving functionality of the hardware platform.

Key features in the kernel include:
 Semaphores
 Mutex objects with Priority Inheritance
 Periodic lightweight threads
 Inter-process communications
 Task time quantum support for round-robin tasks
 Event queues
 Fixed-block dynamic memory allocation
 "Core Services" including a software real-time clock, and distributed computing support based on the concept of The Plumber
 Device driver HAL 
 Task deadline monitoring (watchdog) module
 2D display driver library supporting software rendering and hardware-acceleration
 GUI framework and widget library
 FAT16/32 read-only file system support
 Alternate C++ kernel (FunkOS++)
 Alternate round-robin only kernel (Pipsqueak)

The kernel is highly customizable, allowing the developer to include or eliminate kernel features based on the application requirements.  FunkOS is very lightweight as a result - the smallest useful kernel and application compiles to under 2 kilobytes of code space and 400 bytes of RAM on an AVR microcontroller.

The FunkOS++ kernel is currently the only open-source, preemptive RTOS for 8-bit microcontrollers written in C++. It is supported by popular SSL/TLS libraries such as wolfSSL.

Ports

Atmel:
 AVR (ATmega, ATxmega) (ATmega328P, ATmega644, ATxmega256A1)

Texas Instruments:
 MSP430

ARM:
 Cortex-M3 [untested]

Ports for other modern microcontrollers are planned for future releases.

Roadmap
Future releases will include the following features:
 Virtual machine to enable hybrid native/virtual tasks
 Support for PIC24 and dsPIC architectures
 Stabilize the ARM Cortex-M3 port
 Bitmap font librarian application

See also

 Embedded system, Single-board microcontroller
 Microcontroller, List of common microcontrollers
 Comparison of open-source operating systems

References

External links
 

Computing platforms
Real-time operating systems
Embedded operating systems
ARM operating systems