Micrium's µC/OS-II is a portable, ROMable, scalable, preemptive, real-time deterministic multitasking kernel for microprocessors, microcontrollers and DSPs. Offering unprecedented ease-of-use, µC/OS-II is delivered with complete 100% ANSI C source code and in-depth documentation. µC/OS-II runs on the largest number of processor architectures, with ports available for download from the Micrium Web site.
µC/OS-II manages up to 250 application tasks. µC/OS-II includes: semaphores; event flags; mutual-exclusion semaphores that eliminate unbounded priority inversions; message mailboxes and queues; task, time and timer management; and fixed sized memory block management.
µC/OS-II’s footprint can be scaled (between 5 Kbytes to 24 Kbytes) to only contain the features required for a specific application. The execution time for most services provided by µC/OS-II is both constant and deterministic; execution times do not depend on the number of tasks running in the application.
A validation suite provides all documentation necessary to support the use of µC/OS-II in safety-critical systems. Specifically, µC/OS-II is currently implemented in a wide array of high level of safety-critical devices, including those certified for Avionics DO-178B.
Click here for more information
The µC/OS-III is Micrium’s newest RTOS, designed to save time on embedded system projects. In addition to the features inherent in µC/OS-II, µC/OS-III also manages an unlimited number of application tasks, and features an interrupt disable time of near zero.
Micrium’s µC/OS-III supports ARM7/9, Cortex-MX, Nios-II, PowerPC, Coldfire, i.MX, Microblaze, RX600, H8, SH, M16C, M32C, Blackfin, and more. Ports are available for download from the Micrium website.
µC/OS-III manages unlimited application tasks, constrained only by a processor’s access to memory. µC/OS-III supports an unlimited number of priority levels. Typically, configuring µC/OS-III for between 32 and 256 different priority levels is adequate for most embedded applications.
µC/OS-III allows for unlimited tasks, semaphores, mutexes, event flags, message queues, timers and memory partitions. The user allocates all kernel objects at run time. µC/OS-III provides features to allow stack growth of tasks to be monitored. While task size is not limited, they need to have a minimum size based on the CPU used.
µC/OS-III allows multiple tasks to run at the same priority level. When equal priority tasks are ready to run, µC/OS-III runs each for a user-specified time. Each task can define its own time quanta and give up its time slice if it does not require the full time quanta.
µC/OS-III has a number of internal data structures and variables that it needs to access atomically. It protects these critical regions by disabling interrupts for almost zero clock cycles, ensuring that it is able to respond to some of the fastest interrupt sources. Interrupt response with µC/OS-III is deterministic.
µC/OS-III ensures that NULL pointers are not passed, task level services from ISRs aren’t called, arguments are within allowable range, and specified options are valid. Each API function provides an error code regarding the outcome of the function call.
µC/OS-III’s footprint can be scaled to only contain the features required for a specific application. The execution time for most services provided by µC/OS-III is both constant and deterministic; execution times do not depend on the number of tasks running in the application.
Click here for more information.