RT vs NIL

RT and NIL kernels share a common API but a different set of features, NIL can be seen as a subset of RT even if it is very different internally. The two RTOSes have very different architectures driver by their requirements.

Feature RT NIL Notes
System Time yes yes 16 or 32 bits system time counter.
High Resolution Time yes no System time, timers and delays at very high resolutions.
Real Tick-less Mode yes yes There is no periodic system tick for optimal power management.
Critical Zones yes yes Critical zones abstraction.
IRQ Management yes yes ISRs abstraction.
Zero Latency Interrupts yes yes IRQs unaffected by the kernel and with no kernel-related added latency.
Virtual Timers yes no Unlimited software one-shot timers.
Timeouts yes yes Wait primitives with time-out specification.
Time Measurement yes no Execution time measurement with clock-cycle precision.
Full Threads Paradigm yes no Threads create/join functionality.
Threads Registry yes yes Runtime tasks state structure for debuggers.
Preemption yes yes Fully preemptive scheduling.
Round Robin Scheduling yes no Round robin scheduling for threads at equal priority.
Messages yes no Inter-thread synchronous messages.
Mailboxes yes no Message queues.
Counter Semaphores yes yes Semaphores with resources counter.
Binary Semaphores yes no Semaphores with boolean state.
Mutexes yes no Mutexes implementing the Priority Inheritance algorithm.
Condition Variables yes no Condition Variables and Monitors.
Events yes yes Events, Event Flags, Event Sources.
I/O Queues yes no Circular queues specialized for I/O.
Dynamic Services yes no Dynamic threading.
Memory Allocators yes no Various memory allocators (core, pools, heaps).
Runtime Statistics yes no Execution times of critical code paths with clock cycle resolution.
System State Checker yes no Development time call protocols check.
Parameter Checks yes yes Development time function parameters checks.
Assertions yes yes Development time kernel consistency checks.
Trace Buffer yes yes Storage for the latest N context switch events.
Stack Overflows Check yes yes Runtime stack overflow checks.
Stack Fill yes no Stack pattern fill for usage measurement.
CMSIS RTOS yes no CMSIS RTOS emulation layer.

More articles and guides are available on the technical wiki.

learn more

Need Tutorials?

Try the video tutorials and guides on Play Embedded.

learn more

Need Support?

The forums is the best place, registration required.

learn more