ucOS-II & ucOS-III are Micrium’s advanced Real-Time Operating Systems (RTOS) designed specifically for deeply embedded applications.
ucOS-II/III are highly portable, ROMable, scalable, preemptive, real-time, deterministic, multitasking kernel optimized for SoC/VLSI Tensilica based chip sets.
With a wide selection of add-on SW components, such as Embedded File System, TCP/IP stack, USB and more, you can build a complete system fast and reliable.
Offering unprecedented ease-of-use, μC/OS-III is delivered with complete 100% ANSI C source code and in-depth documentation. μC/OS-III runs on the largest number of processor architectures, with ports available for download from the Micrium Web site.
µC/OS-III manages an unlimited number of application tasks, constrained only by a processor’s access to memory. µC/OS-III also supports an unlimited number of priority levels (typically configured for between 8 and 256 different priority levels).
µ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 amount of 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 provides extensive range checking which can be disabled at compile time. µC/OS-III thus checks for NULL pointers passed in API calls, 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 contain only the features required for a specific application (typically 6–24 KBytes of code space residing in memory).
With uC/OS-II or III you can build your embedded systems with additional SW components and options:
|USB Device||USB Host|
|File System||Graphical UI||Java App Development|
µC/OS-III supports Asymmetrical Multi-Processing (AMP) on multi-core MCUs.
µC/OS-III supports preemptive multitasking.
|Maximum number of Tasks||Unlimited|
|Round-Robin Scheduling||Yes (optional)
Unlimited number of tasks at each priority
|Clear stack at task creation||Yes (optional per-task)|
|Run-time stack checking||Yes (optional)|
|Catch/delete task that return||Yes|
|Reentrant libraries||Yes (support of Thread Local Storage for compiler)|
|Task registers||Yes (unlimited)|
|Tick rate||Configurable (Typ. 1 to 100 ms)|
Micrium provides an optional ISR stack for µC/OS-III.
|User definable hooks||Yes|
|Task switch hook||Yes|
|Idle task hook||Yes|
|Statistic task hook||Yes|
|Create task hook||Yes|
|Delete task hook||Yes|
|Catch task return hook||Yes|
Memory footprint for µC/OS-III:
|Scalable||Yes (compile and run-time configurable)|
|ROM (Min-Max)||6K-24K (bytes)|
µC/OS-III is provided as clean and highly consistent ANSI-C source code.
|Number of source files||Fewer than 25|
|Argument checking||Yes (optional)|
|ASCII names for kernel objects||Yes|
µC/OS-III provides approximately 80 API calls.
|Timeout on calls||Yes (prevents deadlocks)|
|Event Flags||Yes (unlimited)|
|Mutual Exclusion Semaphores||Yes (full priority inheritance and nestable)|
|Message queues||Yes (unlimited)|
|Task message queue||Yes (optional)|
|Memory partitions||Yes (prevents fragmentation)|
|Software timers||Yes (unlimited)|
|Pend on multiple objects||Yes (optional)|
Micrium provides optional built-in performance measurements.
|Maximum interrupt disable time||Yes|
|Maximum scheduler lock time||Yes|
|Per-Task maximum interrupt disable time||Yes|
|Per-Task maximum scheduler lock time||Yes|
|Per-Task CPU usage (%)||Yes|
|Total CPU usage (%)||Yes|
|Per-Task stack usage||Yes|
|Per-Task run counter||Yes|
|Message pool statistics||Yes|
|Context switch counter||Yes|
|Debugger Kernel Awareness Support||Yes|