Sample Source: RTOS for microcontrollers logo

Sample Source: RTOS for microcontrollers

Free

RTOS for microcontrollers

FreeFree tier
Type
Open Source

About Sample Source: RTOS for microcontrollers

nOS is a real-time operating system (RTOS) designed for microcontrollers. It supports a wide range of architectures including ARM Cortex-M series, AVR, MSP430, PIC24, RX600, and others. Key capabilities include preemptive or cooperative scheduling, tickless operation for battery-powered devices, binary and counting semaphores, mutexes with priority ceiling or inheritance, queues for thread-safe communication, flags for waiting on multiple events, memory blocks for dynamic allocation, software timers and interrupts with callback and priority, a real-time module compatible with UNIX timestamps, and software alarms. The kernel has a tiny footprint (as low as 1KB ROM and a few bytes of RAM), is fully configurable, and is released under the MPL-2.0 open-source license. It also includes Win32 and Linux simulators for development.

Key Features

Preemptive or cooperative scheduling
Tickless operation for battery-powered applications
Binary and counting semaphores
Mutexes with priority ceiling or priority inheritance
Queues for thread-safe communication
Flags for waiting on multiple events
Memory blocks for dynamic memory allocation
Software timers with callback and priority
Software interrupts (signal) with callback and priority
Real-time module compatible with UNIX timestamp

Pros & Cons

Pros
  • Very small memory footprint (as low as 1KB ROM) ideal for resource-constrained MCUs
  • Supports a wide range of microcontroller architectures (ARM, AVR, MSP430, PIC24, etc.)
  • Offers both preemptive and cooperative scheduling modes
  • Tickless mode enables energy-efficient battery-powered operation
  • Open source under MPL-2.0 license, free to use and modify
  • Includes simulators for Win32 and Linux to facilitate development and testing
  • No hard limits on the number of kernel objects (semaphores, queues, timers, etc.)
Cons
  • Last release (v0.1 beta) was in February 2015, indicating limited recent maintenance
  • Documentation may be sparse or outdated compared to more active RTOS alternatives
  • Community size is relatively small (211 stars, 47 forks) which may affect support and contributions
  • Lacks advanced features like USB stack, file system, or network stack found in some commercial RTOS

Best For

Embedded systems requiring real-time task schedulingBattery-powered microcontroller projects needing low power tickless operationIoT devices with resource-constrained memory and storageIndustrial control systems on ARM Cortex-M or other MCUsEducational projects to learn RTOS concepts on various architectures

FAQ

What license does nOS use?
nOS is licensed under the MPL-2.0 (Mozilla Public License 2.0), which is an open-source, royalty-free license.
Which microcontroller architectures are supported?
nOS supports AVR, ARM (including Cortex-M0, M3, M4F, M7, and ARM7TDMI), MSP430, PIC24, RX600, R8C, M16C, and others as listed in the project topics. It also includes Win32 and Linux simulators.
Can nOS be used in battery-powered applications?
Yes, nOS supports tickless operation, which allows the system to remain in a low-power state when no tasks need to run, making it suitable for battery-powered devices.
What is the memory footprint of nOS?
nOS has a tiny footprint, using as little as 1KB of ROM and only a few bytes of RAM, and it is fully configurable to minimize resource usage.
Is nOS still actively maintained?
The latest release (beta v0.1) dates from February 2015. While the repository may still receive occasional updates, it appears to have limited recent activity.