Micro-Controller Operating Systems: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Add: website. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | #UCB_webform 905/3352
Bender the Bot (talk | contribs)
m HTTP to HTTPS for Cornell University
 
(9 intermediate revisions by 8 users not shown)
Line 50:
| 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.0105<ref name=cesium_changelog />
| latest release date = {{Start date and age|20222025|1204|2122}}<ref name=cesium_changelog />
| marketing target = [[Embedded device]]s
| programmed in = [[ANSI C]]
Line 62:
'''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 undeunder 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>
Line 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 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 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 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]