Content deleted Content added
m "kernal" -> "kernel" |
m HTTP to HTTPS for Cornell University |
||
(45 intermediate revisions by 35 users not shown) | |||
Line 1:
{{Short description|Real-time operating system}}
{{Infobox OS
| name = MicroC/OS (μC/OS)
| logo =
| caption =
| developer = Micrium, Inc.,<br/>Silicon Labs
| family =
| working state = Current
| source model = [[Open-source software|Open-source]] as of 2020
| released = {{Start date and age|1991}}
| latest release version = OS-III
| latest release date = {{Start date and age|2016}}
| repo = {{URL|https://github.com/weston-embedded/uC-OS3}}
| marketing target = [[Embedded device]]s
| programmed in = [[ANSI C]]
| language = English
| supported platforms = [[ARM Cortex-M#Cortex-M3|ARM Cortex-M3]], [[ARM Cortex-M#Cortex-M4|-M4F]], [[ARM7#ARM7TDMI|ARM7TDMI]]; [[Atmel AVR]]; [[eSi-RISC]], and many others
| kernel type = [[Real-time operating system|Real-time]] [[microkernel]]
| ui = μC/[[Graphical user interface|GUI]]
| license = [[Apache License|Apache]] as of 2020; former [[Commercial software|Commercial]], [[freeware]] education use
| website = {{URL|https://weston-embedded.com/micrium/overview}}
}}
{{Infobox OS
| 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
| logo
| caption
| developer = Weston Embedded
| 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
|
| 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 '''
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 [[
==History==
The MicroC/OS kernel was
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>
==
Based on the source code written for
Most of
=== Uses in embedded systems ===
* [[Avionics]]
* [[Medical equipment]]
* [[Data communications equipment]]
* White goods ([[Home appliance|
* [[Mobile
* Industrial controls
* [[Consumer electronics]]
Line 58 ⟶ 90:
===Task states===
*Dormant
*Ready
*Running
*Waiting (for an event)
*Interrupted ([[Interrupt handler|
===Kernels===
The [[Kernel (operating system)|kernel]] is the name given to the program that does most of the housekeeping tasks for the operating system. The boot loader hands control over to the kernel, which initializes the various devices to a known state and makes the computer ready for general operations.<ref>[[Wikiversity:Operating Systems/Kernel Models#Monolithic Kernel]]</ref> The kernel is responsible for managing tasks (i.e., for managing the CPU's time) and communicating between tasks.<ref>{{cite book|last=Labrosse|first=Jean J.|title=MicroC/OS-II: The Real Time Kernel|page=39|edition=2nd}}</ref> The fundamental service provided by the kernel is [[context switch]]ing.
The [[scheduler]] is the part of the kernel responsible for determining which task runs next.<ref name="LabrosseP40">{{cite book|
===Assigning tasks===
Tasks with the highest rate of execution are given the highest priority using [[rate-monotonic scheduling]].<ref>{{cite journal|last1=Liu|first1=Chung Lang|last2=Layland|first2=James W.|title=Scheduling algorithms for multiprogramming in a hard real-time environment|journal=Journal of the ACM
===Managing tasks===
In [[computing]], a task is a unit of [[execution]]. In some [[operating systems]], a task is synonymous with a [[Process (computing)|process]], in others with a [[Thread (computing)|thread]]. In [[batch processing]] computer systems, a task is a unit of execution within a [[Job stream|job]].
The system user of
*Task feature
*Task creation
*Task stack & stack checking
*Task deletion
*Change a
*Suspend and resume a task
*Get information about a task<ref>{{cite book|
===Managing memory===
===Managing time===
After a ''clock tick'' is determined, tasks can be:
Line 97 ⟶ 128:
===Communicating between tasks===
Intertask or interprocess communication in
==
μC/OS-III offers all of the features and functions of μC/OS-II. The biggest difference is the number of supported tasks. μC/OS-II allows only 1 task at each of 255 priority levels, for a maximum of 255 tasks. μC/OS-III allows any number of application tasks, priority levels, and tasks per level, limited only by processor access to memory.<ref>{{cite web |url=http://micrium.com/rtos/ucosiii/rtos-comparison/ |title=μC/OS-II and μC/OS-III Features Comparison |website=Micrium}}</ref><ref>{{cite web |url=http://micrium.com/rtos/ucosiii/overview/ |title=μC/OS-III overview |website=Micrium}}</ref>
===Uses in embedded systems===
The uses are the same as for
===Task states===
===Round robin scheduling===
When two or more tasks have the same priority, the kernel allows one task to run for a predetermined amount of time,
*The current task has no work to do during its time slice, or
*The current task completes before the end of its time slice, or
*The time slice ends.
===Kernels===
The kernel functionality for
===Managing tasks===
Task management also functions the same as for
A task can be implemented
===Managing memory===
Memory management is
===Managing time===
===Communicating between tasks===
When using global variables, each task or ISR must ensure that it has exclusive access to variables. If an ISR is involved, the only way to ensure exclusive access to common variables is to disable [[interrupt]]s. If two tasks share data, each can gain exclusive access to variables
==Ports==
A port involves three aspects: CPU, OS, and board specific (BSP) code.
==Licensing change==
After acquisition by Silicon Labs, Micrium in 2020 changed to [[open-source model]] licensing in February 2020. This includes uC/OS III, all prior versions, all components: USB, [[file system]], GUI, TCP/IP, etc.
==Documentation and support==
Support is available via a typical support forum, and several comprehensive books, of 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 Weston Embedded Solutions.
==References==
{{Reflist}}
==Sources==
*[http://www.mil-embedded.com/news/db/?13968 Protocol Support for μC/OS-II from Fusion Embedded]
*Micrium-uCOS-III-UsersManual 1st Edition
*[http://micrium.com/download/%C2%B5cos-iii-the-real-time-kernel-for-the-renesas-rx62n/ uC/OS-III: The Real-Time Kernel for the Renesas RX62N]
==External links==
*{{Official website|https://web.archive.org/web/20231206170818/https://www.silabs.com/developers/micrium}}
*{{GitHub|SiliconLabs}}
*[https://people.ece.cornell.edu/land/courses/ece5760/NiosII_muCOS/uC_Functions.html Summary of Commonly Used uC/OS-II Functions and Data Structures]
*[https://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]
{{Real-time operating systems}}
{{Microkernel}}
{{DEFAULTSORT:Microc Os-II}}
Line 173 ⟶ 200:
[[Category:Embedded operating systems]]
[[Category:ARM operating systems]]
[[Category:Microkernel-based operating systems]]
[[Category:Microkernels]]
|