Developer | Micrium, Inc., Silicon Labs |
---|---|
Written in | ANSI C |
OS family | Real-time operating systems |
Working state | Current |
Source model | Closed source, source available |
Initial release | 1991 |
Latest release | OS-III / 2016 |
Marketing target | Embedded devices |
Available in | English |
Platforms | ARM Cortex-M3, Cortex-M4F, ARM7TDMI; Atmel AVR |
Kernel type | Microkernel |
Default user interface | μC/GUI |
License | Commercial, freeware education use |
Official website | www |
Micro-Controller Operating Systems (MicroC/OS, stylized as µC/OS) is a real-time operating system (RTOS) designed by embedded software developer, Jean J. Labrosse in 1991. It is a priority-based preemptive real-time kernel for microprocessors, written mostly in the programming language C. It is intended for use in embedded systems.
MicroC/OS allows defining several functions in C, each of which can execute as an independent thread or task. Each task runs at a different priority, and runs as if it owns the central processing unit (CPU). Lower priority tasks can be preempted by higher priority tasks at any time. Higher priority tasks use operating system (OS) services (such as a delay or event) to allow lower priority tasks to execute. OS services are provided for managing tasks and memory, communicating between tasks, and timing.
The MicroC/OS kernel was published originally in a three-part article in Embedded Systems Programming magazine and the book µC/OS The Real-Time Kernel by Jean J. Labrosse (). The author intended at first to simply describe the internals of a portable operating system he had developed for his own use, but later developed the OS as a commercial product in versions II and III.
Tasks running on a multitasking kernel should be written in one of two ways:
Based on the source code written for µC/OS, and introduced as a commercial product in 1998, µC/OS-II is a portable, ROM-able, scalable, preemptive, real-time, deterministic, multitasking kernel for microprocessors, and digital signal processors (DSPs). It manages up to 255 application tasks. Its size can be scaled (between 5 to 24 Kbytes) to only contain the features needed for a given use.
Most of µC/OS-II is written in highly portable ANSI C, with target microprocessor-specific code written in assembly language. Use of the later is minimized to ease porting to other processors.