scmRTOS stands for Single-Chip Microcontroller Real-Time Operating System.
scmRTOS is a free tiny preemptive Real-Time Operating System intended for use with Single-Chip Microcontrollers.
scmRTOS is capable to run on small uCs with as little amount of RAM as 512 bytes. The RTOS is written on C++. All source code is available.
Here's a list of supported platforms for now:
- MSP430 (Texas Instruments);
- AVR (Atmel);
- Blackfin (Analog Devices);
- STM8 (STMicroelectronics).
See Ports for details.
- Preemptive multitasking;
- Up to 31 user processes (tasks);
- Fast interprocess program control flow transfer:
MSP430 45-50 us @ 5 MHz AVR 38-42 us @ 8 MHz Blackfin 1.8 us @ 200 MHz ARM7 (ARM mode) 5 us @ 50 MHz ARM7 (Thumb mode) 8 us @ 50 MHz Cortex-M3 3 us @ 72 MHz
- Low Resource Requirements:
- Code: from about 1 kilobyte (depend on application and target platform);
- Kernel Data: 8 + 2*Process Count;
- Process Data: 5 bytes.
- Supports separate return stack (required for IAR EW AVR);
- Two methods of program control flow passing:
- Direct context switcher call;
- Software Interrupt context switch.
- Kernel extensions
- Base for interprocess communication types (user defined, also);
- Process Profiler.
- Interprocess communication:
- Fast Event Flags (binary semaphores);
- Mutual Exclusion Semaphores (Mutexes);
- Byte-wide Channels (queues of "raw" data);
- Arbitrary-type Channels (queues of arbitrary-type objects);
- Debug features
- Optional software switch on separate ISR stack on some platforms;
- Support of various target hardware features such as hardware shifters etc., for more efficiency.