Micro-Controller Operating Systems: Difference between revisions

Content deleted Content added
Bender the Bot (talk | contribs)
m HTTP to HTTPS for Cornell University
 
(12 intermediate revisions by 10 users not shown)
Line 1:
{{Short description|Real-time operating system}}
{{Infobox OS
| name = MicroC/OS (μC/OS)
| logo =
| caption =
Line 11:
| latest release version = OS-III
| latest release date = {{Start date and age|2016}}
| repo = {{URL|https://github.com/SiliconLabsweston-embedded/uC-OS3}}
| marketing target = [[Embedded device]]s
| programmed in = [[ANSI C]]
Line 19:
| ui = μC/[[Graphical user interface|GUI]]
| license = [[Apache License|Apache]] as of 2020; former [[Commercial software|Commercial]], [[freeware]] education use
| website = {{URL|www.micriumhttps://weston-embedded.com/productsmicrium/overview}}
}}
{{Infobox OS
'''Micro-Controller Operating Systems''' ('''MicroC/OS''', stylized as '''μC/OS''') is a [[real-time operating system]] (RTOS) designed by Jean J. Labrosse in 1991. It is a priority-based [[Preemption (computing)|preemptive]] [[Real-time computing|real-time]] kernel for [[microprocessor]]s, written mostly in the programming language [[C (programming language)|C]]. It is intended for use in [[embedded system]]s.
| name = Micrium OS
| logo =
| caption =
| developer = Silicon Labs
| family =
| working state = Current
| source model = [[Open-source software|Open-source]]
| released = {{Start date and age|2020}}
| latest release version = Part of Gecko Platform 4.2.0.0,<ref>{{cite web|url=https://www.silabs.com/documents/public/release-notes/gecko-platform-release-notes-4.2.0.0.pdf|title=Gecko Platform 4.2.0.0 GA|access-date=2023-01-04|date=2022-12-14}}</ref> part of Gecko SDK 4.2.0.0<ref>{{cite web|url=https://github.com/SiliconLabs/gecko_sdk/releases|title=gecko_sdk Releases on github.com|website=[[GitHub]] |access-date=2023-01-04}}</ref>
| latest release date = {{Start date and age|2022|12|14}}
| repo = {{URL|https://github.com/SiliconLabs/gecko_sdk/tree/gsdk_4.2/platform/micrium_os}}
| marketing target = [[Embedded device]]s
| programmed in = [[ANSI C]]
| language = English
| supported platforms = exclusively Silicon Labs silicon
| kernel type = [[Real-time operating system|Real-time]] [[microkernel]]
| license = [[Apache License|Apache]]
| website = {{URL|https://www.silabs.com/developers/micrium-os}}
}}
{{Infobox OS
| name = Cesium RTOS
| logo =
| caption =
| developer = Weston Embedded Solutions
| family =
| working state = Current
| source model = [[Commercial software|Commercial]]
| released = {{Start date and age|2020|06|23}} (forked from uC/OS-III V3.08.00)<ref name=cesium_changelog>{{cite web|url=https://weston-embedded.com/cesium-release-notes/cs-os3-release-notes|title=Cs/OS3 Release Notes|publisher= Weston Embedded Solutions}}</ref>
| latest release version = Cs/OS3 3.09.05<ref name=cesium_changelog />
| latest release date = {{Start date and age|2025|04|22}}<ref name=cesium_changelog />
| marketing target = [[Embedded device]]s
| programmed in = [[ANSI C]]
| language = English
| supported platforms = 50+ unclear whether there is a 1-to-1 overlap with μC/OS
| kernel type = [[Real-time operating system|Real-time]] [[microkernel]]
| license = [[Commercial software|Commercial]]
| website = {{URL|weston-embedded.com/products/cesium}}
}}
'''Micro-Controller Operating Systems''' ('''MicroC/OS''', stylized as '''μC/OS''', or '''Micrium OS''') is a [[real-time operating system]] (RTOS) designed by Jean J. Labrosse in 1991. It is a priority-based [[Preemption (computing)|preemptive]] [[Real-time computing|real-time]] kernel for [[microprocessor]]s, written mostly in the programming language [[C (programming language)|C]]. It is intended for use in [[embedded system]]s.
 
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.<ref>{{cite web |url=httphttps://people.ece.cornell.edu/land/courses/ece5760/NiosII_muCOS/ |title=NiosII GCC with MicroC/OS |author=<!--Unstated--> |date=June 2006 |website=School of Electrical and Computer Engineering |publisher=Cornell University |access-date=25 April 2017}}</ref>
 
==History==
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 Labrosse.<ref>{{cite book |last=Labrosse |first=Jean J. |date=15 June 2002 |title=μC/OS The Real-Time Kernel |edition=2nd |publisher=CRC Press |isbn=978-1578201037}}</ref> He intended at first to simply describe the internals of a [[Software portability|portable]] OS he had developed for his own use, but later developed it as a commercial product in his own company Micrium, Inc. in versions II and III.
 
In 2016 Micrium, Inc. was acquired by Silicon Laboratories<ref>{{cite web|url=https://weston-embedded.com/about-micrium|title=What is Micrium?|access-date=2023-01-04|publisher=Weston Embedded Solutions}}</ref> and it was subsequently released as open-source under the [[Apache license]].
 
Silicon Labs continues to maintain an open-source product named Micrium OS for use on their own silicon<ref>{{cite web|url=https://www.silabs.com/developers/micrium|title=Micrium Software and Documentation|access-date=2023-01-04}}</ref> and a group of former Micrium, Inc. employees (including Labrosse) provides consultancy and support for both μC/OS and Cesium RTOS, a proprietary fork made just after the open-source release.<ref>{{cite web|url=https://weston-embedded.com/why-cesium|title=Why Cesium RTOS?|access-date=2023-01-04|publisher= Weston Embedded Solutions}}</ref>
 
==μC/OS-II==
Line 34 ⟶ 77:
 
=== Uses in embedded systems ===
μC/OS-II was designed for embedded uses. If the producer has the proper tool chain[[toolchain]] (i.e., C compiler, assembler, and linker-locator{{clarify|date=May 2024}}), μC/OS-II can be embedded as part of a product.
 
μC/OS-II is used in many embedded systems, including:
Line 98 ⟶ 141:
 
===Task states===
μC/OS-III is a [[Computer multitasking|multitasking]] operating system. Each task is an infinite loop and can be in any one of five states (dormant, ready, running, interrupted, or pending). TaskμC/OS-III prioritiessupports canan rangeunlimited fromnumber 0of (highesttask priority)priorities but configuring μC/OS-III to ahave maximumbetween of32 255and (lowest256 possibletask priority)priorities typically suits most embedded systems well.<ref>https://media.digikey.com/PDF/Data%20Sheets/Micrium%20PDFs/UC_OS-III_RTOS.pdf#:~:text=Micrium%E2%80%99s%20%CE%BCC%2FOS-III%20supports%20ARM7%2F9%2C%20Cortex-MX%2C%20Nios-II%2C%20PowerPC%2C%20Coldfire%2C,are%20available%20for%20download%20from%20the%20Micrium%20website. {{Bare URL inline|date=August 2025}}</ref>
 
===Round robin scheduling===
Line 132 ⟶ 175:
 
==Documentation and support==
Support is available via a typical support forum, and several comprehensive books, severalof which some are tailored to a given microcontroller architecture and development platform, as free PDFs, or as low-cost purchase in hard-cover. Paid support is available from Micrium andWeston otherEmbedded partiesSolutions.
 
==References==
Line 143 ⟶ 186:
 
==External links==
*{{Official website|https://web.archive.org/web/20231206170818/https://www.micriumsilabs.com/productsdevelopers/micrium}}
*{{GitHub|SiliconLabs}}
*[httphttps://people.ece.cornell.edu/land/courses/ece5760/NiosII_muCOS/uC_Functions.html Summary of Commonly Used uC/OS-II Functions and Data Structures]
*[httphttps://people.ece.cornell.edu/land/courses/ece5760/NiosII_muCOS/ NiosII GCC with MicroC/OS]
*[http://www.farnell.com/datasheets/1950186.pdf μC/OS-II Reference Manual]
*[http://ftp1.digi.com/support/documentation/0220047_e.pdf How to Get a μC/OS-II Application Running]