Sample Source: An embedded operating system for ARM Cortex-M based microcontrollers
FreeEmbedded OS for ARM Cortex-M based IoT devices
About Sample Source: An embedded operating system for ARM Cortex-M based microcontrollers
yaos is an embedded operating system designed specifically for ARM Cortex-M based microcontrollers, targeting single-core processors without Memory Management Unit (MMU) virtualization. It is built for Internet of Things (IoT) devices with a focus on energy efficiency and hardware-independent development. The OS features a task management system with two types of tasks (normal and real-time), a round-robin scheduler for normal tasks and priority-based scheduling for real-time tasks, a system call interface for accessing system resources in privileged mode, and a virtual file system (VFS) that supports embedded flash (embedfs) and device nodes (devfs). It supports multiple development boards including mango-z1, mycortex-stm32f4, nrf52, and various STM32 boards. The project is open source and hosted on GitHub with 51 stars, 18 forks, and over 300 commits.
Key Features
Pros & Cons
- Energy efficient, suitable for low-power IoT devices
- Hardware-independent design simplifies porting
- Supports both normal and real-time task scheduling
- Virtual file system enables flexible storage management
- Open source and free to use
- Includes system call interface for secure resource access
- Limited to single-core ARM Cortex-M processors without MMU
- Small community and relatively few stars (51) indicate limited adoption
- Support only for a specific set of boards (not all Cortex-M)
- Documentation may be sparse (though a Documentation directory exists)
- Not suitable for applications requiring full operating system features (e.g., memory protection, multi-core)