Micro-Controller Operating Systems

MicroC/OS (μC/OS)
DeveloperMicrium, Inc.,
Silicon Labs
Written inANSI C
Working stateCurrent
Source modelOpen-source as of 2020
Initial release1991; 33 years ago (1991)
Latest releaseOS-III / 2016; 8 years ago (2016)
Repositorygithub.com/weston-embedded/uC-OS3
Marketing targetEmbedded devices
Available inEnglish
PlatformsARM Cortex-M3, -M4F, ARM7TDMI; Atmel AVR; eSi-RISC, and many others
Kernel typeReal-time microkernel
Default
user interface
μC/GUI
LicenseApache as of 2020; former Commercial, freeware education use
Official websiteweston-embedded.com/micrium/overview
Micrium OS
DeveloperSilicon Labs
Written inANSI C
Working stateCurrent
Source modelOpen-source
Initial release2020; 4 years ago (2020)
Latest releasePart of Gecko Platform 4.2.0.0,[1] part of Gecko SDK 4.2.0.0[2] / December 14, 2022; 22 months ago (2022-12-14)
Repositorygithub.com/SiliconLabs/gecko_sdk/tree/gsdk_4.2/platform/micrium_os
Marketing targetEmbedded devices
Available inEnglish
Platformsexclusively Silicon Labs silicon
Kernel typeReal-time microkernel
LicenseApache
Official websitewww.silabs.com/developers/micrium-os
Cesium RTOS
DeveloperWeston Embedded Solutions
Written inANSI C
Working stateCurrent
Source modelCommercial
Initial releaseJune 23, 2020; 4 years ago (2020-06-23) (forked from uC/OS-III V3.08.00)[3]
Latest releaseCs/OS3 3.09.02[3] / June 23, 2023; 16 months ago (2023-06-23)[3]
Marketing targetEmbedded devices
Available inEnglish
Platforms50+ unclear whether there is a 1-to-1 overlap with μC/OS
Kernel typeReal-time microkernel
LicenseCommercial
Official websiteweston-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 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.[4]

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.[5] He intended at first to simply describe the internals of a 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[6] 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[7] 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.[8]

