Migrating from uC-OS-II to uC-OS-III
µC/OS-III is a completely new real-time kernel with roots in µC/OS-II. Portions of the µC/OS-II Application Programming Interface (API) function names are the same, but the arguments passed to the functions have, in some places, drastically changed.
This section explains several differences between the two real-time kernels. However, access to µC/OS-II and µC/OS-III source files best highlights the differences.
The table below is a feature-comparison chart for µC/OS-II and µC/OS-III.
µC/OS-II and µC/OS-III feature comparison chart
Feature | µC/OS-II | µC/OS-III |
---|---|---|
Year of introduction | 1998 | 2009 |
Book | Yes | Yes |
Source code available | Yes | Yes |
Preemptive Multitasking | Yes | Yes |
Maximum number of tasks | 255 | Unlimited |
Number of tasks at each priority level | 1 | Unlimited |
Round Robin Scheduling | No | Yes |
Semaphores | Yes | Yes |
Mutual Exclusion Semaphores | Yes | Yes (nestable) |
Event Flags | Yes | Yes |
Message Mailboxes | Yes | No (not needed) |
Message Queues | Yes | Yes |
Fixed Sized Memory Management | Yes | Yes |
Signal a task without requiring a semaphore | No | Yes |
Send messages to a task without requiring a message queue | No | Yes |
Software Timers | Yes | Yes |
Task suspend/resume | Yes | Yes (nestable) |
Deadlock prevention | Yes | Yes |
Scalable | Yes | Yes |
Code Footprint | 6K to 26K | 6K to 24K |
Data Footprint | 1K+ | 1K+ |
ROMable | Yes | Yes |
Run-time configurable | No | Yes |
Catch a task that returns | No | Yes |
Compile-time configurable | Yes | Yes |
ASCII names for each kernel object | Yes | Yes |
Option to post without scheduling | No | Yes |
Pend on multiple objects | Yes | No |
Task registers | Yes | Yes |
Built-in performance measurements | Limited | Extensive |
User definable hook functions | Yes | Yes |
Time stamps on posts | No | Yes |
Built-in Kernel Awareness support | Yes | Yes |
Optimizable Scheduler in assembly language | No | Yes |
Number of services | ~90 | ~70 |
MISRA-C:1998 | Yes | N/A |
MISRA-C:2004 | No | Yes |
DO178B Level A and EUROCAE ED-12B | Yes | Yes |
Medical FDA pre-market notification (510(k)) and pre-market approval (PMA) and IEC62304 | Yes | Yes |
SIL3 IEC for transportation and nuclear systems | Yes | Yes |
IEC-61508 | Yes | Yes |