FunkOS
   HOME

TheInfoList



OR:

FunkOS is a
real-time operating system A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
(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 In computer science, a lock or mutex (from mutual exclusion) is a synchronization primitive: a mechanism that enforces limits on access to a resource when there are many threads of execution. A lock is designed to enforce a mutual exclusion concur ...
objects with
Priority Inheritance In real-time computing, priority inheritance is a method for eliminating unbounded priority inversion. Using this programming method, a process scheduling algorithm increases the priority of a process (A) to the maximum priority of any other proce ...
* 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 wolfSSL is a small, portable, embedded SSL/TLS library targeted for use by embedded systems developers. It is an open source implementation of TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, and DTLS 1.0, 1.2, and 1.3) written in the C programming langua ...
.


Ports

Atmel: * AVR (ATmega, ATxmega) (ATmega328P, ATmega644, ATxmega256A1)
Texas Instruments Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globa ...
: *
MSP430 The MSP430 is a mixed-signal microcontroller family from Texas Instruments, first introduced on 14 February 1992. Built around a CPU, the MSP430 is designed for low cost and, specifically, low power consumption embedded applications. Applic ...
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
: *
Cortex-M3 The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Though ...
ntested 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 An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
,
Single-board microcontroller A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program ...
* Microcontroller,
List of common microcontrollers This is a list of common microcontrollers listed by brand. Altera In 2015, Altera was acquired by Intel. * Nios II 32-bit configurable soft microprocessor * Nios 16-bit configurable soft processor Analog Devices * Blackfin * Super Harvard Arc ...
*
Comparison of open-source operating systems These tables compare free software / open-source operating systems. Where not all of the versions support a feature, the first version which supports it is listed. General information Supported architectures Supported hardware Gen ...


References


External links

* {{DEFAULTSORT:FunkOS Computing platforms Real-time operating systems Embedded operating systems ARM operating systems