μC/OS-II

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 64 tasks. Its size can be scaled (between 5 and 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 latter is minimized to ease porting to other processors.

Uses in embedded systems

μC/OS-II was designed for embedded uses. If the producer has the proper toolchain (i.e., C compiler, assembler, and linker-locator[clarification needed]), μC/OS-II can be embedded as part of a product.

μC/OS-II is used in many embedded systems, including:

Task states

μC/OS-II is a multitasking operating system. Each task is an infinite loop and can be in any one of the following five states (see figure below additionally)

Further, it can manage up to 64 tasks. However, it is recommended that eight of these tasks be reserved for μC/OS-II, leaving an application up to 56 tasks.[9]

Kernels

The 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.[10] The kernel is responsible for managing tasks (i.e., for managing the CPU's time) and communicating between tasks.[11] The fundamental service provided by the kernel is context switching.

The scheduler is the part of the kernel responsible for determining which task runs next.[12] Most real-time kernels are priority based. In a priority-based kernel, control of the CPU is always given to the highest priority task ready to run. Two types of priority-based kernels exist: non-preemptive and preemptive. Nonpreemptive kernels require that each task do something to explicitly give up control of the CPU.[12] A preemptive kernel is used when system responsiveness is more important. Thus, μC/OS-II and most commercial real-time kernels are preemptive.[13] The highest priority task ready to run is always given control of the CPU.

Assigning tasks

Tasks with the highest rate of execution are given the highest priority using rate-monotonic scheduling.[14] This scheduling algorithm is used in real-time operating systems (RTOS) with a static-priority scheduling class.[15]

Managing tasks

In computing, a task is a unit of execution. In some operating systems, a task is synonymous with a process, in others with a thread. In batch processing computer systems, a task is a unit of execution within a job. The system user of μC/OS-II is able to control the tasks by using the following features:

  • Task feature
  • Task creation
  • Task stack & stack checking
  • Task deletion
  • Change a task's priority
  • Suspend and resume a task
  • Get information about a task[16]

Managing memory

To avoid fragmentation, μC/OS-II allows applications to obtain fixed-sized memory blocks from a partition made of a contiguous memory area. All memory blocks are the same size, and the partition contains an integral number of blocks. Allocation and deallocation of these memory blocks is done in constant time and is a deterministic system.[17]

Managing time

μC/OS-II requires that a periodic time source be provided to keep track of time delays and timeouts. A tick should occur between 10 and 1000 times per second, or Hertz. The faster the tick rate, the more overhead μC/OS-II imposes on the system. The frequency of the clock tick depends on the desired tick resolution of an application. Tick sources can be obtained by dedicating a hardware timer, or by generating an interrupt from an alternating current (AC) power line (50 or 60 Hz) signal. This periodic time source is termed a clock tick.[18]

After a clock tick is determined, tasks can be:

  • Delaying a task
  • Resume a delayed task

Communicating between tasks

Intertask or interprocess communication in μC/OS-II occurs via: semaphores, message mailbox, message queues, tasks, and interrupt service routines (ISRs). They can interact with each other when a task or an ISR signals a task through a kernel object called an event control block (ECB). The signal is considered to be an event.

μC/OS-III

μC/OS-III is the acronym for Micro-Controller Operating Systems Version 3, introduced in 2009 and adding functionality to the μC/OS-II RTOS.

μ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.[19][20]

μC/OS-II and μC/OS-III are currently maintained by Micrium, Inc., a subsidiary of Silicon Labs, and can be licensed per product or per product line.

Uses in embedded systems

The uses are the same as for μC/OS-II

Task states

μC/OS-III is a multitasking operating system. Each task is an infinite loop and can be in any one of five states (dormant, ready, running, interrupted, or pending). μC/OS-III supports an unlimited number of task priorities but configuring μC/OS-III to have between 32 and 256 task priorities typically suits most embedded systems well.[21]

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, named a quantum, and then selects another task. This process is termed round robin scheduling or time slicing. The kernel gives control to the next task in line if:

  • 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 μC/OS-III is the same as for μC/OS-II.

Managing tasks

Task management also functions the same as for μC/OS-II. However, μC/OS-III supports multitasking and allows an application to have any number of tasks. The maximum number of tasks is limited by only the amount of computer memory (both code and data space) available to the processor.

A task can be implemented viarunning to scheduled completion, in which the task deletes itself when it is finished, or more typically as an infinite loop, waiting for events to occur and processing those events.

Managing memory

Memory management is performed in the same way as in μC/OS-II.

Managing time

μC/OS-III offers the same time managing features as μC/OS-II. It also provides services to applications so that tasks can suspend their execution for user-defined time delays. Delays are specified by a number of either clock ticks, or hours, minutes, seconds, and milliseconds.

Communicating between tasks

Sometimes, a task or ISR must communicate information to another task, because it is unsafe for two tasks to access the same specific data or hardware resource at once. This can be resolved via an information transfer, termed inter-task communication. Information can be communicated between tasks in two ways: through global data, or by sending messages.

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 interrupts. If two tasks share data, each can gain exclusive access to variables by either disabling interrupts, locking the scheduler, using a semaphore, or preferably, using a mutual exclusion semaphore. Messages can be sent to either an intermediate object called a message queue, or directly to a task, since in μC/OS-III, each task has its own built-in message queue. Use an external message queue if multiple tasks are to wait for messages. Send a message directly to a task if only one task will process the data received. While a task waits for a message to arrive, it uses no CPU time.

Ports

A port involves three aspects: CPU, OS, and board specific (BSP) code. μC/OS-II and μC/OS-III have ports for most popular processors and boards in the market and are suitable for use in safety critical embedded systems such as aviation, medical systems, and nuclear installations. A μC/OS-III port involves writing or changing the contents of three kernel specific files: OS_CPU.H, OS_CPU_A.ASM, and OS_CPU_C.C. Finally create or change a board support package (BSP) for the evaluation board or target board being used. A μC/OS-III port is similar to a μC/OS-II port. There are significantly more ports than listed here, and ports are subject to continuous development. Both μC/OS-II and μC/OS-III are supported by popular SSL/TLS libraries such as wolfSSL, which ensure security across all connections.

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

  1. ^ "Gecko Platform 4.2.0.0 GA" (PDF). 2022-12-14. Retrieved 2023-01-04.
  2. ^ "gecko_sdk Releases on github.com". GitHub. Retrieved 2023-01-04.
  3. ^ a b c "Cs/OS3 Release Notes". Weston Embedded Solutions.
  4. ^ "NiosII GCC with MicroC/OS". School of Electrical and Computer Engineering. Cornell University. June 2006. Retrieved 25 April 2017.
  5. ^ Labrosse, Jean J. (15 June 2002). μC/OS The Real-Time Kernel (2nd ed.). CRC Press. ISBN 978-1578201037.
  6. ^ "What is Micrium?". Weston Embedded Solutions. Retrieved 2023-01-04.
  7. ^ "Micrium Software and Documentation". Retrieved 2023-01-04.
  8. ^ "Why Cesium RTOS?". Weston Embedded Solutions. Retrieved 2023-01-04.
  9. ^ Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 77.
  10. ^ Wikiversity:Operating Systems/Kernel Models#Monolithic Kernel
  11. ^ Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 39.
  12. ^ a b Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 40.
  13. ^ Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). p. 42.
  14. ^ Liu, Chung Lang; Layland, James W. (1973). "Scheduling algorithms for multiprogramming in a hard real-time environment". Journal of the ACM. 20 (1): 46–61. CiteSeerX 10.1.1.36.8216. doi:10.1145/321738.321743. S2CID 59896693.
  15. ^ Bovet, Daniel. "Understanding The Linux Kernel". Archived from the original on 2014-09-21.
  16. ^ Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). pp. 45–49.
  17. ^ Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). pp. 273–285.
  18. ^ Labrosse, Jean J. MicroC/OS-II: The Real Time Kernel (2nd ed.). pp. 145–152.
  19. ^ "μC/OS-II and μC/OS-III Features Comparison". Micrium.
  20. ^ "μC/OS-III overview". Micrium.
  21. ^ 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.

