Preemptive Scheduling
32-level priority-based preemptive scheduler with round-robin for same-priority threads.
A preemptive real-time operating system optimized for ARM Cortex-M microcontrollers. Written in 100% assembly for maximum performance and determinism.
// Create a thread with priority 16
nt_thread_create(&thread, task_entry, 16);
// Mutex with priority inheritance
nt_mutex_get(&mutex, NT_WAIT_FOREVER);
critical_section();
nt_mutex_put(&mutex);
// Semaphore signaling
nt_semaphore_put(&sem);
// Message queue communication
nt_queue_send(&queue, &msg, NT_NO_WAIT);
// Event flags
nt_event_flags_set(&events, 0x01);
// Software timer
nt_timer_activate(&timer);
32-level priority-based preemptive scheduler with round-robin for same-priority threads.
Mutex with Priority Inheritance Protocol prevents priority inversion in real-time systems.
Semaphores, event flags, message queues, reader-writer locks, and thread barriers.
Fixed-block and variable-block memory pools with deterministic allocation time.
One-shot and periodic timers with callback support. Integrated watchdog timer.
Fully compliant with MISRA-C 2025 guidelines for safety-critical applications.
nt_thread_create()nt_thread_delete()nt_thread_suspend()nt_thread_resume()
nt_thread_sleep()nt_thread_relinquish()nt_mutex_get()nt_mutex_put()
nt_semaphore_get()nt_semaphore_put()nt_queue_send()nt_queue_receive()
nt_event_flags_set()nt_event_flags_get()nt_timer_create()nt_timer_activate()
nt_byte_allocate()nt_byte_release()nt_block_allocate()nt_block_release()
Contact us for evaluation access and learn how NitroOS can power your embedded applications.