Sources

Read other articles:

1938 film Gold Diggers in ParisDirected byRay EnrightBusby BerkeleyWritten byEarl BaldwinWarren DuffUncredited:Felix FerrySig HerzigPeter MilneStory byStory idea:Jerry HorwinJames Seymour (screenwriter)Story:Jerry WaldRichard MacaulayMaurice LeoProduced byHal B. Wallis (exec. prod.)Samuel Bischoff(both uncredited)StarringRudy ValleeRosemary LaneHugh HerbertAllen Jenkins.CinematographySol PolitoGeorge Barnes(musical numbers)Edited byGeorge AmyMusic byUncredited:Ray HeindorfHeinz RoemheldSongs:...

 

Municipio de Koknese Municipio Coordenadas 56°39′00″N 25°26′00″E / 56.65, 25.43333333Capital KokneseEntidad Municipio • País  LetoniaAlcalde Viesturs CīrulisEventos históricos   • Fundación 2009Superficie   • Total 360,8 km²Población (2009)   • Total 6,091 hab. • Densidad 16,88 hab/km² Sitio web oficial [editar datos en Wikidata] El municipio de Kokneses (en Letón: Kokneses novads; en ...

 

Мендрізіо італ. Mendrisio Герб Прапор Країна  Швейцарія[1] Кантон Тічино Межує з: сусідні адмінодиниці Брузіно-Арсіціо, Новаццано, Мелано, Ріва-Сан-Вітале, Кастель-Сан-П'єтро, Кольдреріо, Порто-Черезіо, Клівіо, Сальтріо, Безано, Віджу, Стабіо, Бі

 

Mine in Chile View of one of the Mines in the Madre de Dios area Madre de Dios, located east the town of Máfil in Chile, is a placer deposit of gold that has been mined several times since its discovery in 1556. The bedrock of the Madre de Dios area is made of metamorphic and crystalline rocks of Paleozoic age all part of the Bahía Mansa Metamorphic Complex. These rocks are covered with thick layers of glacial gravel from the Late Cenozic. Gold eroded from the gravel have deposited in nearb...

 

Keuskupan Agung KolomboArchidioecesis Columbensis in Taprobaneகொழும்பு உயர்மறைKatolik Katedral Santa Lusia, Kolombo di Kotahena.LokasiNegaraSri LankaProvinsi gerejawiKolomboStatistikLuas3.838 km2 (1.482 sq mi)Populasi- Total- Katolik(per 2006)5.692.004700,000 (12.3%)InformasiDenominasiKatolik RomaRitusRitus RomaKatedralKatedral Santa LusiaPelindungSt. Joseph Vaz, Bunda dari Lanka, Bunda dari Madhu, Rasul TomasKepemimpinan kiniPa...

 

Mazel Tov! tertulis di label gelas anggur Secara tradisional, setelah pengantin pria memecahkan gelas tersebut, para tamu meneriakkan kata Mazal Tov! Sebuah kue ulang tahun, dengan kata מזל טוב (mazal tov), seperti yang sering dilakukan di Israel. Frasa ini ditulis dalam Ibrani Kursif. Mazal tov atau mazel tov (Ibrani/Yiddi: מזל טוב, Ibrani: mazal tov; Yiddi: mazel tov; har. nasib baik) adalah sebuah frasa Yahudi untuk mengucapkan selamat saat acara yang membahagiakan atau acara p...

 

Sarah Yorke JacksonIbu Negara Amerika Serikat ke-8Masa jabatan26 November 1834 – 4 Maret 1837PendahuluEmily DonelsonPenggantiAngelica Van Buren Informasi pribadiLahirSarah Yorke(1803-07-16)16 Juli 1803Philadelphia, PennsylvaniaMeninggal23 Agustus 1887(1887-08-23) (umur 84)Nashville, TennesseeSuami/istriAndrew Jackson Jr. (m. 1831; w. 1865)HubunganAndrew Jackson (ayah mertua)AnakRachelAndrew IIISamuelThomasRobertOrang tuaPeter Yorke (ayah)Mary Haines (ibu)PekerjaanIbu Negara Am...

 

العلاقات البريطانية البلجيكية المملكة المتحدة بلجيكا   المملكة المتحدة   بلجيكا تعديل مصدري - تعديل   العلاقات البريطانية البلجيكية هي العلاقات الثنائية التي تجمع بين المملكة المتحدة وبلجيكا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة و...

 

River in Tasmania, Australia River Leven (Tasmania)Location of the River Leven mouth in TasmaniaLocationCountryAustraliaStateTasmaniaRegionNorth-westPhysical characteristicsSourceVale of Belvoir Conservation Area • locationnear Cradle Mountain • coordinates41°31′23″S 145°52′31″E / 41.5231°S 145.8754°E / -41.5231; 145.8754 • elevation946 m (3,104 ft) MouthBass Strait • locationUlv...

 

Asep IramaSampul Album Asep IramaLahir13 Maret 1974 (umur 49)Bandung, Jawa Barat, IndonesiaPekerjaanAktorPenyanyiKarier musikGenreDangdutLabel Maheswara Music Records HP Record GP Records Musica Studio's Asep Irama (lahir 13 Maret 1974) adalah seorang aktor dan penyanyi dangdut Indonesia. Ia penyanyi Tuna netra yang lagu-lagunya terkenal pada dekade 1990an.[1] Diskografi Tuhan Kembalikan Dia Aku di Barat Engkau di Timur Aku Dilahirkan untuk Siapa Bunga Teratai Nada Dakwah Orang K...

 

President of Mexico in 1853 In this Spanish name, the first or paternal surname is Lombardini and the second or maternal family name is de la Torre. Manuel María Lombardini21st President of MexicoIn office8 February 1853 – 20 April 1853Preceded byJuan Bautista CeballosSucceeded byAntonio López de Santa Anna Personal detailsBorn(1802-07-23)23 July 1802Mexico City, New SpainDied22 December 1853(1853-12-22) (aged 51)Mexico City, MexicoPolitical partyConservativeMili...

 

Operator of mass transportation in California Placer County TransitParentPlacer CountyHeadquarters11432 F AveLocaleAuburn, CaliforniaService areaPlacer County, CaliforniaService typebus serviceRoutes8 (6 local, 1 school, 1 commuter)Fuel typeDieselWebsitePlacer County Transit Placer County Transit is the operator of mass transportation for western Placer County, California, excluding the city of Roseville, which has its own public transit system. In addition to six local routes, Placer County ...

 

Assertion that the Son and the Holy Spirit are subordinate to God the Father in nature and being The Heavenly Trinity joined to the Earthly Trinity through the Incarnation of the Son – The Heavenly and Earthly Trinities by Murillo (c. 1677) Subordinationism is a Trinitarian doctrine wherein the Son (and sometimes also the Holy Spirit) is subordinate to the Father, not only in submission and role, but with actual ontological subordination to varying degrees.[1] It posits a hierarchic...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Russian First League – news · newspapers · books · scholar · JSTOR (May 2014) (Learn how and when to remove this template message) Football leagueRussian First LeagueFounded1992; 31 years ago (1992)CountryRussiaConfederationUEFANumber of teams...

 

Indian multinational conglomerate company Videocon Industries Limited.TypePrivateISININE703A01011IndustryConglomerateFounded1979; 44 years ago (1979)FounderVenugopal Dhoot[1]HeadquartersMumbai, Maharashtra, IndiaArea servedWorldwideKey peopleVenugopal Dhoot (Chairman & MD)[1]Products Consumer electronics Home appliances Components Office automation Mobile phones Wireless Internet Petroleum Satellite television Power Revenue ₹12,828.6 crore(US$1.95 billi...

 

Untuk orang lain bernama sama, lihat John Johnston (disambiguasi). John W. JohnstonSenator Amerika Serikat dari VirginiaMasa jabatan26 Januari 1870 – 3 Maret 187115 Maret 1871 – 3 Maret 1883PendahuluJohn S. CarlilePenggantiHarrison H. RiddlebergerSenator VirginiaMasa jabatan1846–1848 Informasi pribadiLahirJohn Warfield Johnston(1818-09-09)9 September 1818Panicello, Washington County, VirginiaMeninggal27 Februari 1889(1889-02-27) (umur 70)Richmond, VirginiaPartai politikPar...

 

Railway station in Kami, Hyōgo Prefecture, Japan Kasumi Station香住駅Kasumi Station, February 2007General informationLocationKasumiku Nanukaichi, Kami Town, Mikata DistrictHyōgo Prefecture 69-6546JapanCoordinates35°38′07″N 134°37′25″E / 35.6353°N 134.6237°E / 35.6353; 134.6237Operated by JR WestLine(s) San'in Main LineDistance180.0 km (111.8 mi) from KyotoPlatforms1 side + 1 island platformConnections Bus stopConstructionStructure typeAt grad...

 

Village in North Yorkshire, England Human settlement in EnglandClaphamA view in Clapham villageClaphamLocation within North YorkshireOS grid referenceSD745694• London213 mi (343 km) south-eastCivil parishClapham cum NewbyUnitary authorityNorth YorkshireCeremonial countyNorth YorkshireRegionYorkshire and the HumberCountryEnglandSovereign stateUnited KingdomPost townLANCASTERPostcode districtLA2Dialling code015242PoliceNorth YorkshireFire...

 

Isola San Giulio Isola San Giulio, dengan Orta San Giulio di belakang. Pulau San Giulio (Isola di San Giulio) adalah pulau yang terletak di Danau Orta, Piedmont, Italia. Pulau ini memiliki panjang 275 meter, dan lebar 140 meter. Struktur terbesar di pulau ini adalah Basilika Santo Giulio. William dari Volpiano lahir di sini tahun 962. Pranala luar History of San Giulio Island Island of Saint Giulio Diarsipkan 2007-09-28 di Wayback Machine. (Italian) Map of the Island[pranala nonaktif perm...

 

La conversazioneGene Hackman in una scena del filmTitolo originaleThe Conversation Lingua originaleinglese Paese di produzioneStati Uniti d'America Anno1974 Durata113 min Rapporto1,85:1 Generedrammatico, thriller RegiaFrancis Ford Coppola SoggettoFrancis Ford Coppola SceneggiaturaFrancis Ford Coppola ProduttoreFrancis Ford Coppola Casa di produzioneParamount Pictures FotografiaBill Butler MontaggioWalter Murch, Richard Chew MusicheDavid Shire ScenografiaDean Tavoularis, Doug von Koss Cost...